From 4a2b32494d73b04b2237d1663fa643bfd3c75403 Mon Sep 17 00:00:00 2001 From: alipov_d Date: Mon, 19 Jun 2023 17:59:43 +0200 Subject: [PATCH] fix: issue with a repeated search query --- src/components/Search.jsx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/components/Search.jsx b/src/components/Search.jsx index 5370ae97e..5c5bfa2df 100644 --- a/src/components/Search.jsx +++ b/src/components/Search.jsx @@ -1,5 +1,5 @@ import React, { - useCallback, useContext, useEffect, useState, + useCallback, useContext, useEffect, useRef, useState, } from 'react'; import camelCase from 'lodash/camelCase'; @@ -25,6 +25,7 @@ const Search = () => { const isPostSearch = ['posts', 'my-posts'].includes(page); const isTopicSearch = 'topics'.includes(page); const [searchValue, setSearchValue] = useState(''); + const previousSearchValueRef = useRef(''); let currentValue = ''; if (isPostSearch) { @@ -39,14 +40,15 @@ const Search = () => { dispatch(setSearchQuery('')); dispatch(setTopicFilter('')); dispatch(setUsernameSearch('')); - }, []); + previousSearchValueRef.current = ''; + }, [previousSearchValueRef]); const onChange = useCallback((query) => { setSearchValue(query); }, []); const onSubmit = useCallback((query) => { - if (query === '') { + if (query === '' || query === previousSearchValueRef.current) { return; } @@ -57,7 +59,8 @@ const Search = () => { } else if (page === 'learners') { dispatch(setUsernameSearch(query)); } - }, [page, searchValue]); + previousSearchValueRef.current = query; + }, [page, searchValue, previousSearchValueRef]); const handleIconClick = useCallback((e) => { e.preventDefault();