import AsyncStorage from '@react-native-async-storage/async-storage'; 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 CategoryItem from '../../../components/budget/categoryItem'; import useFetch from '../../../hooks/useFetch'; import { useThemeColor } from '../../../hooks/useThemeColor'; export default function Page() { const containerColor = useThemeColor("containerColor"); const [selectedPage, setSelectedPage] = useState("noPageLoaded"); useEffect(() => { AsyncStorage.getItem("currentBudgetPage").then((page) => { if(page === "expenses" || page === "savings") { setSelectedPage(page); } }).catch((error) => { console.log("Error fetching previous page from Async Storage:", error); }) }, []); 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()"); reFetch(); }, [selectedPage]); const handlePageSelection = (page: string) => { if(page !== selectedPage) { setSelectedPage(page); AsyncStorage.setItem("currentBudgetPage", page); } }; return ( {isLoading ? () : ( } keyExtractor={item => item.category_guid} ItemSeparatorComponent={() => { return (); }} /> )} ); } const styles = StyleSheet.create({ safeAreaViewStyle: { flex: 1, }, itemSeperatorStyle: { marginVertical: 5, }, });