fix(Drawer/Modal/Slideover): disable close autofocus

Resolves #3227
This commit is contained in:
Benjamin Canac
2025-02-18 10:59:13 +01:00
parent e64fd290b2
commit ae30f9423d
3 changed files with 14 additions and 5 deletions

View File

@@ -83,6 +83,9 @@ const slots = defineSlots<DrawerSlots>()
const rootProps = useForwardPropsEmits(reactivePick(props, 'activeSnapPoint', 'closeThreshold', 'defaultOpen', 'dismissible', 'fadeFromIndex', 'fixed', 'modal', 'nested', 'direction', 'open', 'scrollLockTimeout', 'shouldScaleBackground', 'snapPoints'), emits)
const contentProps = toRef(() => props.content)
const contentEvents = {
closeAutoFocus: (e: Event) => e.preventDefault()
}
const ui = computed(() => drawer({
direction: props.direction,
@@ -99,7 +102,7 @@ const ui = computed(() => drawer({
<DrawerPortal :disabled="!portal">
<DrawerOverlay v-if="overlay" :class="ui.overlay({ class: props.ui?.overlay })" />
<DrawerContent :class="ui.content({ class: [!slots.default && props.class, props.ui?.content] })" v-bind="contentProps">
<DrawerContent :class="ui.content({ class: [!slots.default && props.class, props.ui?.content] })" v-bind="contentProps" v-on="contentEvents">
<slot name="handle">
<div v-if="handle" :class="ui.handle({ class: props.ui?.handle })" />
</slot>

View File

@@ -101,11 +101,14 @@ const contentEvents = computed(() => {
return {
pointerDownOutside: (e: Event) => e.preventDefault(),
interactOutside: (e: Event) => e.preventDefault(),
escapeKeyDown: (e: Event) => e.preventDefault()
escapeKeyDown: (e: Event) => e.preventDefault(),
closeAutoFocus: (e: Event) => e.preventDefault()
}
}
return {}
return {
closeAutoFocus: (e: Event) => e.preventDefault()
}
})
const ui = computed(() => modal({

View File

@@ -101,11 +101,14 @@ const contentEvents = computed(() => {
return {
pointerDownOutside: (e: Event) => e.preventDefault(),
interactOutside: (e: Event) => e.preventDefault(),
escapeKeyDown: (e: Event) => e.preventDefault()
escapeKeyDown: (e: Event) => e.preventDefault(),
closeAutoFocus: (e: Event) => e.preventDefault()
}
}
return {}
return {
closeAutoFocus: (e: Event) => e.preventDefault()
}
})
const ui = computed(() => slideover({