'use client'; // File: components/review-task/VetoOverrideDialog.tsx // PM Veto Override dialog — บังคับผ่าน RFA แม้มี Code 3 (T072.5) import React, { useState } from 'react'; import { AlertTriangle } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Textarea } from '@/components/ui/textarea'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from '@/components/ui/dialog'; interface VetoOverrideDialogProps { rfaNumber: string; onConfirm: (reason: string) => void; isLoading?: boolean; } const MIN_REASON_LENGTH = 10; export function VetoOverrideDialog({ rfaNumber, onConfirm, isLoading }: VetoOverrideDialogProps) { const [open, setOpen] = useState(false); const [reason, setReason] = useState(''); const isValid = reason.trim().length >= MIN_REASON_LENGTH; const handleConfirm = () => { if (!isValid) return; onConfirm(reason.trim()); setOpen(false); setReason(''); }; const handleOpenChange = (next: boolean) => { if (!next) setReason(''); setOpen(next); }; return ( PM Veto Override Override the Code 3 rejection for {rfaNumber} and force-approve. This action will be permanently logged in the audit trail.