Brandon Presley
a0dc62e761
This is the result of me fixing the background timers. Previously our code just used a CountdownTimer not even in a service, just immediately in the @ReactMethod. This would in certain scenarios stop running. Even with battery optimizations turned off. The reason why all the JS side timers had to be removed is because we were relying on RCTDeviceEventEmitter which I don't know how to use from within a Service. See my stackoverflow ticket here: https://stackoverflow.com/questions/74204339/sending-react-native-android-events-to-javascript-from-a-service Closes #212, #196
76 lines
2.2 KiB
TypeScript
76 lines
2.2 KiB
TypeScript
import { createDrawerNavigator } from "@react-navigation/drawer";
|
|
import { StackScreenProps } from "@react-navigation/stack";
|
|
import { IconButton, useTheme, Banner } from "react-native-paper";
|
|
import { DrawerParams } from "./drawer-params";
|
|
import ExerciseList from "./ExerciseList";
|
|
import GraphsList from "./GraphsList";
|
|
import InsightsPage from "./InsightsPage";
|
|
import PlanList from "./PlanList";
|
|
import SetList from "./SetList";
|
|
import SettingsPage from "./SettingsPage";
|
|
import WeightList from "./WeightList";
|
|
|
|
const Drawer = createDrawerNavigator<DrawerParams>();
|
|
|
|
interface AppDrawerParams {
|
|
startup: string;
|
|
}
|
|
|
|
export default function AppDrawer({
|
|
route,
|
|
}: StackScreenProps<{ startup: AppDrawerParams }>) {
|
|
const { dark } = useTheme();
|
|
|
|
return (
|
|
<Drawer.Navigator
|
|
screenOptions={{
|
|
headerTintColor: dark ? "white" : "black",
|
|
swipeEdgeWidth: 1000,
|
|
headerShown: false,
|
|
}}
|
|
initialRouteName={
|
|
(route.params.startup as keyof DrawerParams) || "History"
|
|
}
|
|
>
|
|
<Drawer.Screen
|
|
name="History"
|
|
component={SetList}
|
|
options={{ drawerIcon: () => <IconButton icon="history" /> }}
|
|
/>
|
|
<Drawer.Screen
|
|
name="Exercises"
|
|
component={ExerciseList}
|
|
options={{ drawerIcon: () => <IconButton icon="dumbbell" /> }}
|
|
/>
|
|
<Drawer.Screen
|
|
name="Plans"
|
|
component={PlanList}
|
|
options={{ drawerIcon: () => <IconButton icon="calendar-outline" /> }}
|
|
/>
|
|
<Drawer.Screen
|
|
name="Graphs"
|
|
component={GraphsList}
|
|
options={{
|
|
drawerIcon: () => <IconButton icon="chart-bell-curve-cumulative" />,
|
|
}}
|
|
/>
|
|
<Drawer.Screen
|
|
name="Weight"
|
|
component={WeightList}
|
|
options={{ drawerIcon: () => <IconButton icon="scale-bathroom" /> }}
|
|
/>
|
|
<Drawer.Screen
|
|
name="Insights"
|
|
component={InsightsPage}
|
|
options={{
|
|
drawerIcon: () => <IconButton icon="lightbulb-on-outline" />,
|
|
}}
|
|
/>
|
|
<Drawer.Screen
|
|
name="Settings"
|
|
component={SettingsPage}
|
|
options={{ drawerIcon: () => <IconButton icon="cog-outline" /> }}
|
|
/>
|
|
</Drawer.Navigator>
|
|
);
|
|
} |