57 lines
1.4 KiB
TypeScript
57 lines
1.4 KiB
TypeScript
import React from 'react';
|
||
import {
|
||
Dialog,
|
||
DialogContent,
|
||
DialogHeader,
|
||
DialogTitle,
|
||
DialogFooter,
|
||
DialogDescription,
|
||
} from '@/components/ui/dialog';
|
||
import { Button } from '@/components/ui/button';
|
||
import { CheckCircle2 } from 'lucide-react';
|
||
import type { WorkflowDefinition } from '../types';
|
||
|
||
interface DeployDialogProps {
|
||
open: boolean;
|
||
record: WorkflowDefinition | null;
|
||
onOpenChange: (open: boolean) => void;
|
||
onConfirm: () => Promise<void>;
|
||
}
|
||
|
||
/**
|
||
* 发布确认对话框
|
||
*/
|
||
const DeployDialog: React.FC<DeployDialogProps> = ({
|
||
open,
|
||
record,
|
||
onOpenChange,
|
||
onConfirm,
|
||
}) => {
|
||
if (!record) return null;
|
||
|
||
return (
|
||
<Dialog open={open} onOpenChange={onOpenChange}>
|
||
<DialogContent>
|
||
<DialogHeader>
|
||
<DialogTitle className="flex items-center gap-2 text-green-600">
|
||
<CheckCircle2 className="h-5 w-5" /> 确认发布工作流?
|
||
</DialogTitle>
|
||
<DialogDescription>
|
||
您确定要发布工作流 "<span className="font-semibold text-foreground">{record.name}</span>" 吗?
|
||
发布后将可以启动执行。
|
||
</DialogDescription>
|
||
</DialogHeader>
|
||
<DialogFooter>
|
||
<Button variant="outline" onClick={() => onOpenChange(false)}>
|
||
取消
|
||
</Button>
|
||
<Button onClick={onConfirm}>确认发布</Button>
|
||
</DialogFooter>
|
||
</DialogContent>
|
||
</Dialog>
|
||
);
|
||
};
|
||
|
||
export default DeployDialog;
|
||
|