1- import { useCallback , useState } from 'react'
1+ import { useCallback , useMemo , useState } from 'react'
22import { useRouter } from 'next/router'
33import get from 'lodash/get'
44import debounce from 'lodash/debounce'
@@ -8,13 +8,13 @@ import { updateQuery } from '@condo/domains/common/utils/filters.utils'
88
99export const useSearch = < F > ( loading : boolean ) : [ string , ( search : string ) => void ] => {
1010 const router = useRouter ( )
11- const filtersFromQuery = getFiltersFromQuery < F > ( router . query )
11+ const filtersFromQuery = useMemo ( ( ) => getFiltersFromQuery < F > ( router . query ) , [ router . query ] )
1212 const searchValueFromQuery = get ( filtersFromQuery , 'search' )
1313 const [ search , setSearch ] = useState ( searchValueFromQuery )
1414
15- const searchChange = useCallback ( debounce ( async ( searchString ) => {
15+ const searchChange = useMemo ( ( ) => debounce ( async ( searchString ) => {
1616 await updateQuery ( router , { ...filtersFromQuery , search : searchString } )
17- } , 400 ) , [ loading , filtersFromQuery ] )
17+ } , 400 ) , [ router , filtersFromQuery ] )
1818
1919 const handleSearchChange = ( value : string ) : void => {
2020 setSearch ( value )
0 commit comments