import React, { useState } from 'react';
export default function AdminPanel({
gameState,
airports = [],
activeAirport,
activeAirportConfig,
onSelectAirport,
sendWSMessage,
draftingMode,
setDraftingMode,
airportName,
setAirportName,
isRunwayBidirectional,
setIsRunwayBidirectional,
starDraft,
setStarDraft,
sidDraft,
setSidDraft
}) {
const [editingWaypoint, setEditingWaypoint] = useState(null); // {gate, runway, index, wp}
const [editingRunway, setEditingRunway] = useState(null); // {rw}
const [runwayLabel, setRunwayLabel] = useState("");
const [spawnFields, setSpawnFields] = useState({
callsign: `UA${Math.floor(Math.random() * 900) + 100}`,
type: "B738",
altitude: 10000,
speed: 250,
gate: "N",
isDeparture: false,
runwayId: "",
terminalGateId: ""
});
const handleSpawn = () => {
sendWSMessage('spawn', {
...spawnFields,
is_departure: spawnFields.isDeparture,
runway_id: spawnFields.runwayId,
terminal_gate_id: spawnFields.terminalGateId,
altitude: parseInt(spawnFields.altitude || 0),
speed: parseInt(spawnFields.speed || 0)
});
setSpawnFields(prev => ({
...prev,
callsign: `UA${Math.floor(Math.random() * 900) + 100}`
}));
};
const renderEditModal = () => {
if (!editingWaypoint && !editingRunway) return null;
const isWaypoint = !!editingWaypoint;
const title = isWaypoint ? `Edit Waypoint: ${editingWaypoint.wp.name}` : `Edit Runway: ${editingRunway.rw.id}`;
const handleSave = (e) => {
e.preventDefault();
const formData = new FormData(e.target);
if (isWaypoint) {
sendWSMessage('update_waypoint', {
airport_code: activeAirport.airport_code,
waypoint_id: editingWaypoint.wp.id,
name: formData.get('name'),
target_alt: parseInt(formData.get('alt')),
target_speed: parseInt(formData.get('speed'))
});
setEditingWaypoint(null);
} else {
sendWSMessage('update_runway', {
airport_code: activeAirport.airport_code,
runway_id: editingRunway.rw.id,
new_id: formData.get('id'),
heading: parseFloat(formData.get('heading'))
});
setEditingRunway(null);
}
};
return (
);
};
return (
);
}