Skip to content

Commit 389e863

Browse files
authored
fix(theme-default/algolia): avoid creating multiple algolia searches (#292)
1 parent 58663bb commit 389e863

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

src/client/theme-default/Layout.vue

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,7 @@ const pageClasses = computed(() => {
8888
<AlgoliaSearchBox
8989
v-if="theme.algolia"
9090
:options="theme.algolia"
91-
:multilang="isMultiLang"
92-
:key="site.lang"
91+
:multilang="!!theme.locales"
9392
/>
9493
</slot>
9594
</template>

src/client/theme-default/components/AlgoliaSearchBox.vue

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,21 +52,37 @@ function update(options: any) {
5252
5353
const { lang } = useData()
5454
55-
function initialize(userOptions: any) {
56-
// if the user has multiple locales, the search results should be filtered
57-
// based on the language
58-
const facetFilters = props.multilang ? ['language:' + lang.value] : []
55+
// if the user has multiple locales, the search results should be filtered
56+
// based on the language
57+
const facetFilters: string[] = props.multilang
58+
? ['language:' + lang.value]
59+
: []
60+
61+
if (props.options.searchParameters?.facetFilters) {
62+
facetFilters.push(...props.options.searchParameters.facetFilters)
63+
}
5964
65+
watch(
66+
lang,
67+
(newLang, oldLang) => {
68+
const index = facetFilters.findIndex(
69+
(filter) => filter === 'language:' + oldLang
70+
)
71+
if (index > -1) {
72+
facetFilters.splice(index, 1, 'language:' + newLang)
73+
}
74+
}
75+
)
76+
77+
function initialize(userOptions: any) {
6078
docsearch(
6179
Object.assign({}, userOptions, {
6280
container: '#docsearch',
6381
6482
searchParameters: Object.assign({}, userOptions.searchParameters, {
6583
// pass a custom lang facetFilter to allow multiple language search
6684
// https://github.com/algolia/docsearch-configs/pull/3942
67-
facetFilters: facetFilters.concat(
68-
userOptions.searchParameters?.facetFilters || []
69-
)
85+
facetFilters
7086
}),
7187
7288
navigator: {

0 commit comments

Comments
 (0)