-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.js
More file actions
35 lines (31 loc) · 1.15 KB
/
App.js
File metadata and controls
35 lines (31 loc) · 1.15 KB
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
import { StatusBar } from 'expo-status-bar';
import { useState } from 'react';
import { useFonts, Bangers_400Regular } from '@expo-google-fonts/bangers';
import { Fredoka_700Bold } from '@expo-google-fonts/fredoka';
import Menu from './screens/menu';
import Game from './screens/game';
import Lobby from './screens/lobby';
import Multiplayer from './screens/multiplayer';
import UpdateChecker from './hooks/updatechecker';
export default function App() {
const [screen, setScreen] = useState('menu');
const [screenParams, setScreenParams] = useState({});
const [fontsLoaded] = useFonts({ Bangers_400Regular, Fredoka_700Bold });
function navigate(to, params = {}) {
setScreenParams(params);
setScreen(to);
}
if (!fontsLoaded) return null;
return (
<>
{screen === 'menu' && <Menu navigate={navigate} />}
{screen === 'game' && <Game navigate={navigate} />}
{screen === 'lobby' && <Lobby navigate={navigate} />}
{screen === 'multiplayer' && (
<Multiplayer navigate={navigate} roomId={screenParams.roomId} myRole={screenParams.myRole} />
)}
<UpdateChecker />
<StatusBar style="light" />
</>
);
}