이름 검색 로직 개선 및 뒤로가기로 검색 페이지로 돌아온 경우에 필터 및 검색 결과가 유지되도록 개선

This commit is contained in:
static
2026-01-15 18:25:01 +09:00
parent b3e3671c09
commit ebcdbd2d83
7 changed files with 82 additions and 7 deletions
+1 -1
View File
@@ -553,7 +553,7 @@ export const searchFiles = async (
: await baseQuery.execute();
return files.map((file) => ({
id: file.id,
parentId: file.parent_id ?? "root",
parentId: file.parent_id ?? ("root" as const),
userId: file.user_id,
path: file.path,
mekVersion: file.master_encryption_key_version,
+1
View File
@@ -1,4 +1,5 @@
export * from "./concurrency";
export * from "./format";
export * from "./gotoStateful";
export * from "./search";
export * from "./sort";
+28
View File
@@ -0,0 +1,28 @@
import { disassemble, getChoseong } from "es-hangul";
const normalize = (s: string) => {
return s.normalize("NFC").toLowerCase().replace(/\s/g, "");
};
const extractHangul = (s: string) => {
return s.replace(/[^가-힣ㄱ-ㅎㅏ-ㅣ]/g, "");
};
const hangulSearch = (original: string, query: string) => {
original = extractHangul(original);
query = extractHangul(query);
if (!original || !query) return false;
return (
disassemble(original).includes(disassemble(query)) ||
getChoseong(original).includes(getChoseong(query))
);
};
export const searchString = (original: string, query: string) => {
original = normalize(original);
query = normalize(query);
if (!original || !query) return false;
return original.includes(query) || hangulSearch(original, query);
};