import React, { useCallback, useState } from 'react' import { useTranslation } from 'react-i18next' import Button from '../base/button' import PipelineScreenShot from './screenshot' import Confirm from '../base/confirm' import { useConvertDatasetToPipeline } from '@/service/use-pipeline' import { useParams } from 'next/navigation' import { useInvalid } from '@/service/use-base' import { datasetDetailQueryKeyPrefix } from '@/service/knowledge/use-dataset' import Toast from '../base/toast' const Conversion = () => { const { t } = useTranslation() const { datasetId } = useParams() const [showConfirmModal, setShowConfirmModal] = useState(false) const { mutateAsync: convert, isPending } = useConvertDatasetToPipeline() const invalidDatasetDetail = useInvalid([...datasetDetailQueryKeyPrefix, datasetId]) const handleConvert = useCallback(() => { convert(datasetId as string, { onSuccess: (res) => { if (res.status === 'success') { Toast.notify({ type: 'success', message: t('datasetPipeline.conversion.successMessage'), }) setShowConfirmModal(false) invalidDatasetDetail() } else if (res.status === 'failed') { Toast.notify({ type: 'error', message: t('datasetPipeline.conversion.errorMessage'), }) } }, onError: () => { Toast.notify({ type: 'error', message: t('datasetPipeline.conversion.errorMessage'), }) }, }) }, [convert, datasetId, invalidDatasetDetail, t]) const handleShowConfirmModal = useCallback(() => { setShowConfirmModal(true) }, []) const handleCancelConversion = useCallback(() => { setShowConfirmModal(false) }, []) return (