From cdb96dfb8b7084498d62e52cd90a56787c851dbe Mon Sep 17 00:00:00 2001 From: itoshi Date: Fri, 10 Oct 2025 08:40:39 +0300 Subject: [PATCH] fix: Fix errors --- src/pages/Article/ArticleListPage/index.tsx | 1 + src/pages/Carrier/CarrierListPage/index.tsx | 1 + src/pages/City/CityListPage/index.tsx | 1 + src/pages/Country/CountryListPage/index.tsx | 1 + src/pages/MapPage/index.tsx | 121 +++++++++++++++++- src/pages/Media/MediaListPage/index.tsx | 1 + src/pages/Route/RouteListPage/index.tsx | 1 + .../Route/route-preview/InfiniteCanvas.tsx | 6 +- .../Route/route-preview/RightSidebar.tsx | 1 - src/pages/Route/route-preview/index.tsx | 2 +- src/pages/Sight/SightListPage/index.tsx | 1 + .../Snapshot/SnapshotCreatePage/index.tsx | 13 +- src/pages/Snapshot/SnapshotListPage/index.tsx | 1 + src/pages/Station/StationListPage/index.tsx | 9 +- src/pages/User/UserListPage/index.tsx | 1 + src/pages/Vehicle/VehicleListPage/index.tsx | 1 + tsconfig.tsbuildinfo | 2 +- 17 files changed, 139 insertions(+), 25 deletions(-) diff --git a/src/pages/Article/ArticleListPage/index.tsx b/src/pages/Article/ArticleListPage/index.tsx index b0b8aea..c08f73d 100644 --- a/src/pages/Article/ArticleListPage/index.tsx +++ b/src/pages/Article/ArticleListPage/index.tsx @@ -46,6 +46,7 @@ export const ArticleListPage = observer(() => { { field: "actions", headerName: "Действия", + sortable: false, renderCell: (params: GridRenderCellParams) => { return ( diff --git a/src/pages/Carrier/CarrierListPage/index.tsx b/src/pages/Carrier/CarrierListPage/index.tsx index 6802a35..a20c89a 100644 --- a/src/pages/Carrier/CarrierListPage/index.tsx +++ b/src/pages/Carrier/CarrierListPage/index.tsx @@ -88,6 +88,7 @@ export const CarrierListPage = observer(() => { headerName: "Действия", headerAlign: "center", width: 200, + sortable: false, renderCell: (params: GridRenderCellParams) => { return ( diff --git a/src/pages/City/CityListPage/index.tsx b/src/pages/City/CityListPage/index.tsx index 64315bd..869ad75 100644 --- a/src/pages/City/CityListPage/index.tsx +++ b/src/pages/City/CityListPage/index.tsx @@ -93,6 +93,7 @@ export const CityListPage = observer(() => { align: "center", headerAlign: "center", width: 200, + sortable: false, renderCell: (params: GridRenderCellParams) => { return (
diff --git a/src/pages/Country/CountryListPage/index.tsx b/src/pages/Country/CountryListPage/index.tsx index 4b3f0af..b486c2f 100644 --- a/src/pages/Country/CountryListPage/index.tsx +++ b/src/pages/Country/CountryListPage/index.tsx @@ -50,6 +50,7 @@ export const CountryListPage = observer(() => { align: "center", headerAlign: "center", width: 200, + sortable: false, renderCell: (params: GridRenderCellParams) => { return (
diff --git a/src/pages/MapPage/index.tsx b/src/pages/MapPage/index.tsx index 3577995..34603d9 100644 --- a/src/pages/MapPage/index.tsx +++ b/src/pages/MapPage/index.tsx @@ -132,6 +132,7 @@ interface ApiStation { longitude: number; city_id: number; created_at?: string; + updated_at?: string; } interface ApiSight { @@ -142,9 +143,16 @@ interface ApiSight { longitude: number; city_id: number; created_at?: string; + updated_at?: string; } -export type SortType = "name_asc" | "name_desc" | "date_asc" | "date_desc"; +export type SortType = + | "name_asc" + | "name_desc" + | "created_asc" + | "created_desc" + | "updated_asc" + | "updated_desc"; class MapStore { constructor() { @@ -179,7 +187,7 @@ class MapStore { return sorted.sort((a, b) => a.name.localeCompare(b.name)); case "name_desc": return sorted.sort((a, b) => b.name.localeCompare(a.name)); - case "date_asc": + case "created_asc": return sorted.sort((a, b) => { if ( "created_at" in a && @@ -195,7 +203,7 @@ class MapStore { // Фоллбэк: сортировка по ID, если дата недоступна return a.id - b.id; }); - case "date_desc": + case "created_desc": return sorted.sort((a, b) => { if ( "created_at" in a && @@ -211,6 +219,32 @@ class MapStore { // Фоллбэк: сортировка по ID, если дата недоступна return b.id - a.id; }); + case "updated_asc": + return sorted.sort((a, b) => { + const aUpdated = + ("updated_at" in a && a.updated_at) || + ("created_at" in a && a.created_at); + const bUpdated = + ("updated_at" in b && b.updated_at) || + ("created_at" in b && b.created_at); + if (typeof aUpdated === "string" && typeof bUpdated === "string") { + return new Date(aUpdated).getTime() - new Date(bUpdated).getTime(); + } + return a.id - b.id; + }); + case "updated_desc": + return sorted.sort((a, b) => { + const aUpdated = + ("updated_at" in a && a.updated_at) || + ("created_at" in a && a.created_at); + const bUpdated = + ("updated_at" in b && b.updated_at) || + ("created_at" in b && b.created_at); + if (typeof aUpdated === "string" && typeof bUpdated === "string") { + return new Date(bUpdated).getTime() - new Date(aUpdated).getTime(); + } + return b.id - a.id; + }); default: return sorted; } @@ -626,6 +660,7 @@ class MapService { private selectedIds: Set = new Set(); private onSelectionChange: ((ids: Set) => void) | null = null; + private isCreating: boolean = false; // Styles private defaultStyle: Style; @@ -1397,6 +1432,21 @@ class MapService { const feature = event.feature as Feature; const fType = this.currentDrawingFeatureType; if (!fType) return; + + // Проверяем, не идет ли уже процесс создания + if (this.isCreating) { + toast.warning("Дождитесь завершения создания предыдущего объекта."); + // Удаляем созданный объект из источника + const sourceForDrawing = + type === "Point" ? this.pointSource : this.lineSource; + setTimeout(() => { + if (sourceForDrawing.hasFeature(feature as any)) { + sourceForDrawing.removeFeature(feature as any); + } + }, 0); + return; + } + feature.set("featureType", fType); let resourceName: string; @@ -1483,6 +1533,13 @@ class MapService { public finishDrawing(): void { if (!this.currentInteraction) return; + + // Блокируем завершение рисования, если идет процесс создания + if (this.isCreating) { + toast.warning("Дождитесь завершения создания предыдущего объекта."); + return; + } + try { this.currentInteraction.finishDrawing(); } catch (e) { @@ -1830,6 +1887,22 @@ class MapService { const featureType = feature.get("featureType") as FeatureType; if (!featureType || !this.map) return; + // Проверяем, не идет ли уже процесс создания + if (this.isCreating) { + toast.warning("Дождитесь завершения создания предыдущего объекта."); + // Удаляем незавершенный объект с карты + if (feature.getGeometry()?.getType() === "LineString") { + if (this.lineSource.hasFeature(feature as Feature)) + this.lineSource.removeFeature(feature as Feature); + } else { + if (this.pointSource.hasFeature(feature as Feature)) + this.pointSource.removeFeature(feature as Feature); + } + return; + } + + this.isCreating = true; + const geoJSONFormat = new GeoJSON({ dataProjection: "EPSG:4326", featureProjection: this.map.getView().getProjection().getCode(), @@ -1890,6 +1963,8 @@ class MapService { if (this.pointSource.hasFeature(feature as Feature)) this.pointSource.removeFeature(feature as Feature); } + } finally { + this.isCreating = false; } } } @@ -2153,7 +2228,7 @@ const MapSightbar: React.FC = observer( (a.get("name") as string) || "" ) ); - case "date_asc": + case "created_asc": return sorted.sort((a, b) => { const aDate = a.get("created_at") ? new Date(a.get("created_at")) @@ -2163,7 +2238,7 @@ const MapSightbar: React.FC = observer( : new Date(0); return aDate.getTime() - bDate.getTime(); }); - case "date_desc": + case "created_desc": return sorted.sort((a, b) => { const aDate = a.get("created_at") ? new Date(a.get("created_at")) @@ -2173,6 +2248,34 @@ const MapSightbar: React.FC = observer( : new Date(0); return bDate.getTime() - aDate.getTime(); }); + case "updated_asc": + return sorted.sort((a, b) => { + const aDate = a.get("updated_at") + ? new Date(a.get("updated_at")) + : a.get("created_at") + ? new Date(a.get("created_at")) + : new Date(0); + const bDate = b.get("updated_at") + ? new Date(b.get("updated_at")) + : b.get("created_at") + ? new Date(b.get("created_at")) + : new Date(0); + return aDate.getTime() - bDate.getTime(); + }); + case "updated_desc": + return sorted.sort((a, b) => { + const aDate = a.get("updated_at") + ? new Date(a.get("updated_at")) + : a.get("created_at") + ? new Date(a.get("created_at")) + : new Date(0); + const bDate = b.get("updated_at") + ? new Date(b.get("updated_at")) + : b.get("created_at") + ? new Date(b.get("created_at")) + : new Date(0); + return bDate.getTime() - aDate.getTime(); + }); default: return sorted; } @@ -2305,6 +2408,10 @@ const MapSightbar: React.FC = observer( > + + + +
), @@ -2333,6 +2440,10 @@ const MapSightbar: React.FC = observer( > + + + +
), diff --git a/src/pages/Media/MediaListPage/index.tsx b/src/pages/Media/MediaListPage/index.tsx index f99cd17..51916ac 100644 --- a/src/pages/Media/MediaListPage/index.tsx +++ b/src/pages/Media/MediaListPage/index.tsx @@ -69,6 +69,7 @@ export const MediaListPage = observer(() => { width: 200, align: "center", headerAlign: "center", + sortable: false, renderCell: (params: GridRenderCellParams) => { return ( diff --git a/src/pages/Route/RouteListPage/index.tsx b/src/pages/Route/RouteListPage/index.tsx index a58ccc3..76257bd 100644 --- a/src/pages/Route/RouteListPage/index.tsx +++ b/src/pages/Route/RouteListPage/index.tsx @@ -90,6 +90,7 @@ export const RouteListPage = observer(() => { width: 250, align: "center", headerAlign: "center", + sortable: false, renderCell: (params: GridRenderCellParams) => { return (
diff --git a/src/pages/Route/route-preview/InfiniteCanvas.tsx b/src/pages/Route/route-preview/InfiniteCanvas.tsx index f192c36..7925d12 100644 --- a/src/pages/Route/route-preview/InfiniteCanvas.tsx +++ b/src/pages/Route/route-preview/InfiniteCanvas.tsx @@ -54,16 +54,16 @@ export function InfiniteCanvas({ const lastOriginalRotation = useRef(undefined); useEffect(() => { - const canvas = applicationRef?.app?.canvas; - if (!canvas) return; + if (!applicationRef?.app?.canvas) return; + const canvas = applicationRef.app.canvas; const canvasRect = canvas.getBoundingClientRect(); const canvasLeft = canvasRect.left; const canvasTop = canvasRect.top; const centerX = window.innerWidth / 2 - canvasLeft; const centerY = window.innerHeight / 2 - canvasTop; setScreenCenter({ x: centerX, y: centerY }); - }, [applicationRef?.app?.canvas, setScreenCenter]); + }, [applicationRef?.app, setScreenCenter]); const handlePointerDown = (e: FederatedMouseEvent) => { setIsPointerDown(true); diff --git a/src/pages/Route/route-preview/RightSidebar.tsx b/src/pages/Route/route-preview/RightSidebar.tsx index 727e618..54162b1 100644 --- a/src/pages/Route/route-preview/RightSidebar.tsx +++ b/src/pages/Route/route-preview/RightSidebar.tsx @@ -101,7 +101,6 @@ export function RightSidebar() { } if (!routeData) { - console.error("routeData is null"); return null; } diff --git a/src/pages/Route/route-preview/index.tsx b/src/pages/Route/route-preview/index.tsx index 83a85a5..395b1d0 100644 --- a/src/pages/Route/route-preview/index.tsx +++ b/src/pages/Route/route-preview/index.tsx @@ -166,7 +166,7 @@ export const RouteMap = observer(() => { return (
- + {stationData[language].map((obj, index) => ( diff --git a/src/pages/Sight/SightListPage/index.tsx b/src/pages/Sight/SightListPage/index.tsx index 979ea8c..00f696f 100644 --- a/src/pages/Sight/SightListPage/index.tsx +++ b/src/pages/Sight/SightListPage/index.tsx @@ -73,6 +73,7 @@ export const SightListPage = observer(() => { headerName: "Действия", align: "center", headerAlign: "center", + sortable: false, renderCell: (params: GridRenderCellParams) => { return ( diff --git a/src/pages/Snapshot/SnapshotCreatePage/index.tsx b/src/pages/Snapshot/SnapshotCreatePage/index.tsx index 971a2de..f6a134e 100644 --- a/src/pages/Snapshot/SnapshotCreatePage/index.tsx +++ b/src/pages/Snapshot/SnapshotCreatePage/index.tsx @@ -2,23 +2,16 @@ import { Button, TextField } from "@mui/material"; import { snapshotStore } from "@shared"; import { observer } from "mobx-react-lite"; import { ArrowLeft, Loader2, Save } from "lucide-react"; -import { useEffect, useState } from "react"; -import { useNavigate, useParams } from "react-router-dom"; +import { useState } from "react"; +import { useNavigate } from "react-router-dom"; import { toast } from "react-toastify"; export const SnapshotCreatePage = observer(() => { - const { id } = useParams(); - const { getSnapshot, createSnapshot } = snapshotStore; + const { createSnapshot } = snapshotStore; const navigate = useNavigate(); const [name, setName] = useState(""); const [isLoading, setIsLoading] = useState(false); - useEffect(() => { - (async () => { - await getSnapshot(id as string); - })(); - }, [id]); - return (
diff --git a/src/pages/Snapshot/SnapshotListPage/index.tsx b/src/pages/Snapshot/SnapshotListPage/index.tsx index ed44b30..39b22bb 100644 --- a/src/pages/Snapshot/SnapshotListPage/index.tsx +++ b/src/pages/Snapshot/SnapshotListPage/index.tsx @@ -43,6 +43,7 @@ export const SnapshotListPage = observer(() => { headerName: "Действия", width: 300, headerAlign: "center", + sortable: false, renderCell: (params: GridRenderCellParams) => { return ( diff --git a/src/pages/Station/StationListPage/index.tsx b/src/pages/Station/StationListPage/index.tsx index 399a9eb..bbd2374 100644 --- a/src/pages/Station/StationListPage/index.tsx +++ b/src/pages/Station/StationListPage/index.tsx @@ -6,7 +6,7 @@ import { selectedCityStore, cityStore, } from "@shared"; -import { useEffect, useState, useMemo } from "react"; +import { useEffect, useState } from "react"; import { observer } from "mobx-react-lite"; import { Eye, Pencil, Trash2, Minus } from "lucide-react"; import { useNavigate } from "react-router-dom"; @@ -91,6 +91,7 @@ export const StationListPage = observer(() => { width: 140, align: "center", headerAlign: "center", + sortable: false, renderCell: (params: GridRenderCellParams) => { return ( @@ -116,7 +117,7 @@ export const StationListPage = observer(() => { ]; // Фильтрация станций по выбранному городу - const filteredStations = useMemo(() => { + const filteredStations = () => { const { selectedCityId } = selectedCityStore; if (!selectedCityId) { return stationLists[language].data; @@ -124,9 +125,9 @@ export const StationListPage = observer(() => { return stationLists[language].data.filter( (station: any) => station.city_id === selectedCityId ); - }, [stationLists, language, selectedCityStore.selectedCityId]); + }; - const rows = filteredStations.map((station: any) => ({ + const rows = filteredStations().map((station: any) => ({ id: station.id, name: station.name, system_name: station.system_name, diff --git a/src/pages/User/UserListPage/index.tsx b/src/pages/User/UserListPage/index.tsx index a4ef2e8..ae87cd8 100644 --- a/src/pages/User/UserListPage/index.tsx +++ b/src/pages/User/UserListPage/index.tsx @@ -83,6 +83,7 @@ export const UserListPage = observer(() => { flex: 1, align: "center", headerAlign: "center", + sortable: false, renderCell: (params: GridRenderCellParams) => { return ( diff --git a/src/pages/Vehicle/VehicleListPage/index.tsx b/src/pages/Vehicle/VehicleListPage/index.tsx index d6333bf..5b23808 100644 --- a/src/pages/Vehicle/VehicleListPage/index.tsx +++ b/src/pages/Vehicle/VehicleListPage/index.tsx @@ -102,6 +102,7 @@ export const VehicleListPage = observer(() => { width: 200, align: "center", headerAlign: "center", + sortable: false, renderCell: (params: GridRenderCellParams) => { return ( diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo index 818594b..cb8efe7 100644 --- a/tsconfig.tsbuildinfo +++ b/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"root":["./src/main.tsx","./src/vite-env.d.ts","./src/app/globalerrorboundary.tsx","./src/app/index.tsx","./src/app/router/index.tsx","./src/entities/index.ts","./src/entities/navigation/index.ts","./src/entities/navigation/model/index.ts","./src/entities/navigation/ui/index.tsx","./src/features/index.ts","./src/features/navigation/index.ts","./src/features/navigation/ui/index.tsx","./src/pages/index.ts","./src/pages/article/index.ts","./src/pages/article/articlecreatepage/index.tsx","./src/pages/article/articleeditpage/index.tsx","./src/pages/article/articlelistpage/index.tsx","./src/pages/article/articlepreviewpage/previewleftwidget.tsx","./src/pages/article/articlepreviewpage/previewrightwidget.tsx","./src/pages/article/articlepreviewpage/index.tsx","./src/pages/carrier/index.ts","./src/pages/carrier/carriercreatepage/index.tsx","./src/pages/carrier/carriereditpage/index.tsx","./src/pages/carrier/carrierlistpage/index.tsx","./src/pages/city/index.ts","./src/pages/city/citycreatepage/index.tsx","./src/pages/city/cityeditpage/index.tsx","./src/pages/city/citylistpage/index.tsx","./src/pages/city/citypreviewpage/index.tsx","./src/pages/country/index.ts","./src/pages/country/countryaddpage/index.tsx","./src/pages/country/countrycreatepage/index.tsx","./src/pages/country/countryeditpage/index.tsx","./src/pages/country/countrylistpage/index.tsx","./src/pages/country/countrypreviewpage/index.tsx","./src/pages/createsightpage/index.tsx","./src/pages/devicespage/index.tsx","./src/pages/editsightpage/index.tsx","./src/pages/loginpage/index.tsx","./src/pages/mainpage/index.tsx","./src/pages/mappage/index.tsx","./src/pages/mappage/mapstore.ts","./src/pages/media/index.ts","./src/pages/media/mediacreatepage/index.tsx","./src/pages/media/mediaeditpage/index.tsx","./src/pages/media/medialistpage/index.tsx","./src/pages/media/mediapreviewpage/index.tsx","./src/pages/route/linekedstations.tsx","./src/pages/route/index.ts","./src/pages/route/routecreatepage/index.tsx","./src/pages/route/routeeditpage/index.tsx","./src/pages/route/routelistpage/index.tsx","./src/pages/route/route-preview/constants.ts","./src/pages/route/route-preview/infinitecanvas.tsx","./src/pages/route/route-preview/leftsidebar.tsx","./src/pages/route/route-preview/mapdatacontext.tsx","./src/pages/route/route-preview/rightsidebar.tsx","./src/pages/route/route-preview/sight.tsx","./src/pages/route/route-preview/sightinfowidget.tsx","./src/pages/route/route-preview/station.tsx","./src/pages/route/route-preview/transformcontext.tsx","./src/pages/route/route-preview/travelpath.tsx","./src/pages/route/route-preview/widgets.tsx","./src/pages/route/route-preview/index.tsx","./src/pages/route/route-preview/types.ts","./src/pages/route/route-preview/utils.ts","./src/pages/sight/index.ts","./src/pages/sight/sightlistpage/index.tsx","./src/pages/sightpage/index.tsx","./src/pages/snapshot/index.ts","./src/pages/snapshot/snapshotcreatepage/index.tsx","./src/pages/snapshot/snapshotlistpage/index.tsx","./src/pages/station/linkedsights.tsx","./src/pages/station/index.ts","./src/pages/station/stationcreatepage/index.tsx","./src/pages/station/stationeditpage/index.tsx","./src/pages/station/stationlistpage/index.tsx","./src/pages/station/stationpreviewpage/index.tsx","./src/pages/user/index.ts","./src/pages/user/usercreatepage/index.tsx","./src/pages/user/usereditpage/index.tsx","./src/pages/user/userlistpage/index.tsx","./src/pages/vehicle/index.ts","./src/pages/vehicle/vehiclecreatepage/index.tsx","./src/pages/vehicle/vehicleeditpage/index.tsx","./src/pages/vehicle/vehiclelistpage/index.tsx","./src/pages/vehicle/vehiclepreviewpage/index.tsx","./src/shared/index.tsx","./src/shared/api/index.tsx","./src/shared/config/carriersvg.tsx","./src/shared/config/constants.tsx","./src/shared/config/index.ts","./src/shared/const/index.ts","./src/shared/const/mediatypes.ts","./src/shared/hooks/index.ts","./src/shared/hooks/useselectedcity.ts","./src/shared/lib/index.ts","./src/shared/lib/decodejwt/index.ts","./src/shared/lib/mui/theme.ts","./src/shared/modals/index.ts","./src/shared/modals/previewmediadialog/index.tsx","./src/shared/modals/selectarticledialog/index.tsx","./src/shared/modals/selectmediadialog/index.tsx","./src/shared/modals/uploadmediadialog/index.tsx","./src/shared/store/index.ts","./src/shared/store/articlesstore/index.tsx","./src/shared/store/authstore/index.tsx","./src/shared/store/carrierstore/index.tsx","./src/shared/store/citystore/index.ts","./src/shared/store/countrystore/index.ts","./src/shared/store/createsightstore/index.tsx","./src/shared/store/devicesstore/index.tsx","./src/shared/store/editsightstore/index.tsx","./src/shared/store/languagestore/index.tsx","./src/shared/store/mediastore/index.tsx","./src/shared/store/menustore/index.ts","./src/shared/store/routestore/index.ts","./src/shared/store/selectedcitystore/index.ts","./src/shared/store/sightsstore/index.tsx","./src/shared/store/snapshotstore/index.ts","./src/shared/store/stationsstore/index.ts","./src/shared/store/userstore/index.ts","./src/shared/store/vehiclestore/index.ts","./src/shared/ui/index.ts","./src/shared/ui/backbutton/index.tsx","./src/shared/ui/coordinatesinput/index.tsx","./src/shared/ui/input/index.tsx","./src/shared/ui/modal/index.tsx","./src/shared/ui/tabpanel/index.tsx","./src/widgets/index.ts","./src/widgets/cityselector/index.tsx","./src/widgets/createbutton/index.tsx","./src/widgets/deletemodal/index.tsx","./src/widgets/devicestable/index.tsx","./src/widgets/imageuploadcard/index.tsx","./src/widgets/languageswitcher/index.tsx","./src/widgets/layout/index.tsx","./src/widgets/layout/ui/appbar.tsx","./src/widgets/layout/ui/drawer.tsx","./src/widgets/layout/ui/drawerheader.tsx","./src/widgets/leaveagree/index.tsx","./src/widgets/mediaarea/index.tsx","./src/widgets/mediaareaforsight/index.tsx","./src/widgets/mediaviewer/threeview.tsx","./src/widgets/mediaviewer/threeviewerrorboundary.tsx","./src/widgets/mediaviewer/index.tsx","./src/widgets/modelviewer3d/index.tsx","./src/widgets/reactmarkdown/index.tsx","./src/widgets/reactmarkdowneditor/index.tsx","./src/widgets/savewithoutcityagree/index.tsx","./src/widgets/sightedit/index.tsx","./src/widgets/sightheader/index.ts","./src/widgets/sightheader/ui/index.tsx","./src/widgets/sighttabs/index.ts","./src/widgets/sighttabs/createinformationtab/mediauploadbox.tsx","./src/widgets/sighttabs/createinformationtab/index.tsx","./src/widgets/sighttabs/createlefttab/index.tsx","./src/widgets/sighttabs/createrighttab/index.tsx","./src/widgets/sighttabs/informationtab/index.tsx","./src/widgets/sighttabs/leftwidgettab/index.tsx","./src/widgets/sighttabs/rightwidgettab/index.tsx","./src/widgets/sightstable/index.tsx","./src/widgets/snapshotrestore/index.tsx","./src/widgets/videopreviewcard/index.tsx","./src/widgets/modals/editstationmodal.tsx","./src/widgets/modals/index.ts","./src/widgets/modals/selectarticledialog/index.tsx"],"version":"5.8.3"} \ No newline at end of file +{"root":["./src/main.tsx","./src/vite-env.d.ts","./src/app/globalerrorboundary.tsx","./src/app/index.tsx","./src/app/router/index.tsx","./src/entities/index.ts","./src/entities/navigation/index.ts","./src/entities/navigation/model/index.ts","./src/entities/navigation/ui/index.tsx","./src/features/index.ts","./src/features/navigation/index.ts","./src/features/navigation/ui/index.tsx","./src/pages/index.ts","./src/pages/article/index.ts","./src/pages/article/articlecreatepage/index.tsx","./src/pages/article/articleeditpage/index.tsx","./src/pages/article/articlelistpage/index.tsx","./src/pages/article/articlepreviewpage/previewleftwidget.tsx","./src/pages/article/articlepreviewpage/previewrightwidget.tsx","./src/pages/article/articlepreviewpage/index.tsx","./src/pages/carrier/index.ts","./src/pages/carrier/carriercreatepage/index.tsx","./src/pages/carrier/carriereditpage/index.tsx","./src/pages/carrier/carrierlistpage/index.tsx","./src/pages/city/index.ts","./src/pages/city/citycreatepage/index.tsx","./src/pages/city/cityeditpage/index.tsx","./src/pages/city/citylistpage/index.tsx","./src/pages/city/citypreviewpage/index.tsx","./src/pages/country/index.ts","./src/pages/country/countryaddpage/index.tsx","./src/pages/country/countrycreatepage/index.tsx","./src/pages/country/countryeditpage/index.tsx","./src/pages/country/countrylistpage/index.tsx","./src/pages/country/countrypreviewpage/index.tsx","./src/pages/createsightpage/index.tsx","./src/pages/devicespage/index.tsx","./src/pages/editsightpage/index.tsx","./src/pages/loginpage/index.tsx","./src/pages/mainpage/index.tsx","./src/pages/mappage/index.tsx","./src/pages/mappage/mapstore.ts","./src/pages/media/index.ts","./src/pages/media/mediacreatepage/index.tsx","./src/pages/media/mediaeditpage/index.tsx","./src/pages/media/medialistpage/index.tsx","./src/pages/media/mediapreviewpage/index.tsx","./src/pages/route/linekedstations.tsx","./src/pages/route/index.ts","./src/pages/route/routecreatepage/index.tsx","./src/pages/route/routeeditpage/index.tsx","./src/pages/route/routelistpage/index.tsx","./src/pages/route/route-preview/constants.ts","./src/pages/route/route-preview/infinitecanvas.tsx","./src/pages/route/route-preview/leftsidebar.tsx","./src/pages/route/route-preview/mapdatacontext.tsx","./src/pages/route/route-preview/rightsidebar.tsx","./src/pages/route/route-preview/sight.tsx","./src/pages/route/route-preview/sightinfowidget.tsx","./src/pages/route/route-preview/station.tsx","./src/pages/route/route-preview/transformcontext.tsx","./src/pages/route/route-preview/travelpath.tsx","./src/pages/route/route-preview/widgets.tsx","./src/pages/route/route-preview/index.tsx","./src/pages/route/route-preview/types.ts","./src/pages/route/route-preview/utils.ts","./src/pages/sight/index.ts","./src/pages/sight/sightlistpage/index.tsx","./src/pages/sightpage/index.tsx","./src/pages/snapshot/index.ts","./src/pages/snapshot/snapshotcreatepage/index.tsx","./src/pages/snapshot/snapshotlistpage/index.tsx","./src/pages/station/linkedsights.tsx","./src/pages/station/index.ts","./src/pages/station/stationcreatepage/index.tsx","./src/pages/station/stationeditpage/index.tsx","./src/pages/station/stationlistpage/index.tsx","./src/pages/station/stationpreviewpage/index.tsx","./src/pages/user/index.ts","./src/pages/user/usercreatepage/index.tsx","./src/pages/user/usereditpage/index.tsx","./src/pages/user/userlistpage/index.tsx","./src/pages/vehicle/index.ts","./src/pages/vehicle/vehiclecreatepage/index.tsx","./src/pages/vehicle/vehicleeditpage/index.tsx","./src/pages/vehicle/vehiclelistpage/index.tsx","./src/pages/vehicle/vehiclepreviewpage/index.tsx","./src/shared/index.tsx","./src/shared/api/index.tsx","./src/shared/config/carriersvg.tsx","./src/shared/config/constants.tsx","./src/shared/config/index.ts","./src/shared/const/index.ts","./src/shared/const/mediatypes.ts","./src/shared/hooks/index.ts","./src/shared/hooks/useselectedcity.ts","./src/shared/lib/index.ts","./src/shared/lib/decodejwt/index.ts","./src/shared/lib/mui/theme.ts","./src/shared/modals/index.ts","./src/shared/modals/previewmediadialog/index.tsx","./src/shared/modals/selectarticledialog/index.tsx","./src/shared/modals/selectmediadialog/index.tsx","./src/shared/modals/uploadmediadialog/index.tsx","./src/shared/store/index.ts","./src/shared/store/articlesstore/index.tsx","./src/shared/store/authstore/index.tsx","./src/shared/store/carrierstore/index.tsx","./src/shared/store/citystore/index.ts","./src/shared/store/countrystore/index.ts","./src/shared/store/createsightstore/index.tsx","./src/shared/store/devicesstore/index.tsx","./src/shared/store/editsightstore/index.tsx","./src/shared/store/languagestore/index.tsx","./src/shared/store/mediastore/index.tsx","./src/shared/store/menustore/index.ts","./src/shared/store/routestore/index.ts","./src/shared/store/selectedcitystore/index.ts","./src/shared/store/sightsstore/index.tsx","./src/shared/store/snapshotstore/index.ts","./src/shared/store/stationsstore/index.ts","./src/shared/store/userstore/index.ts","./src/shared/store/vehiclestore/index.ts","./src/shared/ui/index.ts","./src/shared/ui/backbutton/index.tsx","./src/shared/ui/coordinatesinput/index.tsx","./src/shared/ui/input/index.tsx","./src/shared/ui/modal/index.tsx","./src/shared/ui/tabpanel/index.tsx","./src/widgets/index.ts","./src/widgets/cityselector/index.tsx","./src/widgets/createbutton/index.tsx","./src/widgets/deletemodal/index.tsx","./src/widgets/devicestable/index.tsx","./src/widgets/imageuploadcard/index.tsx","./src/widgets/languageswitcher/index.tsx","./src/widgets/layout/index.tsx","./src/widgets/layout/ui/appbar.tsx","./src/widgets/layout/ui/drawer.tsx","./src/widgets/layout/ui/drawerheader.tsx","./src/widgets/leaveagree/index.tsx","./src/widgets/mediaarea/index.tsx","./src/widgets/mediaareaforsight/index.tsx","./src/widgets/mediaviewer/threeview.tsx","./src/widgets/mediaviewer/threeviewerrorboundary.tsx","./src/widgets/mediaviewer/index.tsx","./src/widgets/modelviewer3d/index.tsx","./src/widgets/reactmarkdown/index.tsx","./src/widgets/reactmarkdowneditor/index.tsx","./src/widgets/savewithoutcityagree/index.tsx","./src/widgets/sightedit/index.tsx","./src/widgets/sightheader/index.ts","./src/widgets/sightheader/ui/index.tsx","./src/widgets/sighttabs/index.ts","./src/widgets/sighttabs/createinformationtab/mediauploadbox.tsx","./src/widgets/sighttabs/createinformationtab/index.tsx","./src/widgets/sighttabs/createlefttab/index.tsx","./src/widgets/sighttabs/createrighttab/index.tsx","./src/widgets/sighttabs/informationtab/index.tsx","./src/widgets/sighttabs/leftwidgettab/index.tsx","./src/widgets/sighttabs/rightwidgettab/index.tsx","./src/widgets/sightstable/index.tsx","./src/widgets/snapshotrestore/index.tsx","./src/widgets/videopreviewcard/index.tsx","./src/widgets/modals/editstationmodal.tsx","./src/widgets/modals/index.ts","./src/widgets/modals/selectarticledialog/index.tsx"],"errors":true,"version":"5.8.3"} \ No newline at end of file