38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
import { computed, shallowRef, toRef } from "vue";
|
|
import { useRouteLocale } from "vuepress/client";
|
|
import { searchIndex } from "@internal/minisearchIndex";
|
|
|
|
//#region src/client/composables/locale.ts
|
|
const defaultLocales = { "/": {
|
|
placeholder: "Search",
|
|
resetButtonTitle: "Reset search",
|
|
backButtonTitle: "Close search",
|
|
noResultsText: "No results for",
|
|
footer: {
|
|
selectText: "to select",
|
|
selectKeyAriaLabel: "enter",
|
|
navigateText: "to navigate",
|
|
navigateUpKeyAriaLabel: "up arrow",
|
|
navigateDownKeyAriaLabel: "down arrow",
|
|
closeText: "to close",
|
|
closeKeyAriaLabel: "escape"
|
|
}
|
|
} };
|
|
function useLocale(locales) {
|
|
const localesRef = toRef(locales);
|
|
const routeLocale = useRouteLocale();
|
|
return computed(() => localesRef.value[routeLocale.value] ?? defaultLocales[routeLocale.value] ?? defaultLocales["/"]);
|
|
}
|
|
|
|
//#endregion
|
|
//#region src/client/composables/searchIndex.ts
|
|
const searchIndexData = shallowRef(searchIndex);
|
|
function useSearchIndex() {
|
|
return searchIndexData;
|
|
}
|
|
if (__VUEPRESS_DEV__ && (import.meta.webpackHot || import.meta.hot)) __VUE_HMR_RUNTIME__.updateSearchIndex = (data) => {
|
|
searchIndexData.value = data;
|
|
};
|
|
|
|
//#endregion
|
|
export { useLocale, useSearchIndex }; |