import { Check, CheckCircle, Clock, Loader2 } from 'lucide-react'; import { toast } from 'sonner'; import { onboardingService } from '../../../services/onboarding.service'; import { Button } from '../../ui/button'; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '../../ui/dialog'; import { Input } from '../../ui/input'; import { Label } from '../../ui/label'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../../ui/select'; import { Textarea } from '../../ui/textarea'; interface ApplicationDetailsActionModalsProps { application: any; fetchApplication: () => void; showApproveModal: boolean; setShowApproveModal: (value: boolean) => void; approvalRemark: string; setApprovalRemark: (value: string) => void; setApprovalFile: (file: File | null) => void; isApproving: boolean; handleApprove: () => void; showOnboardModal: boolean; setShowOnboardModal: (value: boolean) => void; isOnboarding: boolean; setIsOnboarding: (value: boolean) => void; showRejectModal: boolean; setShowRejectModal: (value: boolean) => void; rejectionReason: string; setRejectionReason: (value: string) => void; isRejecting: boolean; handleReject: () => void; showScheduleModal: boolean; setShowScheduleModal: (value: boolean) => void; interviewType: string; setInterviewType: (value: string) => void; interviewMode: string; setInterviewMode: (value: string) => void; interviewDate: string; setInterviewDate: (value: string) => void; meetingLink: string; setMeetingLink: (value: string) => void; location: string; setLocation: (value: string) => void; isInterviewCompleted: (level: number) => boolean; isInterviewActive: (level: number) => boolean; users: any[]; selectedInterviewerId: string; setSelectedInterviewerId: (value: string) => void; handleAddInterviewer: () => void; scheduledInterviewParticipants: any[]; handleRemoveInterviewer: (id: string) => void; isScheduling: boolean; handleScheduleInterview: () => void; showAssignArchitectureModal: boolean; setShowAssignArchitectureModal: (value: boolean) => void; architectureLeadId: string; setArchitectureLeadId: (value: string) => void; isAssigningArchitecture: boolean; handleAssignArchitecture: () => void; showArchitectureStatusModal: boolean; setShowArchitectureStatusModal: (value: boolean) => void; architectureStatus: string; setArchitectureStatus: (value: string) => void; architectureRemarks: string; setArchitectureRemarks: (value: string) => void; isUpdatingArchitecture: boolean; handleUpdateArchitectureStatus: () => void; } export function ApplicationDetailsActionModals(props: ApplicationDetailsActionModalsProps) { const { application, fetchApplication, showApproveModal, setShowApproveModal, approvalRemark, setApprovalRemark, setApprovalFile, isApproving, handleApprove, showOnboardModal, setShowOnboardModal, isOnboarding, setIsOnboarding, showRejectModal, setShowRejectModal, rejectionReason, setRejectionReason, isRejecting, handleReject, showScheduleModal, setShowScheduleModal, interviewType, setInterviewType, interviewMode, setInterviewMode, interviewDate, setInterviewDate, meetingLink, setMeetingLink, location, setLocation, isInterviewCompleted, isInterviewActive, users, selectedInterviewerId, setSelectedInterviewerId, handleAddInterviewer, scheduledInterviewParticipants, handleRemoveInterviewer, isScheduling, handleScheduleInterview, showAssignArchitectureModal, setShowAssignArchitectureModal, architectureLeadId, setArchitectureLeadId, isAssigningArchitecture, handleAssignArchitecture, showArchitectureStatusModal, setShowArchitectureStatusModal, architectureStatus, setArchitectureStatus, architectureRemarks, setArchitectureRemarks, isUpdatingArchitecture, handleUpdateArchitectureStatus, } = props; return ( <> Approve Application Provide approval remarks and optionally attach supporting documents.