add focus trap to tag dropdown to fix focus management

This commit is contained in:
Gregor Vostrak
2025-03-05 11:57:26 +01:00
parent aa588196ee
commit d9ffa9899f

View File

@@ -6,6 +6,7 @@ import TagCreateModal from '@/packages/ui/src/Tag/TagCreateModal.vue';
import MultiselectDropdownItem from '@/packages/ui/src/Input/MultiselectDropdownItem.vue'; import MultiselectDropdownItem from '@/packages/ui/src/Input/MultiselectDropdownItem.vue';
import type { Tag } from '@/packages/api/src'; import type { Tag } from '@/packages/api/src';
import type { Placement } from '@floating-ui/vue'; import type { Placement } from '@floating-ui/vue';
import {UseFocusTrap} from "@vueuse/integrations/useFocusTrap/component";
const props = withDefaults( const props = withDefaults(
defineProps<{ defineProps<{
@@ -177,6 +178,9 @@ const showCreateTagModal = ref(false);
<slot name="trigger"></slot> <slot name="trigger"></slot>
</template> </template>
<template #content> <template #content>
<UseFocusTrap
v-if="open"
:options="{ immediate: true, allowOutsideClick: true }">
<input <input
ref="searchInput" ref="searchInput"
:value="searchValue" :value="searchValue"
@@ -217,6 +221,7 @@ const showCreateTagModal = ref(false);
<span>Create new Tag</span> <span>Create new Tag</span>
</button> </button>
</div> </div>
</UseFocusTrap>
</template> </template>
</Dropdown> </Dropdown>
</template> </template>