From 97f9469b6d4eb7ba9de9a1111986581d1f704ec3 Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Wed, 3 Jul 2024 00:55:48 +0530 Subject: [PATCH] fix(theme): deep watch sidebar groups and force render on match change closes #3613 --- .../theme-default/components/VPSidebar.vue | 37 ++++++------ .../components/VPSidebarGroup.vue | 56 +++++++++++++++++++ .../components/VPSidebarItem.vue | 6 +- 3 files changed, 77 insertions(+), 22 deletions(-) create mode 100644 src/client/theme-default/components/VPSidebarGroup.vue diff --git a/src/client/theme-default/components/VPSidebar.vue b/src/client/theme-default/components/VPSidebar.vue index d6c73219..35fa7838 100644 --- a/src/client/theme-default/components/VPSidebar.vue +++ b/src/client/theme-default/components/VPSidebar.vue @@ -3,7 +3,7 @@ import { useScrollLock } from '@vueuse/core' import { inBrowser } from 'vitepress' import { ref, watch } from 'vue' import { useSidebar } from '../composables/sidebar' -import VPSidebarItem from './VPSidebarItem.vue' +import VPSidebarGroup from './VPSidebarGroup.vue' const { sidebarGroups, hasSidebar } = useSidebar() @@ -25,6 +25,16 @@ watch( }, { immediate: true, flush: 'post' } ) + +const key = ref(0) + +watch( + sidebarGroups, + () => { + key.value += 1 + }, + { deep: true } +)