All files / components/PreLoader PreLoader.js

60% Statements 6/10
100% Branches 0/0
25% Functions 1/4
60% Lines 6/10

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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67                  1x 1x   1x 1x   1x                   1x                                                                                  
// @flow
/* eslint-disable max-lines-per-function, react/jsx-max-depth */
 
import { BackLogo, Container, PreloadLogo, Wrapper } from "./styled"
import React, { useEffect, useState } from "react"
import { CSSTransition } from "react-transition-group"
import FadeIn from "components/animations/FadeIn"
import preload from "assets/images/preloader.gif"
 
const DEFAULT_SHOW = true
const TIMEOUT = 500
 
const PreLoader = (): React$Element<*> => {
  const [show, setShow] = useState(DEFAULT_SHOW)
 
  useEffect(() => {
    const timeout = setTimeout(() => {
      setShow(false)
    }, TIMEOUT)
 
    return () => {
      clearTimeout(timeout)
    }
  }, [])
 
  return (
    <CSSTransition
      classNames="preloader"
      in={show}
      mountOnEnter
      timeout={TIMEOUT}
      unmountOnExit
    >
      <Wrapper>
        <Container>
          <FadeIn
            fadeIn="Left"
            isAnimated={show}
          >
            <PreloadLogo>
              <span>{"Blu"}</span>
 
              {" Frame"}
            </PreloadLogo>
          </FadeIn>
 
          <FadeIn
            fadeIn="Right"
            isAnimated={show}
          >
            <BackLogo>{"Blu Frame"}</BackLogo>
          </FadeIn>
 
          <FadeIn
            fadeIn="Up"
            isAnimated={show}
          >
            <img src={preload} />
          </FadeIn>
        </Container>
      </Wrapper>
    </CSSTransition>
  )
}
 
export default PreLoader