From 33962e04ebb2724e12b131f61ff00fe0aaf990f3 Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Wed, 16 Aug 2023 23:19:33 +0530 Subject: [PATCH] fix(theme): prevent sidebar re-render unless there is actual change closes #2796 --- src/client/theme-default/composables/sidebar.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/client/theme-default/composables/sidebar.ts b/src/client/theme-default/composables/sidebar.ts index 4d98edfc..ddc9c073 100644 --- a/src/client/theme-default/composables/sidebar.ts +++ b/src/client/theme-default/composables/sidebar.ts @@ -35,12 +35,19 @@ export function useSidebar() { const isOpen = ref(false) - const sidebar = computed(() => { + const _sidebar = computed(() => { const sidebarConfig = theme.value.sidebar const relativePath = page.value.relativePath return sidebarConfig ? getSidebar(sidebarConfig, relativePath) : [] }) + const sidebar = ref(_sidebar.value) + + watch(_sidebar, (next, prev) => { + if (JSON.stringify(next) !== JSON.stringify(prev)) + sidebar.value = _sidebar.value + }) + const hasSidebar = computed(() => { return ( frontmatter.value.sidebar !== false &&