diff --git a/app/(tabs)/(budget)/index.tsx b/app/(tabs)/(budget)/index.tsx index 0e42958..e2da8ed 100644 --- a/app/(tabs)/(budget)/index.tsx +++ b/app/(tabs)/(budget)/index.tsx @@ -1,10 +1,10 @@ import AsyncStorage from '@react-native-async-storage/async-storage'; import { router, useNavigation } from 'expo-router'; -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useMemo, 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, CategoryItem, LoadingSymbol, Plus } from '../../../components'; +import { BudgetHeader, CategoryItem, LoadingSymbol, Plus, TextInputBar } from '../../../components'; import useFetch from '../../../hooks/useFetch'; import { useTheme } from '../../contexts/ThemeContext'; import { useFocusEffect } from 'expo-router/src/useFocusEffect'; @@ -14,8 +14,12 @@ export default function Page() { const containerColor = colors.containerColor; const navigation = useNavigation(); const [selectedPage, setSelectedPage] = useState("noPageLoaded"); + const [searchString, setSearchString] = useState(""); + + useEffect(() => { + console.log("initial effect called") AsyncStorage.getItem("currentBudgetPage").then((page) => { if(page === "expenses" || page === "savings") { setSelectedPage(page); @@ -36,7 +40,6 @@ export default function Page() { reFetch(); }) return unsubscribe; - }, [navigation]) @@ -51,10 +54,17 @@ export default function Page() { router.push({pathname: "/category", params: {category_guid: item.category_guid, category_name: item.category_name}}) } + const filteredData = useMemo(() => { + return data.filter((item) => { + return item.category_name.toLowerCase().includes(searchString.toLowerCase()); + }) + }, [data, searchString]); + return ( + { router.push({pathname: '/addCategory'}); @@ -62,7 +72,7 @@ export default function Page() { {isLoading ? () : ( { }} /> - ); }