import { useCallback, } from 'react' import { RiHistoryLine } from '@remixicon/react' import { useTranslation } from 'react-i18next' import { useStore, useWorkflowStore, } from '../store' import { WorkflowVersion, } from '../types' import { useNodesSyncDraft, useWorkflowRun, } from '../hooks' import Toast from '../../base/toast' import RestoringTitle from './restoring-title' import Button from '@/app/components/base/button' import { useStore as useAppStore } from '@/app/components/app/store' import { useInvalidAllLastRun } from '@/service/use-workflow' export type HeaderInRestoringProps = { onRestoreSettled?: () => void } const HeaderInRestoring = ({ onRestoreSettled, }: HeaderInRestoringProps) => { const { t } = useTranslation() const workflowStore = useWorkflowStore() const appDetail = useAppStore.getState().appDetail const invalidAllLastRun = useInvalidAllLastRun(appDetail!.id) const { deleteAllInspectVars, } = workflowStore.getState() const currentVersion = useStore(s => s.currentVersion) const setShowWorkflowVersionHistoryPanel = useStore(s => s.setShowWorkflowVersionHistoryPanel) const { handleLoadBackupDraft, } = useWorkflowRun() const { handleSyncWorkflowDraft } = useNodesSyncDraft() const handleCancelRestore = useCallback(() => { handleLoadBackupDraft() workflowStore.setState({ isRestoring: false }) setShowWorkflowVersionHistoryPanel(false) }, [workflowStore, handleLoadBackupDraft, setShowWorkflowVersionHistoryPanel]) const handleRestore = useCallback(() => { setShowWorkflowVersionHistoryPanel(false) workflowStore.setState({ isRestoring: false }) workflowStore.setState({ backupDraft: undefined }) handleSyncWorkflowDraft(true, false, { onSuccess: () => { Toast.notify({ type: 'success', message: t('workflow.versionHistory.action.restoreSuccess'), }) }, onError: () => { Toast.notify({ type: 'error', message: t('workflow.versionHistory.action.restoreFailure'), }) }, onSettled: () => { onRestoreSettled?.() }, }) deleteAllInspectVars() invalidAllLastRun() }, [setShowWorkflowVersionHistoryPanel, workflowStore, handleSyncWorkflowDraft, deleteAllInspectVars, invalidAllLastRun, t, onRestoreSettled]) return ( <>
) } export default HeaderInRestoring