import { useState } from "react"; import { TextInput, Loader, Text, ScrollArea } from "@mantine/core"; import { IconSearch } from "@tabler/icons-react"; import { useChatsQuery, useSearchChatsQuery } from "../queries/ai-chat-query"; import { useDebouncedValue } from "@mantine/hooks"; import { useTranslation } from "react-i18next"; import classes from "../styles/aside-chat-panel.module.css"; type Props = { activeChatId: string | undefined; onSelect: (chatId: string) => void; }; export default function AsideChatHistory({ activeChatId, onSelect }: Props) { const { t } = useTranslation(); const [searchValue, setSearchValue] = useState(""); const [debouncedSearch] = useDebouncedValue(searchValue, 300); const chatsQuery = useChatsQuery(); const searchQuery = useSearchChatsQuery(debouncedSearch); const isSearching = debouncedSearch.length > 0; const chats = isSearching ? (searchQuery.data ?? []) : (chatsQuery.data?.pages.flatMap((p) => p.items) ?? []); const isLoading = isSearching ? searchQuery.isLoading : chatsQuery.isLoading; return (