+ Site Finder +
++ Введите кадастровый номер участка или квартала для анализа локации +
++ Пересчёт… +
+ )} +diff --git a/frontend/src/app/_legacy/site-finder-page-tabs.tsx b/frontend/src/app/_legacy/site-finder-page-tabs.tsx new file mode 100644 index 00000000..568b146f --- /dev/null +++ b/frontend/src/app/_legacy/site-finder-page-tabs.tsx @@ -0,0 +1,570 @@ +"use client"; + +import { Suspense, useEffect, useRef, useState } from "react"; +import dynamic from "next/dynamic"; +import Link from "next/link"; +import { usePathname, useRouter, useSearchParams } from "next/navigation"; +import type { FeatureCollection } from "geojson"; + +import { CadInput } from "@/components/site-finder/CadInput"; +import { FetchingState } from "@/components/site-finder/FetchingState"; +import { KpiCard } from "@/components/site-finder/KpiCard"; +import { OverviewTab } from "@/components/site-finder/OverviewTab"; +import { EnvironmentTab } from "@/components/site-finder/EnvironmentTab"; +import { LandTab } from "@/components/site-finder/LandTab"; +import { MarketTab } from "@/components/site-finder/MarketTab"; +import { WeightProfilePanel } from "@/components/site-finder/WeightProfilePanel"; +import { useSiteAnalysis } from "@/hooks/useSiteAnalysis"; +import { useDebouncedValue } from "@/hooks/useDebouncedValue"; +import { useConnectionPoints } from "@/hooks/useConnectionPoints"; +import { useCustomPois } from "@/hooks/useCustomPois"; +import { + POI_DEFAULT_WEIGHTS, + type PoiCategoryKey, +} from "@/lib/api/weightProfiles"; + +// SiteMap imports Leaflet which requires browser APIs — load without SSR +const SiteMap = dynamic( + () => import("@/components/site-finder/SiteMap").then((m) => m.SiteMap), + { + ssr: false, + loading: () => ( +
+ Введите кадастровый номер участка или квартала для анализа локации +
++ Пересчёт… +
+ )} ++ {note} +
+ )} +- Введите кадастровый номер участка или квартала для анализа локации -
-- Пересчёт… -
- )} -