|
|
|
@@ -3,15 +3,45 @@ 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(() => { |
|
|
|
setShowConfirmModal(false) |
|
|
|
// todo: Add conversion logic here |
|
|
|
}, []) |
|
|
|
convert(datasetId as string, { |
|
|
|
onSuccess: (res) => { |
|
|
|
if (res.status === 'success') { |
|
|
|
Toast.notify({ |
|
|
|
type: 'error', |
|
|
|
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) |
|
|
|
@@ -62,6 +92,8 @@ const Conversion = () => { |
|
|
|
isShow={showConfirmModal} |
|
|
|
onConfirm={handleConvert} |
|
|
|
onCancel={handleCancelConversion} |
|
|
|
isLoading={isPending} |
|
|
|
isDisabled={isPending} |
|
|
|
/> |
|
|
|
)} |
|
|
|
</div> |