import { MoreButton } from '@/components/more-button'; import { RAGFlowAvatar } from '@/components/ragflow-avatar'; import { Button } from '@/components/ui/button'; import { Card, CardContent } from '@/components/ui/card'; import { SearchInput } from '@/components/ui/input'; import { useSetModalState } from '@/hooks/common-hooks'; import { useFetchDialog, useGetChatSearchParams, } from '@/hooks/use-chat-request'; import { cn } from '@/lib/utils'; import { PanelLeftClose, PanelRightClose, Plus } from 'lucide-react'; import { useCallback, useState } from 'react'; import { useHandleClickConversationCard } from '../hooks/use-click-card'; import { useSelectDerivedConversationList } from '../hooks/use-select-conversation-list'; type SessionProps = Pick< ReturnType, 'handleConversationCardClick' > & { switchSettingVisible(): void }; export function Sessions({ handleConversationCardClick, switchSettingVisible, }: SessionProps) { const { list: conversationList, addTemporaryConversation } = useSelectDerivedConversationList(); const { data } = useFetchDialog(); const { visible, switchVisible } = useSetModalState(true); const [searchStr, setSearchStr] = useState(''); const handleCardClick = useCallback( (conversationId: string, isNew: boolean) => () => { handleConversationCardClick(conversationId, isNew); }, [handleConversationCardClick], ); const { conversationId } = useGetChatSearchParams(); if (!visible) { return ( ); } return (
{data.name}
Conversations
setSearchStr(e.target.value)} value={searchStr} >
{conversationList.map((x) => ( {x.name} ))}
); }