Kantongku: onboarding personalisasi (nama + gender avatar 3D) + splash mewah + greeting dinamis
This commit is contained in:
@@ -1,15 +1,19 @@
|
||||
import { useEffect, useState } from 'react';
|
||||
import { ActivityIndicator, StatusBar, StyleSheet, Text, View } from 'react-native';
|
||||
import * as SplashScreen from 'expo-splash-screen';
|
||||
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
||||
import { NavigationContainer } from '@react-navigation/native';
|
||||
import { initDatabase } from './src/db/database';
|
||||
import { checkRecurringDue } from './src/db/repositories';
|
||||
import { checkRecurringDue, getSetting } from './src/db/repositories';
|
||||
import { RootNavigator } from './src/navigation';
|
||||
import { colors } from './src/theme/colors';
|
||||
|
||||
SplashScreen.preventAutoHideAsync().catch(() => {});
|
||||
|
||||
export default function App() {
|
||||
const [ready, setReady] = useState(false);
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
const [initialRoute, setInitialRoute] = useState<'Main' | 'Onboarding'>('Onboarding');
|
||||
|
||||
useEffect(() => {
|
||||
initDatabase()
|
||||
@@ -20,7 +24,10 @@ export default function App() {
|
||||
} catch {
|
||||
// jangan sampai mengganggu startup
|
||||
}
|
||||
const onboarded = await getSetting('onboarded');
|
||||
setInitialRoute(onboarded === '1' ? 'Main' : 'Onboarding');
|
||||
setReady(true);
|
||||
SplashScreen.hideAsync().catch(() => {});
|
||||
})
|
||||
.catch((e) => setError(String(e)));
|
||||
}, []);
|
||||
@@ -46,7 +53,7 @@ export default function App() {
|
||||
return (
|
||||
<SafeAreaProvider>
|
||||
<NavigationContainer>
|
||||
<RootNavigator />
|
||||
<RootNavigator initialRoute={initialRoute} />
|
||||
</NavigationContainer>
|
||||
<StatusBar
|
||||
barStyle="light-content"
|
||||
|
||||
Reference in New Issue
Block a user