diff --git a/__tests__/e2e/multi-sidebar/index.test.ts b/__tests__/e2e/multi-sidebar/index.test.ts index b6482bdb..7b290090 100644 --- a/__tests__/e2e/multi-sidebar/index.test.ts +++ b/__tests__/e2e/multi-sidebar/index.test.ts @@ -5,7 +5,8 @@ describe('test multi sidebar sort root', () => { test('using / sidebar', async () => { const sidebarLocator = page.locator( - '.VPSidebarItem.level-0 > .item > .text' + '.VPSidebarItem.level-0 > .item > summary > .text, \ + .VPSidebarItem.level-0 > .item > .text' ) const sidebarContent = await sidebarLocator.allTextContents() diff --git a/src/client/theme-default/components/VPSidebarItem.vue b/src/client/theme-default/components/VPSidebarItem.vue index 1ce78da6..1629bfd5 100644 --- a/src/client/theme-default/components/VPSidebarItem.vue +++ b/src/client/theme-default/components/VPSidebarItem.vue @@ -16,7 +16,7 @@ const { isActiveLink, hasActiveLink, hasChildren, - toggle + handleToggle, } = useSidebarControl(computed(() => props.item)) const sectionTag = computed(() => (hasChildren.value ? 'section' : `div`)) @@ -31,41 +31,61 @@ const textTag = computed(() => { : `h${props.depth + 2}` }) -const itemRole = computed(() => (isLink.value ? undefined : 'button')) - const classes = computed(() => [ [`level-${props.depth}`], - { collapsible: collapsible.value }, - { collapsed: collapsed.value }, { 'is-link': isLink.value }, { 'is-active': isActiveLink.value }, { 'has-active': hasActiveLink.value } ]) -function onItemInteraction(e: MouseEvent | Event) { - if ('key' in e && e.key !== 'Enter') { - return - } - !props.item.link && toggle() -} - -function onCaretClick() { - props.item.link && toggle() +function onToggle(payload: ToggleEvent): void { + handleToggle(payload.newState) }