|
@@ -20,27 +20,43 @@ const needsHeaderFooter = {
|
|
[ERROR]: true
|
|
[ERROR]: true
|
|
};
|
|
};
|
|
|
|
|
|
-const Header = () => (
|
|
|
|
- <div className={styles.header}>
|
|
|
|
- <p>TerrAssumptions!</p>
|
|
|
|
- </div>
|
|
|
|
|
|
+const Header = ({ show }) => (
|
|
|
|
+ <CSSTransition
|
|
|
|
+ in={show}
|
|
|
|
+ timeout={1000}
|
|
|
|
+ mountOnEnter
|
|
|
|
+ unmountOnExit
|
|
|
|
+ classNames="state"
|
|
|
|
+ >
|
|
|
|
+ <div className={styles.header}>
|
|
|
|
+ <p>TerrAssumptions!</p>
|
|
|
|
+ </div>
|
|
|
|
+ </CSSTransition>
|
|
)
|
|
)
|
|
|
|
|
|
-const Footer = () => (
|
|
|
|
- <div className={styles.footer}>
|
|
|
|
- <ApiInfo />
|
|
|
|
- </div>
|
|
|
|
|
|
+const Footer = ({ show }) => (
|
|
|
|
+ <CSSTransition
|
|
|
|
+ in={show}
|
|
|
|
+ timeout={1000}
|
|
|
|
+ mountOnEnter
|
|
|
|
+ unmountOnExit
|
|
|
|
+ classNames="state"
|
|
|
|
+ >
|
|
|
|
+ <div className={styles.footer}>
|
|
|
|
+ <ApiInfo />
|
|
|
|
+ </div>
|
|
|
|
+ </CSSTransition>
|
|
)
|
|
)
|
|
|
|
|
|
-const State = ({ show, children, onEnter, onExited }) => (
|
|
|
|
|
|
+const State = ({ show, children, setTransitioning }) => (
|
|
<CSSTransition
|
|
<CSSTransition
|
|
in={show}
|
|
in={show}
|
|
timeout={1000}
|
|
timeout={1000}
|
|
mountOnEnter
|
|
mountOnEnter
|
|
unmountOnExit
|
|
unmountOnExit
|
|
classNames="state"
|
|
classNames="state"
|
|
- onEnter={onEnter}
|
|
|
|
- onExited={onExited}
|
|
|
|
|
|
+ onEnter={() => setTransitioning(true)}
|
|
|
|
+ onExited={() => setTransitioning(false)}
|
|
>
|
|
>
|
|
<div className="state">
|
|
<div className="state">
|
|
{children}
|
|
{children}
|
|
@@ -57,24 +73,24 @@ export default () => {
|
|
return (
|
|
return (
|
|
<React.StrictMode>
|
|
<React.StrictMode>
|
|
<div className={styles.page}>
|
|
<div className={styles.page}>
|
|
- {needsHF && <Header />}
|
|
|
|
- <State show={gameState === PRE_GAME} onExited={() => setSt(false)}>
|
|
|
|
|
|
+ <Header show={needsHF} />
|
|
|
|
+ <State show={gameState === PRE_GAME} setTransitioning={setSt}>
|
|
<HomePage />
|
|
<HomePage />
|
|
</State>
|
|
</State>
|
|
- <State show={gameState === PRE_ROUND} onExited={() => setSt(false)}>
|
|
|
|
|
|
+ <State show={gameState === PRE_ROUND} setTransitioning={setSt}>
|
|
<Lobby />
|
|
<Lobby />
|
|
</State>
|
|
</State>
|
|
{!st && gameState === IN_ROUND && <GamePanel />}
|
|
{!st && gameState === IN_ROUND && <GamePanel />}
|
|
- <State show={gameState === POST_ROUND} onEnter={() => setSt(true)} onExited={() => setSt(false)}>
|
|
|
|
|
|
+ <State show={gameState === POST_ROUND} setTransitioning={setSt}>
|
|
<RoundSummary />
|
|
<RoundSummary />
|
|
</State>
|
|
</State>
|
|
- <State show={gameState === POST_GAME}>
|
|
|
|
|
|
+ <State show={gameState === POST_GAME} setTransitioning={setSt}>
|
|
<PlayerScores />
|
|
<PlayerScores />
|
|
</State>
|
|
</State>
|
|
<State show={gameState === ERROR}>
|
|
<State show={gameState === ERROR}>
|
|
<p>Application encountered unrecoverable error, please refresh the page.</p>
|
|
<p>Application encountered unrecoverable error, please refresh the page.</p>
|
|
</State>
|
|
</State>
|
|
- {needsHF && <Footer />}
|
|
|
|
|
|
+ <Footer show={needsHF} />
|
|
</div>
|
|
</div>
|
|
</React.StrictMode>
|
|
</React.StrictMode>
|
|
);
|
|
);
|