import * as React from 'react'; import ProgressBar from 'react-topbar-progress-indicator'; // Progress Bar -> Configuration ProgressBar.config({ barColors: { '0': '#fff86d', '1.0': '#fff86d', }, shadowBlur: 0, barThickness: 4, }); export type FallbackType = NonNullable | null; export interface FallbackContextType { updateFallback: (fallbackElement: FallbackType) => void; } export const FallbackContext = React.createContext({ updateFallback: () => { }, }); interface FallbackProviderProps { children: React.ReactNode | React.ReactElement | null } // eslint-disable-next-line react/destructuring-assignment export const FallbackProvider: React.FC = ({ children, }) => { const [fallback, setFallback] = React.useState(null); const updateFallback = React.useCallback((fallbackElement: FallbackType) => { setFallback(() => fallbackElement); }, []); const renderChildren = React.useMemo(() => children, [children]); return ( {fallback}} > {renderChildren} ); };