import React, { createContext, useContext, ReactNode } from 'react'; import { useBudgetSettings, useUpdateBudgetSettings } from '@/hooks/useBudget'; import { BudgetSettings } from '@/types/budget'; interface BudgetContextType { settings: BudgetSettings | undefined; isLoading: boolean; updateSettings: (updates: Partial) => void; formatCurrency: (amount: number) => string; } const BudgetContext = createContext(undefined); export function BudgetProvider({ children }: { children: ReactNode }) { const { data: settings, isLoading } = useBudgetSettings(); const updateSettingsMutation = useUpdateBudgetSettings(); const updateSettings = (updates: Partial) => { updateSettingsMutation.mutate(updates); }; const formatCurrency = (amount: number): string => { const currency = settings?.currency || 'USD'; return new Intl.NumberFormat('en-US', { style: 'currency', currency, minimumFractionDigits: 0, maximumFractionDigits: 2, }).format(amount); }; return ( {children} ); } export function useBudgetContext() { const context = useContext(BudgetContext); if (!context) { throw new Error('useBudgetContext must be used within a BudgetProvider'); } return context; }