import React, { useState } from "react"; import { useExpenseList } from "../../hooks/useExpense"; import Avatar from "../common/Avatar"; import { useExpenseContext } from "../../pages/Expense/ExpensePage"; import { formatDate, formatUTCToLocalTime } from "../../utils/dateUtils"; import Pagination from "../common/Pagination"; import { ITEMS_PER_PAGE } from "../../utils/constants"; import { AppColorconfig, getColorNameFromHex } from "../../utils/appUtils"; import { ExpenseTableSkeleton } from "./ExpenseSkeleton"; const ExpenseList = () => { const { setViewExpense,setManageExpenseModal } = useExpenseContext(); const [currentPage, setCurrentPage] = useState(1); const pageSize = 10; const filter = { projectIds: [], statusIds: [], createdByIds: [], paidById: [], startDate: null, endDate: null, }; const { data, isLoading, isError,isInitialLoading,error,isFetching } = useExpenseList(10, currentPage, filter); if (isInitialLoading ) return ; if (isError) return
{error}
; const items = data?.data ?? []; const totalPages = data?.totalPages ?? 1; const hasMore = currentPage < totalPages; const paginate = (page) => { if (page >= 1 && page <= totalPages) { setCurrentPage(page); } }; return (
{/* {isLoading && ( )} {!isInitialLoading && items.length === 0 && ( )} */} {!isInitialLoading && items.map((expense) => ( ))}
Date Time
Expense Type
Payment Mode
Paid By
Amount Status Action
Loading...
No expenses found.
{formatUTCToLocalTime(expense.transactionDate)}
{expense.expensesType?.name || "N/A"} {expense.paymentMode?.name || "N/A"}
{`${expense.paidBy?.firstName ?? ""} ${ expense.paidBy?.lastName ?? "" }`.trim() || "N/A"}
{expense.amount} {expense.status?.displayName || "Unknown"}
setViewExpense({ expenseId:expense.id, view: true }) } > setManageExpenseModal({IsOpen:true,expenseId:expense.id})} >
{!isInitialLoading && items.length > 0 && ( )}
); }; export default ExpenseList;