From 50d61faefacc3885efe99fe5477a3b815354a0c4 Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Sun, 22 Oct 2023 15:05:41 +0530 Subject: [PATCH] fix(theme/search): prevent reactivity loss with i18n (#3121) --- .../components/VPAlgoliaSearchBox.vue | 16 ++++++---------- .../components/VPLocalSearchBox.vue | 9 +++++++-- .../components/VPNavBarSearchButton.vue | 9 +++++++-- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/client/theme-default/components/VPAlgoliaSearchBox.vue b/src/client/theme-default/components/VPAlgoliaSearchBox.vue index 04652295..31bfd645 100644 --- a/src/client/theme-default/components/VPAlgoliaSearchBox.vue +++ b/src/client/theme-default/components/VPAlgoliaSearchBox.vue @@ -1,8 +1,8 @@ diff --git a/src/client/theme-default/components/VPLocalSearchBox.vue b/src/client/theme-default/components/VPLocalSearchBox.vue index 1fde6c4d..d9df6a0a 100644 --- a/src/client/theme-default/components/VPLocalSearchBox.vue +++ b/src/client/theme-default/components/VPLocalSearchBox.vue @@ -4,6 +4,7 @@ import { computedAsync, debouncedWatch, onKeyStroke, + reactify, useEventListener, useLocalStorage, useScrollLock, @@ -12,7 +13,7 @@ import { import { useFocusTrap } from '@vueuse/integrations/useFocusTrap' import Mark from 'mark.js/src/vanilla.js' import MiniSearch, { type SearchResult } from 'minisearch' -import { inBrowser, useRouter, dataSymbol } from 'vitepress' +import { dataSymbol, inBrowser, useRouter } from 'vitepress' import { computed, createApp, @@ -22,6 +23,7 @@ import { onMounted, ref, shallowRef, + toRef, watch, watchEffect, type Ref @@ -352,7 +354,10 @@ const defaultTranslations: { modal: ModalTranslations } = { } } -const $t = createTranslate(theme.value.search?.options, defaultTranslations) +const $t = reactify(createTranslate)( + toRef(() => theme.value.search?.options), + defaultTranslations +) // Back diff --git a/src/client/theme-default/components/VPNavBarSearchButton.vue b/src/client/theme-default/components/VPNavBarSearchButton.vue index 281a00f5..a53e5a01 100644 --- a/src/client/theme-default/components/VPNavBarSearchButton.vue +++ b/src/client/theme-default/components/VPNavBarSearchButton.vue @@ -1,4 +1,6 @@