import { SkeletonCard } from '@/components/skeleton-card'; import { Button } from '@/components/ui/button'; import { Sheet, SheetContent, SheetHeader, SheetTitle, } from '@/components/ui/sheet'; import { useNavigatePage } from '@/hooks/logic-hooks/navigate-hooks'; import { useFetchAgent } from '@/hooks/use-agent-request'; import { IModalProps } from '@/interfaces/common'; import { cn } from '@/lib/utils'; import { PipelineResultSearchParams } from '@/pages/dataflow-result/constant'; import { ArrowUpRight, CirclePause, Logs, SquareArrowOutUpRight, } from 'lucide-react'; import { useTranslation } from 'react-i18next'; import 'react18-json-view/src/style.css'; import { useParams } from 'umi'; import { isEndOutputEmpty, useDownloadOutput, } from '../hooks/use-download-output'; import { UseFetchLogReturnType } from '../hooks/use-fetch-pipeline-log'; import { DataflowTimeline } from './dataflow-timeline'; type LogSheetProps = IModalProps & { handleCancel(): void; uploadedFileData?: Record; } & Pick< UseFetchLogReturnType, 'isCompleted' | 'isLogEmpty' | 'isParsing' | 'logs' | 'messageId' >; export function PipelineLogSheet({ hideModal, isParsing, logs, handleCancel, isCompleted, isLogEmpty, messageId, uploadedFileData, }: LogSheetProps) { const { t } = useTranslation(); const { id } = useParams(); const { data: agent } = useFetchAgent(); const { handleDownloadJson } = useDownloadOutput(logs); const { navigateToDataflowResult } = useNavigatePage(); return ( e.preventDefault()} > {t('flow.log')} {isCompleted && ( )}
{isLogEmpty ? ( ) : ( )}
{isParsing ? ( ) : ( )}
); }