import React, { useState } from "react"; import { FaTimes, FaSave, FaPlus } from "react-icons/fa"; import { PmWorkCenter, MaintenancePlanTypeEnum, FrequencyUnitEnum, PmMaintenancePlan, } from "../../../types/pm"; import { PriorityEnum } from "../../../types/common"; interface MaintenancePlanModalProps { isOpen: boolean; onClose: () => void; onSave: (planData: PmMaintenancePlan[]) => void; selectedWorkCenters: PmWorkCenter[]; } const MaintenancePlanModal: React.FC = ({ isOpen, onClose, onSave, selectedWorkCenters, }) => { const [planData, setPlanData] = useState({ planType: MaintenancePlanTypeEnum.Preventive, description: "", frequency: 1, frequencyUnit: FrequencyUnitEnum.Months, estimatedDuration: 60, priority: PriorityEnum.Normal, instructions: "", requiredSkills: [] as string[], nextDue: new Date(), }); const [newSkill, setNewSkill] = useState(""); if (!isOpen) return null; const handleInputChange = ( e: React.ChangeEvent< HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement > ) => { const { name, value, type } = e.target; setPlanData((prev) => ({ ...prev, [name]: type === "date" ? new Date(value) : type === "number" ? Number(value) : value, })); }; const addSkill = () => { if (newSkill.trim() && !planData.requiredSkills.includes(newSkill.trim())) { setPlanData((prev) => ({ ...prev, requiredSkills: [...prev.requiredSkills, newSkill.trim()], })); setNewSkill(""); } }; const removeSkill = (skillToRemove: string) => { setPlanData((prev) => ({ ...prev, requiredSkills: prev.requiredSkills.filter( (skill) => skill !== skillToRemove ), })); }; const handleSave = () => { const plansToCreate = selectedWorkCenters.map((workCenter) => ({ id: `MP${Date.now()}-${workCenter.id}`, planCode: `MP-${workCenter.code}-${Date.now()}`, workCenterId: workCenter.id, workCenter: workCenter, ...planData, requiredMaterials: [], isActive: true, creationTime: new Date(), lastModificationTime: new Date(), })); onSave(plansToCreate); onClose(); }; return (
{/* Header */}

Bakım Planı Oluştur ({selectedWorkCenters.length} iş merkezi)

{/* Content */}
{/* Selected Work Center List */}

Seçili İş Merkezleri

{selectedWorkCenters.map((workCenter) => (
{workCenter.code} - {workCenter.name} {workCenter.location}
))}
{/* Plan Details */}

Plan Detayları

{/* Required Skills */}
setNewSkill(e.target.value)} placeholder="Yetenek ekle..." className="flex-1 px-3 py-1.5 text-sm border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" onKeyPress={(e) => e.key === "Enter" && addSkill()} />
{planData.requiredSkills.map((skill, index) => ( {skill} ))}
{/* Footer */}
); }; export default MaintenancePlanModal;