import { Button, Paper, TextField, Select, MenuItem, FormControl, InputLabel, } from "@mui/material"; import { observer } from "mobx-react-lite"; import { ArrowLeft, Save } from "lucide-react"; import { Loader2 } from "lucide-react"; import { useNavigate } from "react-router-dom"; import { toast } from "react-toastify"; import { stationsStore, languageStore, cityStore } from "@shared"; import { useEffect, useState } from "react"; import { LanguageSwitcher } from "@widgets"; export const StationCreatePage = observer(() => { const navigate = useNavigate(); const [isLoading, setIsLoading] = useState(false); const { language } = languageStore; const { createStationData, setCreateCommonData, createStation, setLanguageCreateStationData, } = stationsStore; const { cities, getCities } = cityStore; const [coordinates, setCoordinates] = useState(""); useEffect(() => { if ( createStationData.common.latitude !== 0 || createStationData.common.longitude !== 0 ) { setCoordinates( `${createStationData.common.latitude}, ${createStationData.common.longitude}` ); } }, [createStationData.common.latitude, createStationData.common.longitude]); const handleCreate = async () => { try { setIsLoading(true); await createStation(); toast.success("Остановка успешно создана"); navigate("/station"); } catch (error) { console.error("Error creating station:", error); toast.error("Ошибка при создании станции"); } finally { setIsLoading(false); } }; useEffect(() => { const fetchCities = async () => { await getCities("ru"); await getCities("en"); await getCities("zh"); }; fetchCities(); }, []); return (

Создание остановки

setLanguageCreateStationData(language, { name: e.target.value, }) } /> Прямой/обратный маршрут setCreateCommonData({ description: e.target.value, }) } /> {/* setLanguageCreateStationData(language, { address: e.target.value, }) } /> */} { const newValue = e.target.value; setCoordinates(newValue); const input = newValue.replace(/,/g, " ").trim(); const [latStr, lonStr] = input.split(/\s+/); const lat = parseFloat(latStr); const lon = parseFloat(lonStr); const isValidLat = !isNaN(lat); const isValidLon = !isNaN(lon); if (isValidLat && isValidLon) { setCreateCommonData({ latitude: lat, longitude: lon, }); } else { setCreateCommonData({ latitude: 0, longitude: 0, }); } }} placeholder="Введите координаты в формате: широта долгота (можно использовать запятые или пробелы)" /> Город
); });