Commit a7ec5a64 authored by Jordan Frankfurt's avatar Jordan Frankfurt Committed by GitHub

feat(explore): add a simple search debounce (#4595)

add a simple search debounce
parent c619dcf6
import { Trans } from '@lingui/macro' import { Trans } from '@lingui/macro'
import searchIcon from 'assets/svg/search.svg' import searchIcon from 'assets/svg/search.svg'
import xIcon from 'assets/svg/x.svg' import xIcon from 'assets/svg/x.svg'
import { useAtom } from 'jotai' import useDebounce from 'hooks/useDebounce'
import { useUpdateAtom } from 'jotai/utils'
import { useEffect, useState } from 'react'
import styled from 'styled-components/macro' import styled from 'styled-components/macro'
import { MEDIUM_MEDIA_BREAKPOINT } from '../constants' import { MEDIUM_MEDIA_BREAKPOINT } from '../constants'
...@@ -56,7 +58,14 @@ const SearchInput = styled.input` ...@@ -56,7 +58,14 @@ const SearchInput = styled.input`
` `
export default function SearchBar() { export default function SearchBar() {
const [filterString, setFilterString] = useAtom(filterStringAtom) const [localFilterString, setLocalFilterString] = useState('')
const setFilterString = useUpdateAtom(filterStringAtom)
const debouncedLocalFilterString = useDebounce(localFilterString, 300)
useEffect(() => {
setFilterString(debouncedLocalFilterString)
}, [debouncedLocalFilterString, setFilterString])
return ( return (
<SearchBarContainer> <SearchBarContainer>
<Trans <Trans
...@@ -66,8 +75,8 @@ export default function SearchBar() { ...@@ -66,8 +75,8 @@ export default function SearchBar() {
placeholder={`${translation}`} placeholder={`${translation}`}
id="searchBar" id="searchBar"
autoComplete="off" autoComplete="off"
value={filterString} value={localFilterString}
onChange={({ target: { value } }) => setFilterString(value)} onChange={({ target: { value } }) => setLocalFilterString(value)}
/> />
)} )}
> >
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment