{
+ const { theme } = useTheme();
+ const [show, setShow] = useState(false);
+ // const [selectedCategory, setSelectedCategory] = useState({
+ // id: null,
+ // title: "Category",
+ // icon: "?",
+ // description: "Tap to select",
+ // });
+ const handleClose = () => setShow(false);
+ const handleShow = () => setShow(true);
+ const [searchTerm, setSearchTerm] = useState("");
+ const handleSearch = useCallback((e) => {
+ setSearchTerm(e.target.value);
+ }, []);
+ let [expenseCategories, setExpenseCategories] = useState([]);
+ const [incomeCategories, setIncomeCategories] = useState([]);
+ useEffect(() => {
+ fetchCategories().then((data) => {
+ setExpenseCategories(
+ data.filter((category) => category.type === "expense"),
+ );
+ setIncomeCategories(
+ data.filter((category) => category.type === "income"),
+ );
+ console.log(data);
+ });
+ }, [show]);
+ const filteredExpenseCategories = useMemo(() => {
+ if (!searchTerm) return expenseCategories;
+ const term = searchTerm.toLowerCase();
+ return expenseCategories.filter((category) =>
+ category.title.toLowerCase().includes(term),
+ );
+ }, [expenseCategories, searchTerm]);
+ const filteredIncomeCategories = useMemo(() => {
+ if (!searchTerm) return incomeCategories;
+ const term = searchTerm.toLowerCase();
+ return incomeCategories.filter((category) =>
+ category.title.toLowerCase().includes(term),
+ );
+ }, [incomeCategories, searchTerm]);
+ const handleCategorySelect = (category) => {
+ const newSelectedCategory = {
+ id: category.id,
+ title: category.title,
+ icon: category.icon,
+ description:
+ category.type === "income" ? "Income category" : "Expense category",
+ };
+ setSelectedCategory(newSelectedCategory);
+ setShow(false);
+ };
+ return (
+ <>
+
+
+
+
+
+
+
Appointment
+
+
+
+
+
+ Reorder
+
+
+
+
+ ☌
+
+
+
+
+
+
+ {categoriestype === "income"
+ ? filteredIncomeCategories.map((category) => (
+ handleCategorySelect(category)}
+ />
+ ))
+ : filteredExpenseCategories.map((category) => (
+ handleCategorySelect(category)}
+ />
+ ))}
+
+
+ >
+ );
+};
+
+export default SelectCategoryModal;