From 1872dff00d99c1731bec1363494fa23340b7c71e Mon Sep 17 00:00:00 2001 From: Aaryan Khandelwal <65252264+aaryan610@users.noreply.github.com> Date: Fri, 8 Sep 2023 13:28:32 +0530 Subject: [PATCH] fix: custom date filter not working on my issues and profile issues (#2123) --- .../core/filters/date-filter-modal.tsx | 45 +++++++++---------- .../my-issues/my-issues-select-filters.tsx | 4 +- web/components/views/select-filters.tsx | 4 +- 3 files changed, 26 insertions(+), 27 deletions(-) diff --git a/web/components/core/filters/date-filter-modal.tsx b/web/components/core/filters/date-filter-modal.tsx index abc2cc7c4..eb285fd6f 100644 --- a/web/components/core/filters/date-filter-modal.tsx +++ b/web/components/core/filters/date-filter-modal.tsx @@ -1,15 +1,11 @@ import { Fragment } from "react"; -import { useRouter } from "next/router"; - // react-hook-form import { Controller, useForm } from "react-hook-form"; // react-datepicker import DatePicker from "react-datepicker"; // headless ui import { Dialog, Transition } from "@headlessui/react"; -// hooks -import useIssuesView from "hooks/use-issues-view"; // components import { DateFilterSelect } from "./date-filter-select"; // ui @@ -23,8 +19,10 @@ import { IIssueFilterOptions } from "types"; type Props = { title: string; field: keyof IIssueFilterOptions; - isOpen: boolean; + filters: IIssueFilterOptions; handleClose: () => void; + isOpen: boolean; + onSelect: (option: any) => void; }; type TFormValues = { @@ -39,12 +37,14 @@ const defaultValues: TFormValues = { date2: new Date(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate()), }; -export const DateFilterModal: React.FC = ({ title, field, isOpen, handleClose }) => { - const { filters, setFilters } = useIssuesView(); - - const router = useRouter(); - const { viewId } = router.query; - +export const DateFilterModal: React.FC = ({ + title, + field, + filters, + handleClose, + isOpen, + onSelect, +}) => { const { handleSubmit, watch, control } = useForm({ defaultValues, }); @@ -53,10 +53,10 @@ export const DateFilterModal: React.FC = ({ title, field, isOpen, handleC const { filterType, date1, date2 } = formData; if (filterType === "range") { - setFilters( - { [field]: [`${renderDateFormat(date1)};after`, `${renderDateFormat(date2)};before`] }, - !Boolean(viewId) - ); + onSelect({ + key: field, + value: [`${renderDateFormat(date1)};after`, `${renderDateFormat(date2)};before`], + }); } else { const filteredArray = (filters?.[field] as string[])?.filter((item) => { if (item?.includes(filterType)) return false; @@ -66,17 +66,12 @@ export const DateFilterModal: React.FC = ({ title, field, isOpen, handleC const filterOne = filteredArray && filteredArray?.length > 0 ? filteredArray[0] : null; if (filterOne) - setFilters( - { [field]: [filterOne, `${renderDateFormat(date1)};${filterType}`] }, - !Boolean(viewId) - ); + onSelect({ key: field, value: [filterOne, `${renderDateFormat(date1)};${filterType}`] }); else - setFilters( - { - [field]: [`${renderDateFormat(date1)};${filterType}`], - }, - !Boolean(viewId) - ); + onSelect({ + key: field, + value: [`${renderDateFormat(date1)};${filterType}`], + }); } handleClose(); }; diff --git a/web/components/issues/my-issues/my-issues-select-filters.tsx b/web/components/issues/my-issues/my-issues-select-filters.tsx index 58cc63679..a453abb14 100644 --- a/web/components/issues/my-issues/my-issues-select-filters.tsx +++ b/web/components/issues/my-issues/my-issues-select-filters.tsx @@ -61,8 +61,10 @@ export const MyIssuesSelectFilters: React.FC = ({ setIsDateFilterModalOpen(false)} + isOpen={isDateFilterModalOpen} + onSelect={onSelect} /> )} = ({ setIsDateFilterModalOpen(false)} + isOpen={isDateFilterModalOpen} + onSelect={onSelect} /> )}