/* eslint-disable @typescript-eslint/no-explicit-any */ import Image from "next/image"; import Link from "next/link"; import { useCallback, useEffect, useState } from "react"; import { getInvoices, getReceipts } from "../../../Api/OrderApi"; import moment from "moment-timezone"; import { amountFormat, cryptoHandler, formatDate, stringFormatterQuoteStart, } from "../../../lib/Helper"; import NoData from "../../NoDataContainer/NoData"; import Modal from "../../Modal/Modal"; import AccountFilter from "../../Modal/Filters/AccountFilter"; interface Invoice { invoice_number: string; status: string; total_orders: number; period_start: string; period_end: string; invoice_date: string; total_amount: number; } interface Receipt { receipt_number: string; customer_name: string; payment_method: string; amount: number; payment_date: string; notes: string; } export default function NotificationsIndex() { const [activeTab, setActiveTab] = useState("invoices"); const [invoices, setInvoices] = useState([]); const [receipts, setReceipts] = useState([]); const [loading, setLoading] = useState(false); const [filterModal, setFilterModal] = useState(false); const [filters, setFilters] = useState({ dateRange: { start: "", end: "", }, status: "", amountRange: { min: 0, max: 0, }, }); const fetchInvoices = useCallback(async () => { try { setLoading(true); // Prepare filter parameters for API const params: any = { start_date: filters.dateRange.start || undefined, end_date: filters.dateRange.end || undefined, status: filters.status || undefined, min_amount: filters.amountRange.min > 0 ? filters.amountRange.min : undefined, max_amount: filters.amountRange.max > 0 ? filters.amountRange.max : undefined, }; const data = await getInvoices(params); setInvoices(data); } catch (error) { console.error("Error fetching invoices:", error); } finally { setLoading(false); } }, [filters]); const fetchReceipts = useCallback(async () => { try { setLoading(true); // Prepare filter parameters for API const params: any = { start_date: filters.dateRange.start || undefined, end_date: filters.dateRange.end || undefined, min_amount: filters.amountRange.min > 0 ? filters.amountRange.min : undefined, max_amount: filters.amountRange.max > 0 ? filters.amountRange.max : undefined, }; const data = await getReceipts(params); setReceipts(data); } catch (error) { console.error("Error fetching receipts:", error); } finally { setLoading(false); } }, [filters]); useEffect(() => { if (activeTab === "invoices") { fetchInvoices(); } else { fetchReceipts(); } }, [activeTab, fetchInvoices, fetchReceipts]); const toggleFilter = () => setFilterModal(!filterModal); const onSaveFilter = (filter: any) => { setFilters(filter); toggleFilter(); }; return ( <>
My Accounts
INV-000066 | 
999.000 | 
 |  Clear All
{loading ? (
) : (
{activeTab === "invoices" ? ( invoices?.length > 0 ? ( invoices.map((invoice: any, index) => (
{invoice.invoiceNumber}
{invoice.isPaid ? "Paid" : "Un Paid"}
{/* { invoice?.order ?.destinationCustomerName } */} BHD {invoice.totalAmount}
{/* Calendar Icon */} {/* Due Date:{" "} */} {moment(invoice.dueDate).format( "MMM DD, YYYY" )}  to  {moment(invoice.dueDate).format( "MMM DD, YYYY" )}