All files / app/cart EmptyCartMessage.tsx

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 515x   5x 5x                     5x 1x           5x 1x   1x         5x       5x 1x 1x   1x                       5x  
import React, { PureComponent, ReactNode } from 'react';
 
import { TranslatedHtml } from '../locale';
import { LoadingOverlay } from '../ui/loading';
 
export interface EmptyCartMessageProps {
    waitInterval?: number;
    loginUrl: string;
}
 
interface EmptyCartMessageState {
    isWaiting: boolean;
}
 
export default class EmptyCartMessage extends PureComponent<EmptyCartMessageProps, EmptyCartMessageState> {
    state: EmptyCartMessageState = {
        isWaiting: true,
    };
 
    private waitToken?: number;
 
    componentDidMount(): void {
        const { waitInterval } = this.props;
 
        this.waitToken = setTimeout(() => {
            this.setState({ isWaiting: false });
        }, waitInterval);
    }
 
    componentWillUnmount(): void {
        clearInterval(this.waitToken);
    }
 
    render(): ReactNode {
        const { loginUrl } = this.props;
        const { isWaiting } = this.state;
 
        return (
            <LoadingOverlay
                hideContentWhenLoading
                isLoading={ isWaiting }
            >
                <TranslatedHtml
                    data={ { url: loginUrl } }
                    id="cart.empty_cart_message"
                />
            </LoadingOverlay>
        );
    }
}