@@ -4,10 +4,10 @@ import { useEffect, useState } from "react";
44import dayjs , { Dayjs } from "dayjs" ;
55
66import { DateRangePicker } from "components/molecules/DateRangePicker" ;
7- import { SearchBar } from "components/molecules/SearchBar" ;
8- import { useGetAllTags } from "API/graphql/queries/getAllTags" ;
97import { ExperimentFiltersType , TagType } from "types/globalTypes" ;
8+ import { useGetAllTags } from "API/graphql/queries/getAllTags" ;
109import { FilterTags } from "components/molecules/FilterTags" ;
10+ import { SearchBar } from "components/molecules/SearchBar" ;
1111
1212const GridContainer = styled ( Grid ) ( ( { theme } ) => ( {
1313 [ theme . breakpoints . down ( "lg" ) ] : {
@@ -18,9 +18,10 @@ const GridContainer = styled(Grid)(({ theme }) => ({
1818interface FilterExperimentsProps {
1919 filters ?: ExperimentFiltersType ;
2020 setFilters ?: ( filters : ExperimentFiltersType ) => void ;
21+ handleResetPagination ?: ( ) => void ;
2122}
2223
23- function FilterExperiments ( { filters, setFilters } : FilterExperimentsProps ) {
24+ function FilterExperiments ( { filters, setFilters, handleResetPagination } : FilterExperimentsProps ) {
2425 const [ searchParams , setSearchParams ] = useSearchParams ( ) ;
2526 const [ selectedTags , setSelectedTags ] = useState < TagType [ ] > ( filters ?. tags ?? [ ] ) ;
2627 const [ searchString , setSearchString ] = useState < string > ( filters ?. title ?? "" ) ;
@@ -46,49 +47,53 @@ function FilterExperiments({ filters, setFilters }: FilterExperimentsProps) {
4647 } , [ selectedTags , searchString , startDate , endDate ] ) ;
4748
4849 const handleTagUpdate = ( value : TagType [ ] ) => {
50+ if ( handleResetPagination ) handleResetPagination ( )
4951 const newQueryParameters : URLSearchParams = new URLSearchParams ( searchParams ) ;
5052 if ( value . length === 0 ) {
5153 newQueryParameters . delete ( 'tags' )
5254 } else {
5355 newQueryParameters . set ( 'tags' , JSON . stringify ( value ) )
5456 }
55- setSearchParams ( newQueryParameters )
57+ setSearchParams ( newQueryParameters , { replace : true } )
5658 setSelectedTags ( value ) ;
5759 } ;
5860
5961 const handleSearchStringUpdate = ( value : string ) => {
62+ if ( handleResetPagination ) handleResetPagination ( )
6063 const newQueryParameters : URLSearchParams = new URLSearchParams ( searchParams ) ;
6164 if ( ! value ) {
6265 newQueryParameters . delete ( 'title' )
6366 } else {
6467 newQueryParameters . set ( 'title' , value )
6568 }
66- setSearchParams ( newQueryParameters )
69+ setSearchParams ( newQueryParameters , { replace : true } )
6770 setSearchString ( value ) ;
6871 } ;
6972
7073 const handleStartDateUpdate = ( value : Dayjs | null ) => {
74+ if ( handleResetPagination ) handleResetPagination ( )
7175 if ( value ?. isValid ( ) || value === null ) {
7276 const newQueryParameters : URLSearchParams = new URLSearchParams ( searchParams ) ;
7377 if ( ! value ) {
7478 newQueryParameters . delete ( 'startDate' )
7579 } else {
7680 newQueryParameters . set ( 'startDate' , ( value ?. toISOString ( ) ) ?? '' )
7781 }
78- setSearchParams ( newQueryParameters )
82+ setSearchParams ( newQueryParameters , { replace : true } )
7983 setStartDate ( value ) ;
8084 }
8185 } ;
8286
8387 const handleEndDateUpdate = ( value : Dayjs | null ) => {
88+ if ( handleResetPagination ) handleResetPagination ( )
8489 if ( value ?. isValid ( ) || value === null ) {
8590 const newQueryParameters : URLSearchParams = new URLSearchParams ( searchParams ) ;
8691 if ( ! value ) {
8792 newQueryParameters . delete ( 'endDate' )
8893 } else {
8994 newQueryParameters . set ( 'endDate' , ( value ?. toISOString ( ) ) ?? '' )
9095 }
91- setSearchParams ( newQueryParameters )
96+ setSearchParams ( newQueryParameters , { replace : true } )
9297 setEndDate ( value ) ;
9398 }
9499 } ;
0 commit comments