mirror of
https://github.com/kmc7468/arkvault.git
synced 2026-09-19 21:45:42 +09:00
이름 검색 로직 개선 및 뒤로가기로 검색 페이지로 돌아온 경우에 필터 및 검색 결과가 유지되도록 개선
This commit is contained in:
@@ -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,4 +1,5 @@
|
||||
export * from "./concurrency";
|
||||
export * from "./format";
|
||||
export * from "./gotoStateful";
|
||||
export * from "./search";
|
||||
export * from "./sort";
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
Reference in New Issue
Block a user