diff --git a/.rgignore b/.rgignore new file mode 100644 index 0000000..8ee01d3 --- /dev/null +++ b/.rgignore @@ -0,0 +1 @@ +yarn.lock diff --git a/App.tsx b/App.tsx index cf91c8c..e19aa82 100644 --- a/App.tsx +++ b/App.tsx @@ -10,18 +10,14 @@ import {StatusBar, useColorScheme} from 'react-native'; import { DarkTheme as DarkThemePaper, DefaultTheme as DefaultThemePaper, - IconButton, Provider, } from 'react-native-paper'; import {SQLiteDatabase} from 'react-native-sqlite-storage'; import Ionicon from 'react-native-vector-icons/Ionicons'; -import BestPage from './BestPage'; import {createPlans, createSets, getDb} from './db'; -import HomePage from './HomePage'; -import PlanPage from './PlanPage'; -import SettingsPage from './SettingsPage'; +import Routes from './Routes'; -const Drawer = createDrawerNavigator(); +export const Drawer = createDrawerNavigator(); export type DrawerParamList = { Home: {}; Settings: {}; @@ -62,55 +58,7 @@ const App = () => { settings={{icon: props => }}> - {db && ( - - - ( - - ), - }} - name="Home" - component={HomePage} - /> - ( - - ), - }} - name="Plans" - component={PlanPage} - /> - ( - - ), - }} - name="Best" - component={BestPage} - /> - ( - - ), - }} - name="Settings" - component={SettingsPage} - /> - - - )} + ); diff --git a/Routes.tsx b/Routes.tsx new file mode 100644 index 0000000..058b0e4 --- /dev/null +++ b/Routes.tsx @@ -0,0 +1,50 @@ +import React from 'react'; +import {useColorScheme} from 'react-native'; +import {IconButton} from 'react-native-paper'; +import {SQLiteDatabase} from 'react-native-sqlite-storage'; +import {DatabaseContext, Drawer, DrawerParamList} from './App'; +import BestPage from './BestPage'; +import HomePage from './HomePage'; +import PlanPage from './PlanPage'; +import SettingsPage from './SettingsPage'; + +interface Route { + name: keyof DrawerParamList; + component: React.ComponentType; + icon: string; +} + +export default function Routes({db}: {db: SQLiteDatabase | null}) { + const dark = useColorScheme() === 'dark'; + + if (!db) return null; + + const routes: Route[] = [ + {name: 'Home', component: HomePage, icon: 'home'}, + {name: 'Plans', component: PlanPage, icon: 'calendar'}, + {name: 'Best', component: BestPage, icon: 'stats-chart'}, + {name: 'Settings', component: SettingsPage, icon: 'settings'}, + ]; + + return ( + + + {routes.map(route => ( + ( + + ), + }} + /> + ))} + + + ); +} diff --git a/android/app/build.gradle b/android/app/build.gradle index 9e26913..9409577 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -39,7 +39,7 @@ android { missingDimensionStrategy "RNNotifications.reactNativeVersion", "reactNative60" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 + versionCode 2 versionName "1.0" buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()