@@ -7,47 +7,17 @@ import BrutalismButton from "./BrutalismButton";
77import useGetSiteSettings from "../models/useGetSiteSettings" ;
88import { Col , Row } from "react-bootstrap" ;
99import { FormattedMessage } from "react-intl" ;
10-
11- function setFilter ( newFilter , tempFormFilters , setTempFormFilters ) {
12- const matchingFilterIndex = tempFormFilters . findIndex (
13- ( f ) => f . filterId === newFilter . filterId ,
14- ) ;
15- if ( matchingFilterIndex === - 1 ) {
16- if ( newFilter ?. filterId ?. startsWith ( "microsatelliteMarkers.loci" ) ) {
17- tempFormFilters . splice (
18- 0 ,
19- tempFormFilters . length ,
20- newFilter ,
21- ...tempFormFilters ,
22- ) ;
23- } else {
24- setTempFormFilters ( [ ...tempFormFilters , newFilter ] ) ;
25- }
26- } else {
27- if (
28- newFilter ?. filterId ?. startsWith ( "microsatelliteMarkers.loci" ) ||
29- newFilter ?. filterId ?. startsWith ( "measurements" )
30- ) {
31- tempFormFilters [ matchingFilterIndex ] = newFilter ;
32- } else {
33- const newFormFilters = [ ...tempFormFilters ] ;
34- newFormFilters [ matchingFilterIndex ] = newFilter ;
35- setTempFormFilters ( newFormFilters ) ;
36- }
37- }
38- }
10+ import { useSearchParams } from "react-router-dom" ;
3911
4012export default function FilterPanel ( {
4113 schemas,
42- formFilters = [ ] ,
43- setFormFilters = ( ) => { } ,
4414 setFilterPanel,
4515 style = { } ,
4616 handleSearch = ( ) => { } ,
47- setSearchParams = ( ) => { } ,
48- setQueryID = "" ,
17+ refetch = ( ) => { } ,
18+ setTempFormFilters = ( ) => { } ,
19+ store,
4920} ) {
50- const [ tempFormFilters , setTempFormFilters ] = useState ( [ ] ) ;
5121 const { data } = useGetSiteSettings ( ) ;
5222 const safeSchemas = schemas || [ ] ;
5323 const [ clicked , setClicked ] = useState ( safeSchemas [ 0 ] ?. id ) ;
@@ -56,6 +26,7 @@ export default function FilterPanel({
5626 const schemaRefs = useRef ( [ ] ) ;
5727 const isScrollingByClick = useRef ( false ) ;
5828 const scrollTimeout = useRef ( null ) ;
29+ const [ , setSearchParams ] = useSearchParams ( ) ;
5930
6031 useEffect ( ( ) => {
6132 safeSchemas . forEach ( ( schema , index ) => {
@@ -97,28 +68,6 @@ export default function FilterPanel({
9768 } ) ;
9869 } ;
9970
100- useEffect ( ( ) => {
101- setTempFormFilters ( formFilters ) ;
102- } , [ formFilters ] ) ;
103-
104- useEffect ( ( ) => { } , [ tempFormFilters ] ) ;
105-
106- const handleFilterChange = ( filter = null , remove ) => {
107- if ( remove ) {
108- setTempFormFilters ( ( prevFilters ) => {
109- const newFilters = prevFilters . filter ( ( f ) => f . filterId !== remove ) ;
110- return newFilters ;
111- } ) ;
112- } else {
113- setFilter ( filter , tempFormFilters , setTempFormFilters ) ;
114- }
115- } ;
116-
117- const clearFilter = ( filterId ) => {
118- const newFormFilters = formFilters . filter ( ( f ) => f . filterId !== filterId ) ;
119- setTempFormFilters ( newFormFilters ) ;
120- } ;
121-
12271 return (
12372 < Container
12473 style = { {
@@ -142,7 +91,6 @@ export default function FilterPanel({
14291 backdropFilter : "blur(3px)" ,
14392 WebkitBackdropFilter : "blur(2px)" ,
14493 fontSize : "20px" ,
145- // flexWrap: "wrap",
14694 } }
14795 >
14896 { safeSchemas . map ( ( schema , index ) => {
@@ -195,25 +143,17 @@ export default function FilterPanel({
195143 backgroundColor = { theme . primaryColors . primary700 }
196144 borderColor = { theme . primaryColors . primary700 }
197145 onClick = { ( ) => {
198- const uniqueFilters = Array . from (
199- new Map (
200- tempFormFilters . map ( ( filter ) => [
201- filter . filterId ,
202- filter ,
203- ] ) ,
204- ) . values ( ) ,
146+ setTempFormFilters ( [ ...store . formFilters ] ) ;
147+ refetch ( ) . then ( ( { data } ) => {
148+ console . log ( "Refetched data:" , data ) ;
149+ } ) ;
150+ setSearchParams ( new URLSearchParams ( ) ) ;
151+ sessionStorage . setItem (
152+ "formData" ,
153+ JSON . stringify ( store . formFilters ) ,
205154 ) ;
206- setFormFilters ( uniqueFilters ) ;
207155 setFilterPanel ( false ) ;
208156 handleSearch ( ) ;
209- setQueryID ( null ) ;
210- setSearchParams ( ( prevSearchParams ) => {
211- const newSearchParams = new URLSearchParams (
212- prevSearchParams ,
213- ) ;
214- newSearchParams . delete ( "searchQueryId" ) ;
215- return newSearchParams ;
216- } ) ;
217157 } }
218158 noArrow = { true }
219159 style = { {
@@ -231,8 +171,7 @@ export default function FilterPanel({
231171 } }
232172 borderColor = { theme . primaryColors . primary700 }
233173 onClick = { ( ) => {
234- setFormFilters ( [ ] ) ;
235- setTempFormFilters ( [ ] ) ;
174+ store . resetFilters ( ) ;
236175 setSearchParams ( new URLSearchParams ( ) ) ;
237176 window . location . reload ( ) ;
238177 } }
@@ -271,13 +210,9 @@ export default function FilterPanel({
271210 < schema . FilterComponent
272211 key = { schema . id }
273212 labelId = { schema . labelId }
274- onChange = { handleFilterChange }
275- onClearFilter = { clearFilter }
276213 { ...schema . filterComponentProps }
277214 data = { data }
278- tempFormFilters = { tempFormFilters }
279- setFormFilters = { setFormFilters }
280- formFilters = { formFilters }
215+ store = { store }
281216 />
282217 ) : (
283218 < div >
0 commit comments