5180 fichiers 38.5 Mo 0 téléchargements 277 vues mis à jour il y a 6 heures ui
nitro-v36-with-renderer-v36 / src / components / catalog / views / CatalogLoadingStateView.tsx
CatalogLoadingStateView.tsx 1.6 Ko Télécharger le fichier
import { FC } from 'react';
import { LocalizeText } from '../../../api';
import { LayoutLoadingSpinnerView } from '../../../common';
import { BaseButton } from '../../../common/BaseButton';
import { NativeTextTree } from '../../../common/native-text/NativeTextTree';

interface CatalogLoadingStateViewProps {
    error?: 'timeout' | null;
    onRetry?: () => void;
}

const localizedOrFallback = (key: string, fallback: string) => {
    const localized = LocalizeText(key);

    return !localized || localized === key ? fallback : localized;
};

export const CatalogLoadingStateView: FC<CatalogLoadingStateViewProps> = ({ error = null, onRetry = null }) => {
    if (error) {
        return (
            <NativeTextTree>
                <div aria-live="assertive" className="octane-catalog-loading-state is-error" role="alert">
                    <span>{localizedOrFallback('catalog.loading.timeout', 'The catalog page took too long to load.')}</span>
                    {!!onRetry && (
                        <BaseButton className="octane-catalog-standard-button" type="button" onClick={onRetry}>
                            {localizedOrFallback('generic.retry', 'Retry')}
                        </BaseButton>
                    )}
                </div>
            </NativeTextTree>
        );
    }

    return (
        <NativeTextTree>
            <div aria-live="polite" className="octane-catalog-loading-state" role="status">
                <LayoutLoadingSpinnerView />
                <span>{LocalizeText('generic.loading') || 'Loading...'}</span>
            </div>
        </NativeTextTree>
    );
};
15Sujets
1Dépôts
20Membres
2En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser