From 2995d8ca290897bb7671cd5eb1dd0bb76a435db3 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Thu, 1 Feb 2024 07:49:46 -0500 Subject: [PATCH] Add native keyboard shortcuts for Find+Replace, closes #6468 --- app/editor/components/FindAndReplace.tsx | 29 +++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/app/editor/components/FindAndReplace.tsx b/app/editor/components/FindAndReplace.tsx index dccf4972c..d9a8db77d 100644 --- a/app/editor/components/FindAndReplace.tsx +++ b/app/editor/components/FindAndReplace.tsx @@ -150,15 +150,38 @@ export default function FindAndReplace({ const handleKeyDown = React.useCallback( (ev: React.KeyboardEvent) => { - if (ev.key === "Enter") { - ev.preventDefault(); - + function nextPrevious(ev: React.KeyboardEvent) { if (ev.shiftKey) { editor.commands.prevSearchMatch(); } else { editor.commands.nextSearchMatch(); } } + function selectInputText() { + inputRef.current?.setSelectionRange(0, inputRef.current?.value.length); + } + + switch (ev.key) { + case "Enter": { + ev.preventDefault(); + nextPrevious(ev); + return; + } + case "g": { + if (ev.metaKey) { + ev.preventDefault(); + nextPrevious(ev); + selectInputText(); + } + return; + } + case "F3": { + ev.preventDefault(); + nextPrevious(ev); + selectInputText(); + return; + } + } }, [editor.commands] );