diff options
Diffstat (limited to 'src/containers/Page')
| -rw-r--r-- | src/containers/Page/DynoWaiter.tsx | 31 | 
1 files changed, 25 insertions, 6 deletions
| diff --git a/src/containers/Page/DynoWaiter.tsx b/src/containers/Page/DynoWaiter.tsx index d8460bf..05d269f 100644 --- a/src/containers/Page/DynoWaiter.tsx +++ b/src/containers/Page/DynoWaiter.tsx @@ -1,7 +1,15 @@ -import React, { useEffect, useState, useCallback, useMemo } from 'react'; +import React, { +  useEffect, +  useState, +  useCallback, +  useMemo +} from 'react';  import { makeStyles } from '@material-ui/core/styles';  import { get } from '../../requests';  import Loading from '../../components/Loading/Loading'; +import Image from '../../components/Image/Image'; +import Message from '../../components/Message/Message'; +import coffeIcon from '../../assets/coffeeBreak.svg';  const DYNO_WAKEUP_TIME = 30; @@ -10,7 +18,7 @@ const messages = [    'It looks like our server is sleeping.',    `We need about ${DYNO_WAKEUP_TIME} seconds to wake it up.`,    'Please, stay with us.', -  'You are doing good.', +  'We love you <3',    'Almost done.'  ]; @@ -20,10 +28,18 @@ const useStyles = makeStyles(theme => ({    },    hidden: {      visibility: 'hidden', -    position: 'absolute' +    position: 'absolute', +    width: 0, +    height: 0, +    overflow: 'hidden' +  }, +  img: { +    width: theme.spacing(24)    }  })); +// TODO: if Dyno is sleeping, use this time to pre-load pages +  const DynoWaiter: React.FC = ({ children }) => {    const classes = useStyles();    const [isReady, setIsReady] = useState<boolean>(false); @@ -47,11 +63,14 @@ const DynoWaiter: React.FC = ({ children }) => {      return messages[index > lastIndex ? lastIndex : index];    }, [time]); -  const tagline = useMemo(() => time > 3 ? 'Waiting for the server' : '', [time]); -    return (      <> -      {!isReady && <Loading tagline={tagline} message={message} />} +      {!isReady && ( +        <> +          <Loading message={message} tagline={message && 'Waiting for the server'} /> +          {message && <Message><Image src={coffeIcon} className={classes.img} /></Message>} +        </> +      )}        <div className={isReady ? '' : classes.hidden}>          {children}        </div> | 
