summaryrefslogtreecommitdiff
path: root/packages/frontend/src/utility
diff options
context:
space:
mode:
authoranatawa12 <anatawa12@icloud.com>2025-04-07 14:35:32 +0900
committerGitHub <noreply@github.com>2025-04-07 14:35:32 +0900
commit85a7b10fcde1d461b138c0e0ad5507df66959162 (patch)
treed07f85a954e34faa35e1ca80cdcfaf8538451491 /packages/frontend/src/utility
parent🎨 (diff)
downloadsharkey-85a7b10fcde1d461b138c0e0ad5507df66959162.tar.gz
sharkey-85a7b10fcde1d461b138c0e0ad5507df66959162.tar.bz2
sharkey-85a7b10fcde1d461b138c0e0ad5507df66959162.zip
refactor serach index generator code (#15772)
* refactor: flatten search index * chore: use Function() to simplify parsing attribute * chore: remove comment handling * chore: simplify processing SearchLabel and SearchKeyword element * chore: use SearchLabel in mutedUsers * chore: small improvements * chore: remove a fallback path and simplify the entire code * fix: result path is not correct * chore: inline function
Diffstat (limited to 'packages/frontend/src/utility')
-rw-r--r--packages/frontend/src/utility/settings-search-index.ts16
-rw-r--r--packages/frontend/src/utility/virtual.d.ts2
2 files changed, 5 insertions, 13 deletions
diff --git a/packages/frontend/src/utility/settings-search-index.ts b/packages/frontend/src/utility/settings-search-index.ts
index 22e2407b15..7ed97ed34f 100644
--- a/packages/frontend/src/utility/settings-search-index.ts
+++ b/packages/frontend/src/utility/settings-search-index.ts
@@ -8,35 +8,27 @@ import type { GeneratedSearchIndexItem } from 'search-index:settings';
export type SearchIndexItem = {
id: string;
+ parentId?: string;
path?: string;
label: string;
keywords: string[];
icon?: string;
- children?: SearchIndexItem[];
};
const rootMods = new Map(generated.map(item => [item.id, item]));
-function walk(item: GeneratedSearchIndexItem) {
+// link inlining here
+for (const item of generated) {
if (item.inlining) {
for (const id of item.inlining) {
const inline = rootMods.get(id);
if (inline) {
- (item.children ??= []).push(inline);
- rootMods.delete(id);
+ inline.parentId = item.id;
} else {
console.log('[Settings Search Index] Failed to inline', id);
}
}
}
-
- for (const child of item.children ?? []) {
- walk(child);
- }
-}
-
-for (const item of generated) {
- walk(item);
}
export const searchIndexes: SearchIndexItem[] = generated;
diff --git a/packages/frontend/src/utility/virtual.d.ts b/packages/frontend/src/utility/virtual.d.ts
index 59470a1f5e..63dc4372b7 100644
--- a/packages/frontend/src/utility/virtual.d.ts
+++ b/packages/frontend/src/utility/virtual.d.ts
@@ -6,12 +6,12 @@
declare module 'search-index:settings' {
export type GeneratedSearchIndexItem = {
id: string;
+ parentId?: string;
path?: string;
label: string;
keywords: string[];
icon?: string;
inlining?: string[];
- children?: GeneratedSearchIndexItem[];
};
export const searchIndexes: GeneratedSearchIndexItem[];