import { useEffect, useState } from "react"; import PropTypes from "prop-types"; import { Map as MapIcon, X } from "lucide-react"; import { createBranch } from "../api/brandApi"; import GeofenceMap from "./GeofenceMap"; import ManagerDropdown from "./ManagerDropdown"; const initialForm = { name: "", address: "", phone: "", description: "", assigned_employee_id: "", geofence_location: "", geofence_polygon: null, latitude: null, longitude: null, }; export default function BranchFormModal({ isOpen, brand, onClose, onCreated }) { const [form, setForm] = useState(initialForm); const [submitting, setSubmitting] = useState(false); const [error, setError] = useState(""); const [showMap, setShowMap] = useState(false); useEffect(() => { if (!isOpen) return; setForm(initialForm); setError(""); setSubmitting(false); setShowMap(false); }, [isOpen, brand?.brand_id]); const updateField = (field, value) => { setForm((prev) => ({ ...prev, [field]: value, })); }; const handleSubmit = async (event) => { event.preventDefault(); if (!brand?.brand_id) { setError("Selected brand is missing."); return; } const branchName = form.name.trim(); if (!branchName) { setError("Branch name is required."); return; } setSubmitting(true); setError(""); try { const result = await createBranch({ brand_id: Number(brand.brand_id), name: branchName, address: form.address.trim(), phone: form.phone.trim(), description: form.description.trim(), assigned_employee_id: form.assigned_employee_id.trim() || null, geofence_location: form.geofence_location.trim(), geofence_polygon: form.geofence_polygon, latitude: form.latitude, longitude: form.longitude, }); onCreated?.(result); } catch (err) { setError(err?.message || "Failed to create branch."); } finally { setSubmitting(false); } }; if (!isOpen || !brand) return null; return (

Add Branch

Create a branch under{" "} {brand.brand_name} .

{brand.brand_code}

{error ? (
{error}
) : null}