"use client" import { useState, useEffect, use } from "react" import { useRouter } from "next/navigation" export default function EditTeamPage({ params }: { params: Promise<{ id: string }> }) { const router = useRouter() const { id } = use(params) const [loading, setLoading] = useState(false) const [managers, setManagers] = useState([]) const [formData, setFormData] = useState({ name: "", shiftManagerId: "" }) const [originalManagerId, setOriginalManagerId] = useState("") const [error, setError] = useState("") useEffect(() => { // Fetch managers with their teams fetch("/api/admin/managers-with-teams") .then(r => r.json()) .then(setManagers) fetch(`/api/admin/teams/${id}`) .then(r => r.json()) .then(data => { setFormData(data) setOriginalManagerId(data.shiftManagerId) }) }, [id]) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setError("") // Only check if manager changed if (formData.shiftManagerId !== originalManagerId) { // Check if selected manager already has a team const selectedManager = managers.find(m => m.id === formData.shiftManagerId) if (selectedManager && selectedManager.teams && selectedManager.teams.length > 0) { setError(`This manager is already assigned to: ${selectedManager.teams.map((t: any) => t.name).join(", ")}`) return } } setLoading(true) const response = await fetch(`/api/admin/teams/${id}`, { method: "PUT", headers: { "Content-Type": "application/json" }, body: JSON.stringify(formData) }) if (response.ok) { router.push("/admin/teams") } else { setError("Error updating team") setLoading(false) } } const handleDelete = async () => { if (!confirm("Are you sure you want to delete this team?")) return const response = await fetch(`/api/admin/teams/${id}`, { method: "DELETE" }) if (response.ok) { router.push("/admin/teams") } else { alert("Error deleting team") } } return (

Edit Team

setFormData({...formData, name: e.target.value})} className="w-full px-4 py-2 border rounded-lg" required />
{error && (
{error}
)}
) }