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 } from 'react'; import { useTranslation } from 'react-i18next'; import { useHandleClickConversationCard } from '../hooks/use-click-card'; import { useSelectDerivedConversationList } from '../hooks/use-select-conversation-list'; import { ConversationDropdown } from './conversation-dropdown'; type SessionProps = Pick< ReturnType, 'handleConversationCardClick' > & { switchSettingVisible(): void; hasSingleChatBox: boolean }; export function Sessions({ hasSingleChatBox, handleConversationCardClick, switchSettingVisible, }: SessionProps) { const { t } = useTranslation(); const { list: conversationList, addTemporaryConversation, handleInputChange, searchString, } = useSelectDerivedConversationList(); const { data } = useFetchDialog(); const { visible, switchVisible } = useSetModalState(true); const handleCardClick = useCallback( (conversationId: string, isNew: boolean) => () => { handleConversationCardClick(conversationId, isNew); }, [handleConversationCardClick], ); const { conversationId } = useGetChatSearchParams(); if (!visible) { return ( ); } return (
{data.name}
Conversations
{conversationList.map((x) => ( {x.name} ))}
); }