-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.js
More file actions
46 lines (40 loc) · 1.51 KB
/
App.js
File metadata and controls
46 lines (40 loc) · 1.51 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
36
37
38
39
40
41
42
43
44
45
import { ImageBackground } from 'react-native';
import StartGameScreen from './screens/startGameScreen';
import { LinearGradient } from 'expo-linear-gradient';
import { useState } from 'react';
import GameScreen from './screens/GameScreen';
import GameOverScreen from './screens/GameOverScreen';
import { SafeAreaProvider } from 'react-native-safe-area-context';
export default function App() {
const [userNumber, setUserNumber] = useState();
const [isGameOver, setIsGameOver] = useState(false);
const [rounds, setRounds] = useState([]);
function pickedNumberHandler(pickedNumber) {
setUserNumber(pickedNumber);
}
function returnToHome() {
setUserNumber(null);
setIsGameOver(false);
setRounds([]);
}
function gameOverHandle(roundsList) {
setIsGameOver(true);
setRounds(roundsList)
}
let screen = <StartGameScreen pickedNumerHendler={pickedNumberHandler} />
if (userNumber && !isGameOver) {
screen = <GameScreen chosenNumber={userNumber} gameOverHandle={gameOverHandle} />
} else if (userNumber && isGameOver) {
screen = <GameOverScreen rounds={rounds} returnToHome={returnToHome} userNumber={userNumber} />
}
return (
<SafeAreaProvider>
<LinearGradient colors={['#ec6161fe', '#f64f4ffe', '#f5f5f5ff',]} style={{ flex: 1, }}>
<ImageBackground source={require('./assets/dice.jpeg')} resizeMode='cover'
style={{ flex: 1, }} imageStyle={{ opacity: .4 }} >
{screen}
</ImageBackground>
</LinearGradient>
</SafeAreaProvider>
);
}