Changes when we select a Expense Status in ExpenseFilter Panel.

This commit is contained in:
Kartik Sharma 2025-10-15 12:18:27 +05:30
parent f61c7a4a35
commit d1af4f402d

View File

@ -1,4 +1,4 @@
import React, {forwardRef, useEffect,useImperativeHandle, useState, useMemo } from "react"; import React, { forwardRef, useEffect, useImperativeHandle, useState, useMemo } from "react";
import { FormProvider, useForm, Controller } from "react-hook-form"; import { FormProvider, useForm, Controller } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod"; import { zodResolver } from "@hookform/resolvers/zod";
import { defaultFilter, SearchSchema } from "./ExpenseSchema"; import { defaultFilter, SearchSchema } from "./ExpenseSchema";
@ -43,7 +43,7 @@ const ExpenseFilterPanel = forwardRef(({ onApply, handleGroupBy, setFilterdata }
return { return {
...defaultFilter, ...defaultFilter,
statusIds: status ? [status] : defaultFilter.statusIds || [], statusIds: status ? [status] : defaultFilter.statusIds || [],
projectIds: defaultFilter.projectIds || [], projectIds: selectedProjectId ? [selectedProjectId] : [],
createdByIds: defaultFilter.createdByIds || [], createdByIds: defaultFilter.createdByIds || [],
paidById: defaultFilter.paidById || [], paidById: defaultFilter.paidById || [],
ExpenseTypeIds: defaultFilter.ExpenseTypeIds || [], ExpenseTypeIds: defaultFilter.ExpenseTypeIds || [],
@ -51,7 +51,7 @@ const ExpenseFilterPanel = forwardRef(({ onApply, handleGroupBy, setFilterdata }
startDate: defaultFilter.startDate, startDate: defaultFilter.startDate,
endDate: defaultFilter.endDate, endDate: defaultFilter.endDate,
}; };
}, [status]); }, [status,selectedProjectId]);
const methods = useForm({ const methods = useForm({
resolver: zodResolver(SearchSchema), resolver: zodResolver(SearchSchema),
@ -77,7 +77,7 @@ const ExpenseFilterPanel = forwardRef(({ onApply, handleGroupBy, setFilterdata }
if (group) setSelectedGroup(group); if (group) setSelectedGroup(group);
}; };
useImperativeHandle(ref, () => ({ useImperativeHandle(ref, () => ({
resetFieldValue: (name, value) => { resetFieldValue: (name, value) => {
// Reset specific field // Reset specific field
if (value !== undefined) { if (value !== undefined) {
@ -124,10 +124,9 @@ const ExpenseFilterPanel = forwardRef(({ onApply, handleGroupBy, setFilterdata }
if (status !== appliedStatusId && data) { if (status !== appliedStatusId && data) {
const filterWithStatus = { const filterWithStatus = {
...dynamicDefaultFilter, ...dynamicDefaultFilter,
projectIds: selectedProjectId ? [selectedProjectId] : [], // include project ID
startDate: dynamicDefaultFilter.startDate startDate: dynamicDefaultFilter.startDate
? moment ? moment.utc(dynamicDefaultFilter.startDate, "DD-MM-YYYY").toISOString()
.utc(dynamicDefaultFilter.startDate, "DD-MM-YYYY")
.toISOString()
: undefined, : undefined,
endDate: dynamicDefaultFilter.endDate endDate: dynamicDefaultFilter.endDate
? moment.utc(dynamicDefaultFilter.endDate, "DD-MM-YYYY").toISOString() ? moment.utc(dynamicDefaultFilter.endDate, "DD-MM-YYYY").toISOString()
@ -147,14 +146,16 @@ const ExpenseFilterPanel = forwardRef(({ onApply, handleGroupBy, setFilterdata }
handleGroupBy, handleGroupBy,
selectedGroup.id, selectedGroup.id,
appliedStatusId, appliedStatusId,
selectedProjectId, // added dependency
]); ]);
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>;
return ( return (
<> <>
<FormProvider {...methods}> <FormProvider {...methods}>