@@ -52,23 +52,31 @@ const useUrlFilters = <T = string, K = unknown>({
52
52
const isAlreadyReadFromLocalStorage = useRef < boolean > ( false )
53
53
54
54
const getSearchParams = ( ) => {
55
- if ( ! isAlreadyReadFromLocalStorage . current && ! location . search && localStorageKey ) {
56
- isAlreadyReadFromLocalStorage . current = true
57
- const localStorageValue = localStorage . getItem ( localStorageKey )
58
- if ( localStorageValue ) {
59
- try {
60
- const localSearchString = getUrlWithSearchParams ( '' , JSON . parse ( localStorageValue ) )
61
- const localSearchParams = new URLSearchParams ( localSearchString . split ( '?' ) [ 1 ] ?? '' )
62
-
63
- history . replace ( { search : localSearchParams . toString ( ) } )
64
- return localSearchParams
65
- } catch {
66
- localStorage . removeItem ( localStorageKey )
55
+ const locationSearchParams = new URLSearchParams ( location . search )
56
+ if ( ! isAlreadyReadFromLocalStorage . current && localStorageKey ) {
57
+ if ( ! location . search ) {
58
+ isAlreadyReadFromLocalStorage . current = true
59
+ const localStorageValue = localStorage . getItem ( localStorageKey )
60
+ if ( localStorageValue ) {
61
+ try {
62
+ const localSearchString = getUrlWithSearchParams ( '' , JSON . parse ( localStorageValue ) )
63
+ const localSearchParams = new URLSearchParams ( localSearchString . split ( '?' ) [ 1 ] ?? '' )
64
+
65
+ history . replace ( { search : localSearchParams . toString ( ) } )
66
+ return localSearchParams
67
+ } catch {
68
+ localStorage . removeItem ( localStorageKey )
69
+ }
67
70
}
71
+ } else {
72
+ setItemInLocalStorageIfKeyExists (
73
+ localStorageKey ,
74
+ JSON . stringify ( parseSearchParams ( locationSearchParams ) ) ,
75
+ )
68
76
}
69
77
}
70
78
71
- return new URLSearchParams ( location . search )
79
+ return locationSearchParams
72
80
}
73
81
74
82
const searchParams = getSearchParams ( )
0 commit comments