20 lines
508 B
TypeScript
20 lines
508 B
TypeScript
import { useMemo } from "react";
|
|
|
|
import type { ConversationItem } from "@/features/im/types/conversation";
|
|
|
|
export function useConversationSearch(items: ConversationItem[], keyword: string) {
|
|
return useMemo(() => {
|
|
const query = keyword.trim().toLowerCase();
|
|
if (!query) {
|
|
return items;
|
|
}
|
|
|
|
return items.filter((item) => {
|
|
return (
|
|
item.title.toLowerCase().includes(query) ||
|
|
item.preview.toLowerCase().includes(query)
|
|
);
|
|
});
|
|
}, [items, keyword]);
|
|
}
|