From 4a32fd216bbea09d7308752e4ca8496998cbf94d Mon Sep 17 00:00:00 2001 From: CrescentLeaf Date: Sat, 20 Sep 2025 18:00:12 +0800 Subject: [PATCH] feat: search for recentschat --- client/ui/main/RecentsList.tsx | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/client/ui/main/RecentsList.tsx b/client/ui/main/RecentsList.tsx index 32cce73..2fc8d22 100644 --- a/client/ui/main/RecentsList.tsx +++ b/client/ui/main/RecentsList.tsx @@ -1,5 +1,8 @@ +import { TextField } from "mdui" import RecentChat from "../../api/client_data/RecentChat.ts" +import useEventListener from "../useEventListener.ts" import RecentsListItem from "./RecentsListItem.tsx" +import React from "react" interface Args extends React.HTMLAttributes { recentsList: RecentChat[] @@ -17,14 +20,31 @@ export default function RecentsList({ openChatFragment, ...props }: Args) { + const searchRef = React.useRef(null) + const [searchText, setSearchText] = React.useState('') + + useEventListener(searchRef, 'input', (e) => { + setSearchText((e.target as unknown as TextField).value) + }) + return + { - recentsList.map((v) => + recentsList.filter((chat) => + searchText == '' || + chat.title.includes(searchText) || + chat.id.includes(searchText) || + chat.content?.includes(searchText) + ).map((v) => openChatFragment(v.id)}