Massive/App.tsx

49 lines
1.4 KiB
TypeScript
Raw Normal View History

2022-07-03 01:50:01 +00:00
import AsyncStorage from '@react-native-async-storage/async-storage';
2022-07-04 04:03:48 +00:00
import {createMaterialTopTabNavigator} from '@react-navigation/material-top-tabs';
2022-06-30 06:50:52 +00:00
import {
2022-07-03 01:50:01 +00:00
DarkTheme,
DefaultTheme,
NavigationContainer,
} from '@react-navigation/native';
import React, {useEffect} from 'react';
2022-07-05 12:06:16 +00:00
import {StatusBar, useColorScheme} from 'react-native';
2022-07-03 01:50:01 +00:00
import {setupSchema} from './db';
import Exercises from './Exercises';
import Home from './Home';
2022-07-06 05:40:53 +00:00
import Plans from './Plans';
2022-07-03 01:50:01 +00:00
import Settings from './Settings';
2022-07-04 04:03:48 +00:00
const Tab = createMaterialTopTabNavigator<RootStackParamList>();
2022-07-03 01:50:01 +00:00
export type RootStackParamList = {
Home: {};
Settings: {};
2022-07-04 04:03:48 +00:00
Exercises: {};
2022-07-06 05:40:53 +00:00
Plans: {};
2022-07-03 01:50:01 +00:00
};
setupSchema();
2022-06-30 06:50:52 +00:00
2022-07-01 01:42:42 +00:00
const App = () => {
const dark = useColorScheme() === 'dark';
2022-06-30 06:50:52 +00:00
2022-07-03 01:50:01 +00:00
useEffect(() => {
AsyncStorage.getItem('minutes').then(async minutes => {
if (!minutes) await AsyncStorage.setItem('minutes', '3');
});
}, []);
2022-06-30 06:50:52 +00:00
return (
2022-07-03 01:50:01 +00:00
<NavigationContainer theme={dark ? DarkTheme : DefaultTheme}>
2022-07-01 01:42:42 +00:00
<StatusBar barStyle={dark ? 'light-content' : 'dark-content'} />
2022-07-04 04:03:48 +00:00
<Tab.Navigator>
2022-07-03 01:50:01 +00:00
<Tab.Screen name="Home" component={Home} />
2022-07-06 05:40:53 +00:00
<Tab.Screen name="Plans" component={Plans} />
2022-07-03 01:50:01 +00:00
<Tab.Screen name="Exercises" component={Exercises} />
<Tab.Screen name="Settings" component={Settings} />
</Tab.Navigator>
</NavigationContainer>
2022-06-30 06:50:52 +00:00
);
};
export default App;