From 8fe9168a237ded696a1de70defd428e823ef15f3 Mon Sep 17 00:00:00 2001 From: zernonia Date: Wed, 4 Sep 2024 09:56:47 +0800 Subject: [PATCH] fix(RovingFocus): wrong focus on group instead of item --- packages/radix-vue/src/RovingFocus/RovingFocusGroup.vue | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/radix-vue/src/RovingFocus/RovingFocusGroup.vue b/packages/radix-vue/src/RovingFocus/RovingFocusGroup.vue index 38bfebfb9..5dcfaf74d 100644 --- a/packages/radix-vue/src/RovingFocus/RovingFocusGroup.vue +++ b/packages/radix-vue/src/RovingFocus/RovingFocusGroup.vue @@ -102,10 +102,16 @@ function handleFocus(event: FocusEvent) { focusFirst(candidateItems, props.preventScrollOnEntryFocus) } } - isClickFocus.value = false } +function handleMouseUp() { + // reset `isClickFocus` after 1 tick because handleFocus might not triggered due to focused element + setTimeout(() => { + isClickFocus.value = false + }, 1) +} + defineExpose({ getItems, }) @@ -140,6 +146,7 @@ provideRovingFocusGroupContext({ :dir="dir" style="outline: none" @mousedown="isClickFocus = true" + @mouseup="handleMouseUp" @focus="handleFocus" @blur="isTabbingBackOut = false" >