import React, { createContext, useState, useEffect, useContext } from "react"; import Breadcrumb from "../../components/common/Breadcrumb"; import GlobalModel from "../../components/common/GlobalModel"; import { useFab } from "../../Context/FabContext"; import ManageRecurringExpense from "../../components/RecurringExpense/ManageRecurringExpense"; import RecurringExpenseList from "../../components/RecurringExpense/RecurringExpenseList"; import { PAYEE_RECURRING_EXPENSE } from "../../utils/constants"; import { SearchRecurringExpenseSchema } from "../../components/RecurringExpense/RecurringExpenseSchema"; import ViewRecurringExpense from "../../components/RecurringExpense/ViewRecurringExpense"; export const RecurringExpenseContext = createContext(); export const useRecurringExpenseContext = () => { const context = useContext(RecurringExpenseContext); if (!context) { throw new Error("useRecurringExpenseContext must be used within an ExpenseProvider"); } return context; }; const RecurringExpensePage = () => { const [ManageRequest, setManageRequest] = useState({ IsOpen: null, RecurringId: null, }); const [viewRecurring, setViewRecurring] = useState({ view: false, recurringId: null }) const [selectedStatuses, setSelectedStatuses] = useState( PAYEE_RECURRING_EXPENSE.map((s) => s.id) ); const [search, setSearch] = useState(""); const contextValue = { setManageRequest, setViewRecurring }; const handleStatusChange = (id) => { setSelectedStatuses((prev) => prev.includes(id) ? prev.filter((s) => s !== id) : [...prev, id] ); }; return (
{/* Breadcrumb */} {/* Top Bar */}
{/* Left Column: Search + Filter */}
setSearch(e.target.value)} />
    {PAYEE_RECURRING_EXPENSE.map(({ id, label }) => (
  • handleStatusChange(id)} />
  • ))}
{/* Right Column: Add Button */}
{ManageRequest.IsOpen && ( setManageRequest({ IsOpen: null, expenseId: null }) } > setManageRequest({ IsOpen: null, RecurringId: null }) } requestToEdit={ManageRequest.RecurringId} /> )} {viewRecurring.view && ( setViewRecurring({ IsOpen: null, recurringId: null }) } > {/* setViewRecurring({ IsOpen: null, recurringId: null }) } RecurringId={viewRecurring.recurringId} /> */} )}
); }; export default RecurringExpensePage;