Issues_Aug_2W #371
@ -1,5 +1,5 @@
|
|||||||
import { zodResolver } from "@hookform/resolvers/zod";
|
import { zodResolver } from "@hookform/resolvers/zod";
|
||||||
import React, { useState,useCallback } from "react";
|
import React, { useState, useCallback, useEffect } from "react";
|
||||||
import { FormProvider, useForm, useFormContext } from "react-hook-form";
|
import { FormProvider, useForm, useFormContext } from "react-hook-form";
|
||||||
import { defaultFilterValues, filterSchema } from "./TenantSchema";
|
import { defaultFilterValues, filterSchema } from "./TenantSchema";
|
||||||
import Label from "../common/Label";
|
import Label from "../common/Label";
|
||||||
@ -8,15 +8,16 @@ import { useIndustries } from "../../hooks/useTenant";
|
|||||||
import { reference, TENANT_STATUS } from "../../utils/constants";
|
import { reference, TENANT_STATUS } from "../../utils/constants";
|
||||||
import { DateRangePicker1 } from "../common/DateRangePicker";
|
import { DateRangePicker1 } from "../common/DateRangePicker";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
|
import { useLocation } from "react-router-dom";
|
||||||
|
|
||||||
|
const TenantFilterPanel = ({ onApply }) => {
|
||||||
|
const [resetKey, setResetKey] = useState(0);
|
||||||
|
|
||||||
const TenantFilterPanel = ({onApply}) => {
|
|
||||||
const [resetKey, setResetKey] = useState(0);
|
|
||||||
|
|
||||||
const methods = useForm({
|
const methods = useForm({
|
||||||
resolver: zodResolver(filterSchema),
|
resolver: zodResolver(filterSchema),
|
||||||
defaultValues: defaultFilterValues,
|
defaultValues: defaultFilterValues,
|
||||||
});
|
});
|
||||||
|
|
||||||
const { handleSubmit, reset } = methods;
|
const { handleSubmit, reset } = methods;
|
||||||
const { data: industries = [], isLoading } = useIndustries();
|
const { data: industries = [], isLoading } = useIndustries();
|
||||||
|
|
||||||
@ -36,6 +37,13 @@ const [resetKey, setResetKey] = useState(0);
|
|||||||
[onApply, handleClosePanel]
|
[onApply, handleClosePanel]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// ✅ Close popup when navigating to another component
|
||||||
|
const location = useLocation();
|
||||||
|
useEffect(() => {
|
||||||
|
handleClosePanel();
|
||||||
|
}, [location]);
|
||||||
|
|
||||||
const onClear = useCallback(() => {
|
const onClear = useCallback(() => {
|
||||||
reset(defaultFilterValues);
|
reset(defaultFilterValues);
|
||||||
setResetKey((prev) => prev + 1); // triggers DateRangePicker reset
|
setResetKey((prev) => prev + 1); // triggers DateRangePicker reset
|
||||||
@ -48,44 +56,44 @@ const [resetKey, setResetKey] = useState(0);
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<FormProvider {...methods}>
|
<FormProvider {...methods}>
|
||||||
<form onSubmit={handleSubmit(onSubmit)}>
|
<form onSubmit={handleSubmit(onSubmit)}>
|
||||||
<div className="text-start mb-1">
|
<div className="text-start mb-1">
|
||||||
<div className="text-start my-2">
|
<div className="text-start my-2">
|
||||||
<DateRangePicker1
|
<DateRangePicker1
|
||||||
placeholder="DD-MM-YYYY To DD-MM-YYYY"
|
placeholder="DD-MM-YYYY To DD-MM-YYYY"
|
||||||
startField="startDate"
|
startField="startDate"
|
||||||
endField="endDate"
|
endField="endDate"
|
||||||
resetSignal={resetKey}
|
resetSignal={resetKey}
|
||||||
defaultRange={false}
|
defaultRange={false}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="text-strat mb-2">
|
<div className="text-strat mb-2">
|
||||||
<SelectMultiple
|
<SelectMultiple
|
||||||
name="industryIds"
|
name="industryIds"
|
||||||
label="Industries"
|
label="Industries"
|
||||||
options={industries}
|
options={industries}
|
||||||
labelKey="name"
|
labelKey="name"
|
||||||
valueKey="id"
|
valueKey="id"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="text-start mb-2">
|
<div className="text-start mb-2">
|
||||||
<SelectMultiple
|
<SelectMultiple
|
||||||
name="references"
|
name="references"
|
||||||
label="References"
|
label="References"
|
||||||
options={reference}
|
options={reference}
|
||||||
labelKey="name"
|
labelKey="name"
|
||||||
valueKey="val"
|
valueKey="val"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="text-start">
|
<div className="text-start">
|
||||||
<SelectMultiple
|
<SelectMultiple
|
||||||
name="tenantStatusIds"
|
name="tenantStatusIds"
|
||||||
label="Tenant Status"
|
label="Tenant Status"
|
||||||
options={TENANT_STATUS}
|
options={TENANT_STATUS}
|
||||||
labelKey="name"
|
labelKey="name"
|
||||||
valueKey="id"
|
valueKey="id"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
{/* <SelectMultiple
|
{/* <SelectMultiple
|
||||||
name="references"
|
name="references"
|
||||||
@ -100,7 +108,7 @@ const [resetKey, setResetKey] = useState(0);
|
|||||||
type="button"
|
type="button"
|
||||||
className="btn btn-secondary btn-xs"
|
className="btn btn-secondary btn-xs"
|
||||||
onClick={onClear}
|
onClick={onClear}
|
||||||
|
|
||||||
>
|
>
|
||||||
Clear
|
Clear
|
||||||
</button>
|
</button>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user