import React, { useState } from 'react'; import { X, Upload, Calendar, Plus, Trash2 } from 'lucide-react'; export default function AddBranchModal({ isOpen, onClose, onRefresh }) { const [loading, setLoading] = useState(false); const [formData, setFormData] = useState({ name: '', location: '', manager_name: '', operational_start_date: '', payroll_from_day: 1, payroll_to_day: 28, salary_generation_day: 2, }); const [docs, setDocs] = useState([ { name: '', file: null, document_number: '', expiry_date: '', reminder_days: 30 }, ]); const handleDocChange = (index, field, value) => { const newDocs = [...docs]; newDocs[index][field] = value; setDocs(newDocs); }; const handleAddDoc = () => { setDocs([...docs, { name: '', file: null, document_number: '', expiry_date: '', reminder_days: 30 }]); }; const handleRemoveDoc = (index) => { if (docs.length > 1) { setDocs(docs.filter((_, i) => i !== index)); } else { // Just clear the first one if it's the only one const newDocs = [...docs]; newDocs[0] = { name: '', file: null, document_number: '', expiry_date: '', reminder_days: 30 }; setDocs(newDocs); } }; const handleSubmit = async (e) => { e.preventDefault(); setLoading(true); const data = new FormData(); data.append('name', formData.name); data.append('location', formData.location); data.append('manager_name', formData.manager_name); data.append('operational_start_date', formData.operational_start_date); data.append('payroll_from_day', formData.payroll_from_day); data.append('payroll_to_day', formData.payroll_to_day); data.append('salary_generation_day', formData.salary_generation_day); docs.forEach((doc, index) => { if (doc.file) { data.append(`docs[${index}][file]`, doc.file); data.append(`docs[${index}][name]`, doc.name || `Document ${index + 1}`); data.append(`docs[${index}][document_number]`, doc.document_number || ''); data.append(`docs[${index}][expiry_date]`, doc.expiry_date); data.append(`docs[${index}][reminder_days]`, doc.reminder_days || 30); } }); try { const res = await fetch('/api/branches', { method: 'POST', headers: { 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content, }, body: data, }); if (res.ok) { onRefresh(); onClose(); } else { const err = await res.json(); alert(err.message || 'Error creating branch'); } } catch (error) { alert('An error occurred. Please try again.'); } finally { setLoading(false); } }; if (!isOpen) return null; return (