From bc4a74494774ed98b4534079cc80bb4e61236b36 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Sat, 6 Jan 2024 01:51:07 +0100 Subject: [PATCH] fix incorrect `activeIndex` when handling `Focus.Previous` This is already available in the React version, now let's sync it in the Vue version as well. --- packages/@headlessui-vue/src/utils/calculate-active-index.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/@headlessui-vue/src/utils/calculate-active-index.ts b/packages/@headlessui-vue/src/utils/calculate-active-index.ts index bed4d6a..805ef23 100644 --- a/packages/@headlessui-vue/src/utils/calculate-active-index.ts +++ b/packages/@headlessui-vue/src/utils/calculate-active-index.ts @@ -48,6 +48,9 @@ export function calculateActiveIndex( } case Focus.Previous: { + // If nothing is active, focus the last relevant item + if (activeIndex === -1) activeIndex = items.length + for (let i = activeIndex - 1; i >= 0; --i) { if (!resolvers.resolveDisabled(items[i], i, items)) { return i