mirror of
https://github.com/urosran/cally.git
synced 2025-11-26 16:34:54 +00:00
209 lines
6.1 KiB
TypeScript
209 lines
6.1 KiB
TypeScript
import React from "react";
|
|
import { Drawer } from "expo-router/drawer";
|
|
import { useSignOut } from "@/hooks/firebase/useSignOut";
|
|
import {
|
|
DrawerContentScrollView,
|
|
DrawerItem,
|
|
DrawerItemList,
|
|
} from "@react-navigation/drawer";
|
|
import { Button, View, Text, ButtonSize } from "react-native-ui-lib";
|
|
import { StyleSheet } from "react-native";
|
|
import Feather from "@expo/vector-icons/Feather";
|
|
import DrawerButton from "@/components/shared/DrawerButton";
|
|
import {
|
|
AntDesign,
|
|
FontAwesome6,
|
|
MaterialCommunityIcons,
|
|
Octicons,
|
|
} from "@expo/vector-icons";
|
|
import MenuIcon from "@/assets/svgs/MenuIcon";
|
|
import { router } from "expo-router";
|
|
import NavGroceryIcon from "@/assets/svgs/NavGroceryIcon";
|
|
import NavToDosIcon from "@/assets/svgs/NavToDosIcon";
|
|
import NavBrainDumpIcon from "@/assets/svgs/NavBrainDumpIcon";
|
|
import NavCalendarIcon from "@/assets/svgs/NavCalendarIcon";
|
|
import NavSettingsIcon from "@/assets/svgs/NavSettingsIcon";
|
|
|
|
export default function TabLayout() {
|
|
const { mutateAsync: signOut } = useSignOut();
|
|
|
|
return (
|
|
<Drawer
|
|
initialRouteName={"index"}
|
|
screenOptions={{
|
|
headerShown: true,
|
|
drawerStyle: {
|
|
width: "90%",
|
|
backgroundColor: "#f9f8f7",
|
|
height: "100%",
|
|
},
|
|
drawerIcon: () => <MenuIcon />,
|
|
}}
|
|
drawerContent={(props) => {
|
|
return (
|
|
<DrawerContentScrollView {...props} style={{ height: "100%" }}>
|
|
<View centerH centerV margin-30>
|
|
<Text style={styles.title}>Welcome to Cally</Text>
|
|
</View>
|
|
<View
|
|
style={{
|
|
flexDirection: "row",
|
|
paddingHorizontal: 30,
|
|
}}
|
|
>
|
|
<View style={{ flex: 1, paddingRight: 5 }}>
|
|
<DrawerButton
|
|
title={"Calendar"}
|
|
color="rgb(7, 184, 199)"
|
|
bgColor={"rgb(231, 248, 250)"}
|
|
pressFunc={() => props.navigation.navigate("calendar")}
|
|
icon={<NavCalendarIcon />}
|
|
/>
|
|
<DrawerButton
|
|
color="#50be0c"
|
|
title={"Groceries"}
|
|
bgColor={"#eef9e7"}
|
|
pressFunc={() => props.navigation.navigate("grocery")}
|
|
icon={<NavGroceryIcon />}
|
|
/>
|
|
</View>
|
|
<View style={{ flex: 1 }}>
|
|
{/*<DrawerButton
|
|
color="#fd1775"
|
|
title={"My Reminders"}
|
|
bgColor={"#ffe8f2"}
|
|
pressFunc={() => props.navigation.navigate("reminders")}
|
|
icon={
|
|
<FontAwesome6
|
|
name="clock-rotate-left"
|
|
size={28}
|
|
color="#fd1775"
|
|
/>
|
|
}
|
|
/>*/}
|
|
<DrawerButton
|
|
color="#8005eb"
|
|
title={"To Do's"}
|
|
bgColor={"#f3e6fd"}
|
|
pressFunc={() => props.navigation.navigate("todos")}
|
|
icon={<NavToDosIcon />}
|
|
/>
|
|
<DrawerButton
|
|
color="#e0ca03"
|
|
title={"Brain Dump"}
|
|
bgColor={"#fffacb"}
|
|
pressFunc={() => props.navigation.navigate("brain_dump")}
|
|
icon={<NavBrainDumpIcon />}
|
|
/>
|
|
{/*<DrawerItem label="Logout" onPress={() => signOut()} />*/}
|
|
</View>
|
|
</View>
|
|
<Button
|
|
onPress={() => props.navigation.navigate("settings")}
|
|
label={"Manage Settings"}
|
|
labelStyle={styles.label}
|
|
iconSource={() => (
|
|
<View
|
|
backgroundColor="#ededed"
|
|
width={60}
|
|
height={60}
|
|
style={{ borderRadius: 50 }}
|
|
marginR-10
|
|
centerV
|
|
centerH
|
|
>
|
|
<NavSettingsIcon />
|
|
</View>
|
|
)}
|
|
backgroundColor="white"
|
|
color="#464039"
|
|
paddingV-30
|
|
marginH-30
|
|
marginB-10
|
|
borderRadius={18.55}
|
|
style={{ elevation: 0 }}
|
|
/>
|
|
|
|
<Button
|
|
size={ButtonSize.large}
|
|
marginH-30
|
|
paddingV-15
|
|
style={{
|
|
marginTop: "42%",
|
|
backgroundColor: "transparent",
|
|
borderWidth: 1.3,
|
|
borderColor: "#fd1775",
|
|
}}
|
|
label="Sign out of Cally"
|
|
color="#fd1775"
|
|
labelStyle={styles.signOut}
|
|
onPress={() => signOut()}
|
|
/>
|
|
</DrawerContentScrollView>
|
|
);
|
|
}}
|
|
>
|
|
<Drawer.Screen
|
|
name="index"
|
|
options={{
|
|
drawerLabel: "Calendar",
|
|
title: "Calendar",
|
|
}}
|
|
/>
|
|
<Drawer.Screen
|
|
name="calendar"
|
|
options={{
|
|
drawerLabel: "Calendar",
|
|
title: "Calendar",
|
|
drawerItemStyle: { display: "none" },
|
|
}}
|
|
/>
|
|
<Drawer.Screen
|
|
name="brain_dump"
|
|
options={{
|
|
drawerLabel: "Brain Dump",
|
|
title: "Brain Dump",
|
|
}}
|
|
/>
|
|
<Drawer.Screen
|
|
name="settings"
|
|
options={{
|
|
drawerLabel: "Settings",
|
|
title: "Settings",
|
|
}}
|
|
/>
|
|
<Drawer.Screen
|
|
name="grocery"
|
|
options={{
|
|
drawerLabel: "Grocery",
|
|
title: "Grocery",
|
|
}}
|
|
/>
|
|
<Drawer.Screen
|
|
name="reminders"
|
|
options={{
|
|
drawerLabel: "Reminders",
|
|
title: "Reminders",
|
|
}}
|
|
/>
|
|
<Drawer.Screen
|
|
name="todos"
|
|
options={{
|
|
drawerLabel: "To-Do",
|
|
title: "To-Do's",
|
|
}}
|
|
/>
|
|
</Drawer>
|
|
);
|
|
}
|
|
|
|
const styles = StyleSheet.create({
|
|
signOut: { fontFamily: "Poppins_500Medium", fontSize: 15 },
|
|
label: { fontFamily: "Poppins_400Medium", fontSize: 15 },
|
|
title: {
|
|
fontSize: 26.13,
|
|
fontFamily: 'Manrope_600SemiBold',
|
|
color: "#262627"
|
|
}
|
|
});
|