Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/CaiJimmy/hugo-theme-stack.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/assets
diff options
context:
space:
mode:
authorJimmy Cai <jimmehcai@gmail.com>2020-11-06 13:49:30 +0300
committerJimmy Cai <jimmehcai@gmail.com>2020-11-06 13:49:30 +0300
commitc018f4967ab5896b1592fcf971287b8e01f61fdb (patch)
treea00e43b5e39cc732c538d985df8cf1a1b39ff131 /assets
parentf5d45458fd55a4fdbff846f132d039518b07d3a3 (diff)
feat(search): i18n support
Diffstat (limited to 'assets')
-rw-r--r--assets/ts/search.tsx19
1 files changed, 16 insertions, 3 deletions
diff --git a/assets/ts/search.tsx b/assets/ts/search.tsx
index 9539caa..8e4eb6f 100644
--- a/assets/ts/search.tsx
+++ b/assets/ts/search.tsx
@@ -39,12 +39,14 @@ class Search {
private input: HTMLInputElement;
private list: HTMLDivElement;
private resultTitle: HTMLHeadElement;
+ private resultTitleTemplate: string;
- constructor({ form, input, list, resultTitle }) {
+ constructor({ form, input, list, resultTitle, resultTitleTemplate }) {
this.form = form;
this.input = input;
this.list = list;
this.resultTitle = resultTitle;
+ this.resultTitleTemplate = resultTitleTemplate;
this.handleQueryString();
this.bindQueryStringChange();
@@ -136,7 +138,11 @@ class Search {
const endTime = performance.now();
- this.resultTitle.innerText = `${results.length} pages (${((endTime - startTime) / 1000).toPrecision(1)} seconds)`;
+ this.resultTitle.innerText = this.generateResultTitle(results.length, ((endTime - startTime) / 1000).toPrecision(1));
+ }
+
+ private generateResultTitle(resultLen, time) {
+ return this.resultTitleTemplate.replace("#PAGES_COUNT", resultLen).replace("#TIME_SECONDS", time);
}
public async getData() {
@@ -231,6 +237,12 @@ class Search {
}
}
+declare global {
+ interface Window {
+ searchResultTitleTemplate: string;
+ }
+}
+
window.addEventListener('load', () => {
setTimeout(function () {
const searchForm = document.querySelector('.search-form') as HTMLFormElement,
@@ -242,7 +254,8 @@ window.addEventListener('load', () => {
form: searchForm,
input: searchInput,
list: searchResultList,
- resultTitle: searchResultTitle
+ resultTitle: searchResultTitle,
+ resultTitleTemplate: window.searchResultTitleTemplate
});
}, 0);
})