parent
							
								
									509b1cfdc5
								
							
						
					
					
						commit
						8482deb7e5
					
				| @ -0,0 +1,79 @@ | ||||
| import React, {useEffect, useRef, useState} from "react"; | ||||
| import {Row} from "antd"; | ||||
| import NextShot from "./components/NextShot"; | ||||
| import Feed from "./components/Feed"; | ||||
| import ShotsTaken from "./components/ShotsTaken"; | ||||
| import Lobby from "./components/Lobby"; | ||||
| import {useSocket} from "use-socketio"; | ||||
| import logo from "./via-logo.svg"; | ||||
| import {Tick} from "./types/types"; | ||||
| import {NumberParam, useQueryParam} from "use-query-params"; | ||||
| 
 | ||||
| const Wrapper = () => { | ||||
|     const [started, setStarted] = useState(false); | ||||
|     const [wantsToStart, setWantsToStart] = useState(false); | ||||
|     const player = useRef(new Audio("centurion.m4a")); | ||||
|     const [noSound] = useQueryParam('noSound', NumberParam); | ||||
| 
 | ||||
|     function goStart() { | ||||
|         console.log("Starting from wrapper.."); | ||||
|         setWantsToStart(true); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     const {socket} = useSocket("started", async (obj: any) => { | ||||
|         console.log("got started"); | ||||
|         setStarted(true); | ||||
| 
 | ||||
|         if (typeof noSound === 'undefined') { | ||||
|             await player.current.play(); | ||||
|         } | ||||
|     }); | ||||
| 
 | ||||
|     useEffect(() => { | ||||
|         if (noSound === 1) { | ||||
|             // Won't play sound so we don't get DOM Interaction errors.
 | ||||
|             setWantsToStart(true); | ||||
|         } | ||||
|     }, []); | ||||
| 
 | ||||
|     useSocket("tick_event", async (tick: Tick) => { | ||||
|         if (!started && wantsToStart) { | ||||
|             if (player.current.paused) { | ||||
|                 if (typeof noSound === 'undefined') { | ||||
|                     await player.current.play(); | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|             setStarted(true); | ||||
|             player.current.currentTime = tick.current; | ||||
|         } | ||||
|     }); | ||||
| 
 | ||||
|     const feedContent = ( | ||||
|         <Row> | ||||
|             <NextShot/> | ||||
|             <Feed/> | ||||
|             <ShotsTaken/> | ||||
|         </Row> | ||||
|     ); | ||||
| 
 | ||||
|     const lobbyContent = ( | ||||
|         <Lobby start={goStart}/> | ||||
|     ); | ||||
| 
 | ||||
|     const content = started ? feedContent : lobbyContent; | ||||
| 
 | ||||
|     return ( | ||||
|         <> | ||||
|             <section className="content"> | ||||
|                 {content} | ||||
|             </section> | ||||
|             <footer> | ||||
|                 <img src={logo} className="via-logo" alt="logo"/> | ||||
|             </footer> | ||||
|         </> | ||||
|     ); | ||||
| }; | ||||
| 
 | ||||
| export default Wrapper; | ||||
					Loading…
					
					
				
		Reference in new issue