import { router, useLocalSearchParams } from "expo-router"; import { useState } from "react"; import { StyleSheet, Text, TextInput, View } from "react-native"; import { AutoDecimalInput, CustomColorPicker, NavigationButton, TypeSelectorSwitch, Plus } from "../../../components"; import useFetch from "../../../hooks/useFetch"; import { deleteCategory, deleteExpense, updateCategory } from "../../../services/database"; import { useTheme } from "../../contexts/ThemeContext"; import { SafeAreaView } from 'react-native-safe-area-context'; const addCategory = () => { const {colors} = useTheme(); const {category_guid, category_amount, category_color, category_name, category_type} = useLocalSearchParams(); const [categoryName, setCategoryName] = useState(category_name.toString()); const [categoryColor, setCategoryColor] = useState(category_color.toString()); const [selectedType, setSelectedType] = useState(category_type.toString()); const [amount, setAmount] = useState(Number.parseFloat(category_amount.toString())); const {data} = useFetch({sql: "SELECT * FROM expense WHERE category_guid = ?", args: [category_guid.toString()]}); return ( Edit Category { setCategoryName(newName); }}/> { setAmount(!Number.isNaN(Number.parseFloat(value)) ? Number.parseFloat(value) : 0); }}/> { setSelectedType(type); }} /> { setCategoryColor(color); }}/> { for (let i = 0; i < data.length;) { deleteExpense(data[i].guid).then(() => { i++ }); } deleteCategory(category_guid.toString()).then(() => { router.push("/(tabs)/(budget)"); }); }}/> { router.back(); }}/> { updateCategory(category_guid.toString(), categoryName, categoryColor, selectedType, amount).then(() => { router.back(); }); }}/> ); } export default addCategory; const styles = StyleSheet.create({ deleteButtonView: { }, containerStyle: { flex: 1, margin: 10, borderRadius: 10, }, safeAreaViewStyle: { flex: 1, flexDirection: "column" }, headingTextStyle: { fontSize: 40, fontWeight: "bold", alignSelf: "center", marginVertical: 10, }, navigationButtonViewStyle: { flexDirection: "row", justifyContent: "center", marginBottom: 10, }, textInputViewStyle: { borderRadius: 10, paddingVertical: 10, margin: 10, }, textInputStyle: { paddingHorizontal: 10, fontSize: 25, }, budgetInput: { marginBottom: 10, marginHorizontal: 10, } });