import { Button, Dialog, DialogActions, DialogContent, DialogTitle, TextField, Typography, IconButton, Box, } from "@mui/material"; import { routeStore } from "@shared"; import { observer } from "mobx-react-lite"; import { ArrowLeft } from "lucide-react"; import { useParams } from "react-router-dom"; import { toast } from "react-toastify"; interface EditStationModalProps { open: boolean; onClose: () => void; } const transferFields = [ { key: "bus", label: "Автобус" }, { key: "metro_blue", label: "Метро (синяя)" }, { key: "metro_green", label: "Метро (зеленая)" }, { key: "metro_orange", label: "Метро (оранжевая)" }, { key: "metro_purple", label: "Метро (фиолетовая)" }, { key: "metro_red", label: "Метро (красная)" }, { key: "train", label: "Электричка" }, { key: "tram", label: "Трамвай" }, { key: "trolleybus", label: "Троллейбус" }, ]; export const EditStationModal = observer( ({ open, onClose }: EditStationModalProps) => { const { id: routeId } = useParams<{ id: string }>(); const { selectedStationId, setRouteStations, saveRouteStations, routeStations, } = routeStore; const handleSave = async () => { await saveRouteStations(Number(routeId), selectedStationId); toast.success("Успешно сохранено"); onClose(); }; const station = routeStations[Number(routeId)]?.find( (station: any) => station.id === selectedStationId ); return ( Маршруты / Редактировать Редактирование остановки { setRouteStations(Number(routeId), selectedStationId, { offset_x: Number(e.target.value), }); }} defaultValue={station?.offset_x} /> { setRouteStations(Number(routeId), selectedStationId, { offset_y: Number(e.target.value), }); }} defaultValue={station?.offset_y} /> Пересадки {transferFields.map(({ key, label }) => ( { setRouteStations(Number(routeId), selectedStationId, { ...station, transfers: { ...station?.transfers, [key]: e.target.value, }, }); }} /> ))} ); } );