1import * as React from 'react'; 2 3import { getInitialData } from '../functions/getInitialData'; 4import { Splash } from './Splash'; 5 6type LoadInitialDataProps = { 7 children: React.ReactElement<any>; 8 loader?: React.ReactElement<any>; 9}; 10 11export function LoadInitialData({ children, loader = <Splash /> }: LoadInitialDataProps) { 12 const [isLoading, setIsLoading] = React.useState(true); 13 const [initialData, setInitialData] = React.useState({}); 14 15 React.useEffect(() => { 16 getInitialData().then((data) => { 17 setInitialData(data); 18 setIsLoading(false); 19 }); 20 }, []); 21 22 if (isLoading) { 23 return loader; 24 } 25 26 return React.cloneElement(children, initialData); 27} 28