fix(ui): enforce canonical inspector selects

This commit is contained in:
Codex
2026-07-16 18:56:20 +03:00
parent 751d9963f1
commit a1c4ecaa93
19 changed files with 258 additions and 135 deletions
+21 -26
View File
@@ -26,6 +26,7 @@ import {
Icon,
IconButton,
Inspector,
InspectorSelectField,
MediaSourceField,
RangeControl,
SegmentedControl,
@@ -1161,19 +1162,16 @@ export function CatalogApp() {
tone: "accent" as const,
content: (
<>
<ControlRow label="Позиция">
<Select
variant="split"
label="Позиция Toolbar"
value={toolbarPlacement}
options={[
{ value: "left", label: "Слева" },
{ value: "right", label: "Справа" },
{ value: "bottom", label: "Снизу" },
]}
onChange={(value) => setToolbarPlacement(value as ToolbarPlacement)}
/>
</ControlRow>
<InspectorSelectField
label="Позиция Toolbar"
value={toolbarPlacement}
options={[
{ value: "left", label: "Слева" },
{ value: "right", label: "Справа" },
{ value: "bottom", label: "Снизу" },
]}
onChange={(value) => setToolbarPlacement(value as ToolbarPlacement)}
/>
<ControlRow label="Фон"><ColorField value={toolbarBg} onChange={setToolbarBg} /></ControlRow>
<ControlRow label="Border"><ColorField value={toolbarBorder} onChange={setToolbarBorder} /></ControlRow>
<ControlRow label="Outline"><ColorField value={toolbarOutline} onChange={setToolbarOutline} /></ControlRow>
@@ -1206,19 +1204,16 @@ export function CatalogApp() {
tone: "accent" as const,
content: (
<>
<ControlRow label="Связи по умолчанию">
<Select
variant="split"
label="Тип связи"
value={connectionType}
options={[
{ value: "spline", label: "Сплайн" },
{ value: "straight", label: "Прямая" },
{ value: "step", label: "Ступенчатая" },
]}
onChange={setConnectionType}
/>
</ControlRow>
<InspectorSelectField
label="Связи по умолчанию"
value={connectionType}
options={[
{ value: "spline", label: "Сплайн" },
{ value: "straight", label: "Прямая" },
{ value: "step", label: "Ступенчатая" },
]}
onChange={setConnectionType}
/>
<Checker checked={usePortColors} label="Использовать цвет портов" onChange={setUsePortColors} />
<ControlRow label="Цвет связей по умолчанию"><ColorField value={connectionColor} onChange={setConnectionColor} /></ControlRow>
<ControlRow label="Применить ко всем"><Button variant="primary" shape="pill" width="full">Применить</Button></ControlRow>
+8 -10
View File
@@ -1,5 +1,5 @@
import { forwardRef, lazy, Suspense, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState, type CSSProperties, type PointerEvent } from "react";
import { Button, Checker, ColorField, ControlRow, GlassSurface, Icon, IconButton, Inspector, RangeControl, Select, Window } from "@nodedc/ui-react";
import { Button, Checker, ColorField, ControlRow, GlassSurface, Icon, IconButton, Inspector, InspectorSelectField, RangeControl, Window } from "@nodedc/ui-react";
import type { SelectOption } from "@nodedc/ui-react";
import type {
CameraSpiralState,
@@ -715,15 +715,13 @@ export const MapFixturePreview = forwardRef<MapFixturePreviewHandle, {
<Checker checked={animationModeEnabled} label="Режим анимации" onChange={setAnimationMode} />
{animationModeEnabled ? <>
<small className="catalog-map-inspector__note">Стартовая точка берётся из текущей позиции камеры. Камера смотрит почти в надир, а маршрут ждёт текущие tiles перед продолжением. Движение идёт по региональной геодезической спирали WGS84 до выбранного радиуса.</small>
<ControlRow label="Профиль покрытия">
<Select
value={spiralPresetId}
options={spiralPresetOptions}
label="Профиль покрытия камеры"
disabled={spiralRunning}
onChange={selectSpiralPreset}
/>
</ControlRow>
<InspectorSelectField
label="Профиль покрытия"
value={spiralPresetId}
options={spiralPresetOptions}
disabled={spiralRunning}
onChange={selectSpiralPreset}
/>
<small className="catalog-map-inspector__note">У текущего OSM Buildings подтверждено {OSM_BUILDINGS_OBSERVED_BAND_COUNT} иерархических bands. Десять профилей управляют высотой и покрытием; фактический LOD Cesium выбирает по SSE, viewport и расстоянию.</small>
<ControlRow label="Слои прохода"><small>Imagery · Terrain · OSM Buildings</small></ControlRow>
<RangeControl