diff --git a/web/src/stores/v1/view.ts b/web/src/stores/v1/view.ts
index e48a2db..9a97319 100644
--- a/web/src/stores/v1/view.ts
+++ b/web/src/stores/v1/view.ts
@@ -5,6 +5,7 @@ export interface Filter {
tag?: string;
mineOnly?: boolean;
visibility?: Visibility;
+ search?: string;
}
export interface Order {
@@ -48,7 +49,7 @@ const useViewStore = create()(
);
export const getFilteredShortcutList = (shortcutList: Shortcut[], filter: Filter, currentUser: User) => {
- const { tag, mineOnly, visibility } = filter;
+ const { tag, mineOnly, visibility, search } = filter;
const filteredShortcutList = shortcutList.filter((shortcut) => {
if (tag) {
if (!shortcut.tags.includes(tag)) {
@@ -65,6 +66,16 @@ export const getFilteredShortcutList = (shortcutList: Shortcut[], filter: Filter
return false;
}
}
+ if (search) {
+ if (
+ !shortcut.name.toLowerCase().includes(search.toLowerCase()) &&
+ !shortcut.description.toLowerCase().includes(search.toLowerCase()) &&
+ !shortcut.tags.some((tag) => tag.toLowerCase().includes(search.toLowerCase())) &&
+ !shortcut.link.toLowerCase().includes(search.toLowerCase())
+ ) {
+ return false;
+ }
+ }
return true;
});
return filteredShortcutList;