From d2fa27a533181b32c79ea39a292dec329d703d3d Mon Sep 17 00:00:00 2001 From: ins-nishidh-47 Date: Fri, 20 Dec 2024 19:00:02 +0530 Subject: [PATCH] prevent unnecessary caret movement --- src/components/SearchInput.js | 16 +++++++++++++++- src/pages/index.js | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/components/SearchInput.js b/src/components/SearchInput.js index 8a8644d6..672e520a 100644 --- a/src/components/SearchInput.js +++ b/src/components/SearchInput.js @@ -19,6 +19,20 @@ function SearchInput({ placeholder, value, onChange, ...props }) { return () => window.removeEventListener('keydown', handleKeyDown) }, []) + function handleChange(event) { + const currentCaret = inputElement.current; + const caretPosition = currentCaret.selectionStart; // will Save caret position + + if (onChange) { + onChange(event.target.value); // Update the value + } + + // Restore caret position after value update + setTimeout(() => { + currentCaret.setSelectionRange(caretPosition, caretPosition); + }, 0); + } + return (
setQuery(event.target.value)} + onChange={setQuery} />