diff --git a/App.tsx b/App.tsx index de09f6c..07fb73c 100644 --- a/App.tsx +++ b/App.tsx @@ -1,23 +1,22 @@ import { + NavigationContainer, DarkTheme as NavigationDarkTheme, DefaultTheme as NavigationDefaultTheme, - NavigationContainer, } from "@react-navigation/native"; import React, { useEffect, useMemo, useState } from "react"; -import { View, useColorScheme } from "react-native"; +import { useColorScheme } from "react-native"; import { MD3DarkTheme as PaperDarkTheme, MD3LightTheme as PaperDefaultTheme, Provider as PaperProvider, - Text, } from "react-native-paper"; import MaterialIcon from "react-native-vector-icons/MaterialCommunityIcons"; import AppSnack from "./AppSnack"; import AppStack from "./AppStack"; +import FatalError from "./FatalError"; import { AppDataSource } from "./data-source"; import { settingsRepo } from "./db"; import { ThemeContext } from "./use-theme"; -import { MARGIN } from "./constants"; export const CombinedDefaultTheme = { ...NavigationDefaultTheme, @@ -93,18 +92,11 @@ const App = () => { > {error && ( - - - Database failed to initialize: {error} - - + )} {appSettings.startup !== undefined && ( void; + setError: (message: string) => void; +}) { + const systemTheme = useColorScheme(); + + const resetDatabase = useCallback(async () => { + await FileSystem.cp("/dev/null", Dirs.DatabaseDir + "/massive.db"); + await AppDataSource.initialize(); + const gotSettings = await settingsRepo.findOne({ where: {} }); + setAppSettings({ + startup: gotSettings.startup, + theme: gotSettings.theme, + lightColor: gotSettings.lightColor || CombinedDefaultTheme.colors.primary, + darkColor: gotSettings.darkColor || CombinedDarkTheme.colors.primary, + }); + setError(""); + }, [setAppSettings, setError]); + + return ( + + + Database failed to initialize: {message} + + + + ); +}