From 12ec7d4207b2c937265d3e0d8821d2cbc9a383ed Mon Sep 17 00:00:00 2001 From: TheoryOfNekomata Date: Tue, 18 Jul 2023 14:15:45 +0800 Subject: [PATCH] Improve keyboard handling Use keyboard shortcut on toggling maskedtextinput visibility. --- .../src/components/MaskedTextInput/index.tsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/categories/freeform/react/src/components/MaskedTextInput/index.tsx b/categories/freeform/react/src/components/MaskedTextInput/index.tsx index 6fcfb44..ef60d21 100644 --- a/categories/freeform/react/src/components/MaskedTextInput/index.tsx +++ b/categories/freeform/react/src/components/MaskedTextInput/index.tsx @@ -60,6 +60,7 @@ export const MaskedTextInput = React.forwardRef< style, length, disabled, + onKeyUp, ...etcProps }: MaskedTextInputProps, forwardedRef, @@ -70,6 +71,17 @@ export const MaskedTextInput = React.forwardRef< const id = idProp ?? defaultId; const [visible, setVisible] = React.useState(false); + const handleKeyUp: React.KeyboardEventHandler = React.useCallback((e) => { + if (e.ctrlKey && e.code === 'Space') { + setVisible((prev) => !prev); + } + onKeyUp?.(e); + }, [onKeyUp]); + + const handleToggleVisible = React.useCallback(() => { + setVisible((prev) => !prev); + }, []); + return (
{ setVisible((b) => !b); }} + onClick={handleToggleVisible} >