Add Realm base

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
2023-07-08 19:07:31 +03:00
parent 3cdf3c2295
commit c1c22145b2
7 changed files with 103 additions and 30 deletions

View File

@@ -1,43 +1,49 @@
import React from 'react';
import { Appearance, StatusBar } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createMaterialBottomTabNavigator } from 'react-native-paper/react-navigation';
import { PaperProvider } from 'react-native-paper';
import { SafeAreaProvider } from 'react-native-safe-area-context';
import FontAwesome5 from 'react-native-vector-icons/FontAwesome5';
import Home from './screens/home';
import { lightTheme, darkTheme } from './theme';
import { Meme, Tag } from './database';
import { createRealmContext } from '@realm/react';
const TabNavigator = createMaterialBottomTabNavigator();
const { RealmProvider } = createRealmContext({
schema: [Meme, Tag],
});
function App(): JSX.Element {
const colorScheme = Appearance.getColorScheme();
const theme = colorScheme === 'dark' ? lightTheme : darkTheme;
return (
<PaperProvider theme={theme}>
<SafeAreaProvider>
<StatusBar
barStyle={colorScheme === 'dark' ? 'dark-content' : 'light-content'}
backgroundColor={theme.colors.background}
/>
<NavigationContainer>
<TabNavigator.Navigator>
<TabNavigator.Screen
name="Home"
component={Home}
options={{
tabBarIcon: ({ color }) => (
<FontAwesome5 name="home" color={color} size={20} />
),
}}
/>
</TabNavigator.Navigator>
</NavigationContainer>
</SafeAreaProvider>
</PaperProvider>
<RealmProvider>
<PaperProvider theme={theme}>
<SafeAreaProvider>
<StatusBar
barStyle={colorScheme === 'dark' ? 'dark-content' : 'light-content'}
backgroundColor={theme.colors.background}
/>
<NavigationContainer>
<TabNavigator.Navigator>
<TabNavigator.Screen
name="Home"
component={Home}
options={{
tabBarIcon: ({ color }) => (
<FontAwesome5 name="home" color={color} size={20} />
),
}}
/>
</TabNavigator.Navigator>
</NavigationContainer>
</SafeAreaProvider>
</PaperProvider>
</RealmProvider>
);
}