Correction in logic for ExpenseStatus to Expense.

This commit is contained in:
Kartik Sharma 2025-11-08 12:18:20 +05:30
parent 8e38f52e72
commit e1455c9ef8
3 changed files with 118 additions and 106 deletions

View File

@ -1,9 +1,15 @@
import React, { useMemo } from "react";
const ExpenseFilterChips = ({ filters, filterData, removeFilterChip }) => {
// Build chips from filters
const filterChips = useMemo(() => {
if (!filterData?.projects?.length) return [];
const chips = [];
const projectExists = filters.projectIds?.every((pid) =>
filterData.projects.some((p) => p.id === pid)
);
if (!projectExists) return [];
const buildGroup = (ids, list, label, key) => {
if (!ids?.length) return;
@ -40,19 +46,16 @@ const ExpenseFilterChips = ({ filters, filterData, removeFilterChip }) => {
if (!filterChips.length) return null;
return (
<div className="row">
<div className="row">
<div className="col-12">
<div className="d-flex flex-wrap align-items-start gap-1 text-start">
{filterChips.map((chip) => (
<div
key={chip.key}
className="d-flex align-items-center flex-wrap px-2 py-1 "
className="d-flex align-items-center flex-wrap px-2 py-1"
style={{ fontSize: "0.9rem", maxWidth: "100%" }}
>
{/* Chip Label */}
<span className="fw-semibold me-2">{chip.label}:</span>
{/* Chip Items */}
<div className="d-flex flex-wrap align-items-center gap-1">
{chip.items.map((item) => (
<span
@ -77,13 +80,11 @@ const ExpenseFilterChips = ({ filters, filterData, removeFilterChip }) => {
))}
</div>
</div>
</div>
</div>
);
};
export default ExpenseFilterChips;

View File

@ -121,10 +121,19 @@ const ExpenseFilterPanel = forwardRef(({ onApply, handleGroupBy, setFilterdata }
useEffect(() => {
if (!status || !data) return;
const projectExists = selectedProjectId
? data?.projects?.some((p) => p.id === selectedProjectId)
: false;
if (!projectExists) {
console.warn("Project not found, skipping ExpenseStatus filter.");
return; // stop processing
}
if (status !== appliedStatusId) {
const filterWithStatus = {
...dynamicDefaultFilter,
projectIds: selectedProjectId ? [selectedProjectId] : dynamicDefaultFilter.projectIds || [],
projectIds: [selectedProjectId],
startDate: dynamicDefaultFilter.startDate
? moment.utc(dynamicDefaultFilter.startDate, "DD-MM-YYYY").toISOString()
: undefined,
@ -137,7 +146,7 @@ const ExpenseFilterPanel = forwardRef(({ onApply, handleGroupBy, setFilterdata }
handleGroupBy(selectedGroup.id);
setAppliedStatusId(status);
}
}, [
}, [
status,
data,
dynamicDefaultFilter,
@ -146,7 +155,9 @@ const ExpenseFilterPanel = forwardRef(({ onApply, handleGroupBy, setFilterdata }
selectedGroup.id,
appliedStatusId,
selectedProjectId,
]);
]);
if (isLoading || isFetching) return <ExpenseFilterSkeleton />;
if (isError && isFetched)

View File

@ -98,9 +98,9 @@ const router = createBrowserRouter(
{ path: "/activities/task", element: <TaskPlannng /> },
{ path: "/activities/reports", element: <Reports /> },
{ path: "/gallary", element: <ComingSoonPage /> },
{ path: "/expenses", element: <ExpensePage /> },
{ path: "/expenses/:status?/:project?", element: <ExpensePage /> },
{ path: "/collection", element: <CollectionPage /> },
{ path: "/expenses", element: <ExpensePage /> },
{ path: "/payment-request", element: <PaymentRequestPage /> },
{ path: "/advance-payment", element: <AdvancePaymentPage /> },
{ path: "/recurring-payment", element: <RecurringExpensePage /> },