import AsyncStorage from '@react-native-async-storage/async-storage'; import {createDrawerNavigator} from '@react-navigation/drawer'; import { DarkTheme, DefaultTheme, NavigationContainer, } from '@react-navigation/native'; import React, {useEffect, useState} from 'react'; import {StatusBar, useColorScheme} from 'react-native'; import { DarkTheme as DarkThemePaper, DefaultTheme as DefaultThemePaper, Provider, } from 'react-native-paper'; import {SQLiteDatabase} from 'react-native-sqlite-storage'; import Ionicon from 'react-native-vector-icons/Ionicons'; import {createPlans, createSets, getDb} from './db'; import Routes from './Routes'; export const Drawer = createDrawerNavigator(); export type DrawerParamList = { Home: {}; Settings: {}; Best: {}; Plans: {}; }; export const DatabaseContext = React.createContext({} as any); const {getItem, setItem} = AsyncStorage; const App = () => { const [db, setDb] = useState(null); const dark = useColorScheme() === 'dark'; useEffect(() => { const init = async () => { const gotDb = await getDb(); await gotDb.executeSql(createPlans); await gotDb.executeSql(createSets); setDb(gotDb); const minutes = await getItem('minutes'); if (minutes === null) await setItem('minutes', '3'); const seconds = await getItem('seconds'); if (seconds === null) await setItem('seconds', '30'); const alarmEnabled = await getItem('alarmEnabled'); if (alarmEnabled === null) await setItem('alarmEnabled', 'false'); if (!(await getItem('predictiveSets'))) await setItem('predictiveSets', 'true'); if (!(await getItem('maxSets'))) await setItem('maxSets', '3'); }; init(); }, []); return ( }}> ); }; export default App;