From acc7ed4a872ab745d90645b862d9727d2e5f06c9 Mon Sep 17 00:00:00 2001 From: tangwenhui Date: Sun, 6 Nov 2022 08:27:09 +0800 Subject: [PATCH 1/8] fix: key should be a optional param --- src/hooks/usePickerInput.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hooks/usePickerInput.ts b/src/hooks/usePickerInput.ts index 51984fc65..5e665ee44 100644 --- a/src/hooks/usePickerInput.ts +++ b/src/hooks/usePickerInput.ts @@ -30,7 +30,7 @@ export default function usePickerInput({ onFocus?: React.FocusEventHandler; onBlur?: React.FocusEventHandler; currentFocusedKey?: React.MutableRefObject; - key: string; + key?: string; }): [React.DOMAttributes, { focused: boolean; typing: boolean }] { const [typing, setTyping] = useState(false); const [focused, setFocused] = useState(false); From e3c73a442fc656a9b1769a4e19142ff3e1fb9233 Mon Sep 17 00:00:00 2001 From: tangwenhui Date: Sun, 6 Nov 2022 08:32:37 +0800 Subject: [PATCH 2/8] fix: key should be a optional param --- src/hooks/usePickerInput.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hooks/usePickerInput.ts b/src/hooks/usePickerInput.ts index 5e665ee44..b54bb4c9d 100644 --- a/src/hooks/usePickerInput.ts +++ b/src/hooks/usePickerInput.ts @@ -104,7 +104,7 @@ export default function usePickerInput({ setTyping(true); setFocused(true); - currentFocusedKey.current = key; + currentFocusedKey.current = key!; clearTimeout(delayBlurTimer.current); if (onFocus) { onFocus(e); From e539e00782eaaf76d8003dd33f6c231da2bc549f Mon Sep 17 00:00:00 2001 From: tangwenhui Date: Sun, 6 Nov 2022 08:38:34 +0800 Subject: [PATCH 3/8] fix: code optimize --- src/hooks/usePickerInput.ts | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/hooks/usePickerInput.ts b/src/hooks/usePickerInput.ts index b54bb4c9d..4385ca6b7 100644 --- a/src/hooks/usePickerInput.ts +++ b/src/hooks/usePickerInput.ts @@ -104,7 +104,9 @@ export default function usePickerInput({ setTyping(true); setFocused(true); - currentFocusedKey.current = key!; + if (currentFocusedKey) { + currentFocusedKey.current = key; + } clearTimeout(delayBlurTimer.current); if (onFocus) { onFocus(e); @@ -136,16 +138,21 @@ export default function usePickerInput({ } } setFocused(false); - - currentFocusedKey.current = ''; - // Delay to prevent 'range' focus transitions from firing resulting in incorrect out-of-focus events - delayBlurTimer.current = setTimeout(() => { - // Prevent the 'blur' event from firing when there is currently a focused input - if (currentFocusedKey.current) return; + if (currentFocusedKey) { + currentFocusedKey.current = ''; + // Delay to prevent 'range' focus transitions from firing resulting in incorrect out-of-focus events + delayBlurTimer.current = setTimeout(() => { + // Prevent the 'blur' event from firing when there is currently a focused input + if (currentFocusedKey.current) return; + if (onBlur) { + onBlur(e); + } + }, 100); + } else { if (onBlur) { onBlur(e); } - }, 100); + } }, }; From ad9a5d83a104dcbc2bd086b9c94397a8537f9139 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?kiner-tang=28=E6=96=87=E8=BE=89=29?= <1127031143@qq.com> Date: Sun, 6 Nov 2022 14:15:57 +0800 Subject: [PATCH 4/8] Update src/hooks/usePickerInput.ts Co-authored-by: afc163 --- src/hooks/usePickerInput.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/hooks/usePickerInput.ts b/src/hooks/usePickerInput.ts index 4385ca6b7..e1668aa0a 100644 --- a/src/hooks/usePickerInput.ts +++ b/src/hooks/usePickerInput.ts @@ -149,9 +149,7 @@ export default function usePickerInput({ } }, 100); } else { - if (onBlur) { - onBlur(e); - } + onBlur?.(e); } }, }; From 675de79ef1f5314e13ee2db3d30ff86a048ba6b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?kiner-tang=28=E6=96=87=E8=BE=89=29?= <1127031143@qq.com> Date: Sun, 6 Nov 2022 14:16:27 +0800 Subject: [PATCH 5/8] Update src/hooks/usePickerInput.ts Co-authored-by: afc163 --- src/hooks/usePickerInput.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hooks/usePickerInput.ts b/src/hooks/usePickerInput.ts index e1668aa0a..9b781f03d 100644 --- a/src/hooks/usePickerInput.ts +++ b/src/hooks/usePickerInput.ts @@ -143,10 +143,10 @@ export default function usePickerInput({ // Delay to prevent 'range' focus transitions from firing resulting in incorrect out-of-focus events delayBlurTimer.current = setTimeout(() => { // Prevent the 'blur' event from firing when there is currently a focused input - if (currentFocusedKey.current) return; - if (onBlur) { - onBlur(e); + if (currentFocusedKey.current) { + return; } + onBlur?.(e); }, 100); } else { onBlur?.(e); From f1b893f34415caf3e447ccc4743f3e150fa203c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?kiner-tang=28=E6=96=87=E8=BE=89=29?= <1127031143@qq.com> Date: Sun, 6 Nov 2022 16:12:59 +0800 Subject: [PATCH 6/8] Update src/hooks/usePickerInput.ts Co-authored-by: afc163 --- src/hooks/usePickerInput.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/hooks/usePickerInput.ts b/src/hooks/usePickerInput.ts index 9b781f03d..fe6e0ad58 100644 --- a/src/hooks/usePickerInput.ts +++ b/src/hooks/usePickerInput.ts @@ -104,9 +104,7 @@ export default function usePickerInput({ setTyping(true); setFocused(true); - if (currentFocusedKey) { - currentFocusedKey.current = key; - } + currentFocusedKey?.current = key; clearTimeout(delayBlurTimer.current); if (onFocus) { onFocus(e); From 905ae21ce048c7de12fb8093c00c0c98bce8a29c Mon Sep 17 00:00:00 2001 From: tangwenhui Date: Sun, 6 Nov 2022 16:20:45 +0800 Subject: [PATCH 7/8] feat: code optimize --- src/hooks/usePickerInput.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/hooks/usePickerInput.ts b/src/hooks/usePickerInput.ts index fe6e0ad58..b6c3a5dc0 100644 --- a/src/hooks/usePickerInput.ts +++ b/src/hooks/usePickerInput.ts @@ -104,7 +104,9 @@ export default function usePickerInput({ setTyping(true); setFocused(true); - currentFocusedKey?.current = key; + if (currentFocusedKey.current) { + currentFocusedKey.current = key; + } clearTimeout(delayBlurTimer.current); if (onFocus) { onFocus(e); From e6625eb7414798db9214c3cc672fedc8a3d73ef4 Mon Sep 17 00:00:00 2001 From: tangwenhui Date: Sun, 6 Nov 2022 16:26:40 +0800 Subject: [PATCH 8/8] feat: code optimize --- src/hooks/usePickerInput.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hooks/usePickerInput.ts b/src/hooks/usePickerInput.ts index b6c3a5dc0..9b781f03d 100644 --- a/src/hooks/usePickerInput.ts +++ b/src/hooks/usePickerInput.ts @@ -104,7 +104,7 @@ export default function usePickerInput({ setTyping(true); setFocused(true); - if (currentFocusedKey.current) { + if (currentFocusedKey) { currentFocusedKey.current = key; } clearTimeout(delayBlurTimer.current);