36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import React, { JSX } from 'react';
|
|
import { Appearance, StatusBar } from 'react-native';
|
|
import { PaperProvider } from 'react-native-paper';
|
|
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
import { RealmProvider } from '@realm/react';
|
|
import { lightTheme, darkTheme } from './theme';
|
|
import { Meme, Tag } from './database';
|
|
import NavigationContainer from './navigation';
|
|
import { SettingsProvider } from './contexts/settings';
|
|
import ActionButton from './components/actionButton';
|
|
|
|
function App(): JSX.Element {
|
|
const colorScheme = Appearance.getColorScheme();
|
|
const isDarkMode = colorScheme === 'dark';
|
|
const theme = isDarkMode ? darkTheme : lightTheme;
|
|
|
|
return (
|
|
<RealmProvider schema={[Meme, Tag]}>
|
|
<PaperProvider theme={theme}>
|
|
<SettingsProvider>
|
|
<SafeAreaProvider>
|
|
<StatusBar
|
|
barStyle={isDarkMode ? 'light-content' : 'dark-content'}
|
|
backgroundColor={theme.colors.background}
|
|
/>
|
|
<NavigationContainer />
|
|
<ActionButton />
|
|
</SafeAreaProvider>
|
|
</SettingsProvider>
|
|
</PaperProvider>
|
|
</RealmProvider>
|
|
);
|
|
}
|
|
|
|
export default App;
|