Add fatal error message if database fails to initialize
This will help with debugging if the user can directly provide what error occurred.
This commit is contained in:
parent
ec17ad5805
commit
7a24d844c5
19
App.tsx
19
App.tsx
|
@ -4,11 +4,12 @@ import {
|
||||||
NavigationContainer,
|
NavigationContainer,
|
||||||
} from "@react-navigation/native";
|
} from "@react-navigation/native";
|
||||||
import React, { useEffect, useMemo, useState } from "react";
|
import React, { useEffect, useMemo, useState } from "react";
|
||||||
import { useColorScheme } from "react-native";
|
import { View, useColorScheme } from "react-native";
|
||||||
import {
|
import {
|
||||||
MD3DarkTheme as PaperDarkTheme,
|
MD3DarkTheme as PaperDarkTheme,
|
||||||
MD3LightTheme as PaperDefaultTheme,
|
MD3LightTheme as PaperDefaultTheme,
|
||||||
Provider as PaperProvider,
|
Provider as PaperProvider,
|
||||||
|
Text,
|
||||||
} from "react-native-paper";
|
} from "react-native-paper";
|
||||||
import MaterialIcon from "react-native-vector-icons/MaterialCommunityIcons";
|
import MaterialIcon from "react-native-vector-icons/MaterialCommunityIcons";
|
||||||
import AppSnack from "./AppSnack";
|
import AppSnack from "./AppSnack";
|
||||||
|
@ -16,6 +17,7 @@ import AppStack from "./AppStack";
|
||||||
import { AppDataSource } from "./data-source";
|
import { AppDataSource } from "./data-source";
|
||||||
import { settingsRepo } from "./db";
|
import { settingsRepo } from "./db";
|
||||||
import { ThemeContext } from "./use-theme";
|
import { ThemeContext } from "./use-theme";
|
||||||
|
import { MARGIN } from "./constants";
|
||||||
|
|
||||||
export const CombinedDefaultTheme = {
|
export const CombinedDefaultTheme = {
|
||||||
...NavigationDefaultTheme,
|
...NavigationDefaultTheme,
|
||||||
|
@ -45,10 +47,12 @@ const App = () => {
|
||||||
lightColor: CombinedDefaultTheme.colors.primary,
|
lightColor: CombinedDefaultTheme.colors.primary,
|
||||||
darkColor: CombinedDarkTheme.colors.primary,
|
darkColor: CombinedDarkTheme.colors.primary,
|
||||||
});
|
});
|
||||||
|
const [error, setError] = useState("");
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
(async () => {
|
(async () => {
|
||||||
if (!AppDataSource.isInitialized) await AppDataSource.initialize();
|
if (!AppDataSource.isInitialized)
|
||||||
|
await AppDataSource.initialize().catch((e) => setError(e.toString()));
|
||||||
const gotSettings = await settingsRepo.findOne({ where: {} });
|
const gotSettings = await settingsRepo.findOne({ where: {} });
|
||||||
console.log({ gotSettings });
|
console.log({ gotSettings });
|
||||||
setAppSettings({
|
setAppSettings({
|
||||||
|
@ -88,6 +92,17 @@ const App = () => {
|
||||||
settings={{ icon: (props) => <MaterialIcon {...props} /> }}
|
settings={{ icon: (props) => <MaterialIcon {...props} /> }}
|
||||||
>
|
>
|
||||||
<NavigationContainer theme={paperTheme}>
|
<NavigationContainer theme={paperTheme}>
|
||||||
|
{error && (
|
||||||
|
<View
|
||||||
|
style={{ flex: 1, justifyContent: "center", alignItems: "center" }}
|
||||||
|
>
|
||||||
|
<Text
|
||||||
|
style={{ color: paperTheme.colors.background, margin: MARGIN }}
|
||||||
|
>
|
||||||
|
Database failed to initialize: {error}
|
||||||
|
</Text>
|
||||||
|
</View>
|
||||||
|
)}
|
||||||
{appSettings.startup !== undefined && (
|
{appSettings.startup !== undefined && (
|
||||||
<ThemeContext.Provider
|
<ThemeContext.Provider
|
||||||
value={{
|
value={{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user