From 6ee1c01d6ad64ee40a9a7db5c2a010658370f534 Mon Sep 17 00:00:00 2001 From: thschleicher Date: Tue, 2 Jan 2024 10:14:36 +0100 Subject: [PATCH] implemented plus button on budget screen and routing for the plus button --- app/(tabs)/_layout.tsx | 3 ++- app/(tabs)/budget/_layout.tsx | 14 ++++++++++++++ app/(tabs)/budget/addCategory.tsx | 8 ++++++++ app/(tabs)/budget/index.tsx | 21 ++++++++++++++++++--- components/budget/categoryItem.tsx | 13 ++----------- hooks/useThemeColor.ts | 2 +- 6 files changed, 45 insertions(+), 16 deletions(-) create mode 100644 app/(tabs)/budget/_layout.tsx create mode 100644 app/(tabs)/budget/addCategory.tsx diff --git a/app/(tabs)/_layout.tsx b/app/(tabs)/_layout.tsx index 6dc7691..4eb7245 100644 --- a/app/(tabs)/_layout.tsx +++ b/app/(tabs)/_layout.tsx @@ -34,12 +34,13 @@ export default function Layout() { return ( - ( ), unmountOnBlur: true, + href: "(tabs)/budget" } }/> + + + + ); +} \ No newline at end of file diff --git a/app/(tabs)/budget/addCategory.tsx b/app/(tabs)/budget/addCategory.tsx new file mode 100644 index 0000000..e8edbbc --- /dev/null +++ b/app/(tabs)/budget/addCategory.tsx @@ -0,0 +1,8 @@ + +const addCategory = () => { + return ( + <> + ); +} + +export default addCategory; \ No newline at end of file diff --git a/app/(tabs)/budget/index.tsx b/app/(tabs)/budget/index.tsx index acaa212..8e53cc9 100644 --- a/app/(tabs)/budget/index.tsx +++ b/app/(tabs)/budget/index.tsx @@ -1,9 +1,10 @@ import AsyncStorage from '@react-native-async-storage/async-storage'; +import { router } from 'expo-router'; import { useEffect, useState } from 'react'; import { StyleSheet, View } from 'react-native'; import { FlatList } from 'react-native-gesture-handler'; import { SafeAreaView } from 'react-native-safe-area-context'; -import { BudgetHeader, LoadingSymbol } from '../../../components'; +import { BudgetHeader, LoadingSymbol, Plus } from '../../../components'; import CategoryItem from '../../../components/budget/categoryItem'; import useFetch from '../../../hooks/useFetch'; import { useThemeColor } from '../../../hooks/useThemeColor'; @@ -26,7 +27,7 @@ export default function Page() { const {data, isLoading, reFetch} = useFetch({sql: "SELECT guid as category_guid, name as category_name, color as category_color FROM category WHERE type = ?", args: selectedPage === "expenses" ? ["expense"] : selectedPage === "savings" ? ["saving"] : []}); useEffect(() => { - console.log("reFetch()"); + console.log("reFetch()"); //REFETCH LOG reFetch(); }, [selectedPage]); @@ -40,10 +41,15 @@ export default function Page() { return ( + + { + router.push("./(tabs)/budget/addCategory") + }}/> + {isLoading ? () : ( } + renderItem = {({item}) => } keyExtractor={item => item.category_guid} ItemSeparatorComponent={() => { return (); @@ -54,6 +60,15 @@ export default function Page() { ); } +const calculateSumOfCategory = (guid: string, data: {[column: string]: any;}[]): number => { + + + + + + return 10; +} + const styles = StyleSheet.create({ safeAreaViewStyle: { flex: 1, diff --git a/components/budget/categoryItem.tsx b/components/budget/categoryItem.tsx index 55804ae..4d1d9fb 100644 --- a/components/budget/categoryItem.tsx +++ b/components/budget/categoryItem.tsx @@ -6,6 +6,7 @@ export type CategoryItemProps = { category: string, color: ColorValue, allocated_ammount: number, + total_expenses: number, category_guid: string, } @@ -13,7 +14,7 @@ const CategoryItem = (properties: CategoryItemProps) => { const { colors } = useTheme(); - const subText = `${calculateSumOfExpenses(properties.category_guid)} / ${properties.allocated_ammount} €`; + const subText = `${properties.total_expenses} / ${properties.allocated_ammount} €`; return ( @@ -53,13 +54,3 @@ const styles = StyleSheet.create({ fontSize: 17.5, } }) - -const calculateSumOfExpenses = (category_guid: string) => { - // const { data } = useFetch({sql: "SELECT amount FROM expense WHERE category_guid = ?", args: [category_guid]}); - - // let sum: number = 0; - // console.log(data); - - console.log("render"); - return 0; -} diff --git a/hooks/useThemeColor.ts b/hooks/useThemeColor.ts index c679987..0a6143c 100644 --- a/hooks/useThemeColor.ts +++ b/hooks/useThemeColor.ts @@ -7,7 +7,7 @@ import colors from "../constants/colors"; * @returns */ export function useThemeColor(colorName: keyof typeof colors.light & keyof typeof colors.dark): string { - console.warn("useThemeColor is depreciated. Use useTheme().colors instead") + console.log("useThemeColor is depreciated. Use useTheme().colors instead") const theme = useColorScheme() ?? "light"; return colors[theme][colorName]; }