import { useEffect, useState } from "react"; import { Link, useNavigate } from "react-router-dom"; import { api, type StyleItem } from "../../api"; import { Button, Flash, PageHeader, Section } from "../../components/ui"; import { AppSelect, AppTextField } from "../../ui"; export function StylesPage() { const navigate = useNavigate(); const [items, setItems] = useState([]); const [name, setName] = useState(""); const [from, setFrom] = useState("osm-bright"); const [error, setError] = useState(null); const reload = () => api .styles() .then(setItems) .catch((err: unknown) => setError(err instanceof Error ? err.message : "Не удалось загрузить стили")); useEffect(() => { void reload(); }, []); const presets = items.filter((item) => item.isPreset); const cloneFrom = presets.length > 0 ? from : "osm-bright"; return ( <>
setName(e.target.value)} placeholder="my-bright" /> setFrom(e.target.value)} > {(presets.length > 0 ? presets : [{ name: "osm-bright" }]).map((item) => ( ))}
{items.map((item) => ( ))}
Имя Источник Тип
{item.name} {item.createdFrom ?? "—"} {item.isPreset ? "пресет" : "мой"}
); }