import { useState, useEffect } from 'react'; import useFetch from './useFetch'; import { CategoryType } from '../services/database'; export const useCategoryData = (CategoryType: string) => { const [data, setData] = useState({ total: 0, expenseTotal: 0 }); const [isLoading, setLoading] = useState(true); const categoryQuery = { sql: `SELECT SUM(allocated_amount) as total FROM category WHERE type = '${CategoryType.toString()}'`, args: [] }; const expenseQuery = { sql: `SELECT SUM(e.amount) as total FROM expense e JOIN category c ON e.category_guid = c.guid WHERE c.type = '${CategoryType.toString()}'`, args: [] }; const { data: categoryData, isLoading: categoryLoading } = useFetch(categoryQuery); const { data: expenseData, isLoading: expenseLoading } = useFetch(expenseQuery); useEffect(() => { if (categoryData && expenseData) { setData({ total: categoryData[0]?.total || 0, expenseTotal: expenseData[0]?.total || 0 }); } setLoading(categoryLoading || expenseLoading); }, [categoryData, categoryLoading, expenseData, expenseLoading]); return { categoryData, expenseData, isLoading, data }; };