Correction in logic for ExpenseStatus to Expense.
This commit is contained in:
parent
8e38f52e72
commit
e1455c9ef8
@ -1,9 +1,15 @@
|
|||||||
import React, { useMemo } from "react";
|
import React, { useMemo } from "react";
|
||||||
|
|
||||||
const ExpenseFilterChips = ({ filters, filterData, removeFilterChip }) => {
|
const ExpenseFilterChips = ({ filters, filterData, removeFilterChip }) => {
|
||||||
// Build chips from filters
|
|
||||||
const filterChips = useMemo(() => {
|
const filterChips = useMemo(() => {
|
||||||
|
if (!filterData?.projects?.length) return [];
|
||||||
|
|
||||||
const chips = [];
|
const chips = [];
|
||||||
|
const projectExists = filters.projectIds?.every((pid) =>
|
||||||
|
filterData.projects.some((p) => p.id === pid)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!projectExists) return [];
|
||||||
|
|
||||||
const buildGroup = (ids, list, label, key) => {
|
const buildGroup = (ids, list, label, key) => {
|
||||||
if (!ids?.length) return;
|
if (!ids?.length) return;
|
||||||
@ -49,10 +55,7 @@ const ExpenseFilterChips = ({ filters, filterData, removeFilterChip }) => {
|
|||||||
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%" }}
|
style={{ fontSize: "0.9rem", maxWidth: "100%" }}
|
||||||
>
|
>
|
||||||
{/* Chip Label */}
|
|
||||||
<span className="fw-semibold me-2">{chip.label}:</span>
|
<span className="fw-semibold me-2">{chip.label}:</span>
|
||||||
|
|
||||||
{/* Chip Items */}
|
|
||||||
<div className="d-flex flex-wrap align-items-center gap-1">
|
<div className="d-flex flex-wrap align-items-center gap-1">
|
||||||
{chip.items.map((item) => (
|
{chip.items.map((item) => (
|
||||||
<span
|
<span
|
||||||
@ -78,12 +81,10 @@ const ExpenseFilterChips = ({ filters, filterData, removeFilterChip }) => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
export default ExpenseFilterChips;
|
export default ExpenseFilterChips;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -121,10 +121,19 @@ const ExpenseFilterPanel = forwardRef(({ onApply, handleGroupBy, setFilterdata }
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!status || !data) return;
|
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) {
|
if (status !== appliedStatusId) {
|
||||||
const filterWithStatus = {
|
const filterWithStatus = {
|
||||||
...dynamicDefaultFilter,
|
...dynamicDefaultFilter,
|
||||||
projectIds: selectedProjectId ? [selectedProjectId] : dynamicDefaultFilter.projectIds || [],
|
projectIds: [selectedProjectId],
|
||||||
startDate: dynamicDefaultFilter.startDate
|
startDate: dynamicDefaultFilter.startDate
|
||||||
? moment.utc(dynamicDefaultFilter.startDate, "DD-MM-YYYY").toISOString()
|
? moment.utc(dynamicDefaultFilter.startDate, "DD-MM-YYYY").toISOString()
|
||||||
: undefined,
|
: undefined,
|
||||||
@ -148,6 +157,8 @@ const ExpenseFilterPanel = forwardRef(({ onApply, handleGroupBy, setFilterdata }
|
|||||||
selectedProjectId,
|
selectedProjectId,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (isLoading || isFetching) return <ExpenseFilterSkeleton />;
|
if (isLoading || isFetching) return <ExpenseFilterSkeleton />;
|
||||||
if (isError && isFetched)
|
if (isError && isFetched)
|
||||||
return <div>Something went wrong Here- {error.message} </div>;
|
return <div>Something went wrong Here- {error.message} </div>;
|
||||||
|
|||||||
@ -98,9 +98,9 @@ const router = createBrowserRouter(
|
|||||||
{ path: "/activities/task", element: <TaskPlannng /> },
|
{ path: "/activities/task", element: <TaskPlannng /> },
|
||||||
{ path: "/activities/reports", element: <Reports /> },
|
{ path: "/activities/reports", element: <Reports /> },
|
||||||
{ path: "/gallary", element: <ComingSoonPage /> },
|
{ path: "/gallary", element: <ComingSoonPage /> },
|
||||||
|
{ path: "/expenses", element: <ExpensePage /> },
|
||||||
{ path: "/expenses/:status?/:project?", element: <ExpensePage /> },
|
{ path: "/expenses/:status?/:project?", element: <ExpensePage /> },
|
||||||
{ path: "/collection", element: <CollectionPage /> },
|
{ path: "/collection", element: <CollectionPage /> },
|
||||||
{ path: "/expenses", element: <ExpensePage /> },
|
|
||||||
{ path: "/payment-request", element: <PaymentRequestPage /> },
|
{ path: "/payment-request", element: <PaymentRequestPage /> },
|
||||||
{ path: "/advance-payment", element: <AdvancePaymentPage /> },
|
{ path: "/advance-payment", element: <AdvancePaymentPage /> },
|
||||||
{ path: "/recurring-payment", element: <RecurringExpensePage /> },
|
{ path: "/recurring-payment", element: <RecurringExpensePage /> },
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user