fix(frontend): 컴포넌트 import 경로 수정 (vite build 실패 해결) (#42)

Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
This commit is contained in:
htlee 2026-03-18 08:21:42 +09:00 committed by claude-bot
부모 d87ce089c5
커밋 81cd094c56
24개의 변경된 파일44개의 추가작업 그리고 44개의 파일을 삭제

파일 보기

@ -1,6 +1,6 @@
import { useState, useEffect, useCallback } from 'react';
import { fetchCollectorStatus } from '../services/collectorStatus';
import type { CollectorInfo } from '../services/collectorStatus';
import { fetchCollectorStatus } from '../../services/collectorStatus';
import type { CollectorInfo } from '../../services/collectorStatus';
interface CollectorMonitorProps {
onClose: () => void;

파일 보기

@ -1,7 +1,7 @@
import { useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import type { GeoEvent, Ship } from '../types';
import type { OsintItem } from '../services/osint';
import type { GeoEvent, Ship } from '../../types';
import type { OsintItem } from '../../services/osint';
type DashboardTab = 'iran' | 'korea';

파일 보기

@ -1,6 +1,6 @@
import { useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next';
import type { GeoEvent } from '../types';
import type { GeoEvent } from '../../types';
interface Props {
events: GeoEvent[];

파일 보기

@ -10,7 +10,7 @@ import {
ResponsiveContainer,
ReferenceLine,
} from 'recharts';
import type { SensorLog } from '../types';
import type { SensorLog } from '../../types';
interface Props {
data: SensorLog[];

파일 보기

@ -1,6 +1,6 @@
import { useMemo, useState, useCallback } from 'react';
import { useTranslation } from 'react-i18next';
import type { GeoEvent } from '../types';
import type { GeoEvent } from '../../types';
interface Props {
currentTime: number;

파일 보기

@ -1,6 +1,6 @@
import { memo, useMemo, useState } from 'react';
import { Marker, Popup } from 'react-map-gl/maplibre';
import type { Airport } from '../data/airports';
import type { Airport } from '../../data/airports';
const US_BASE_ICAOS = new Set([
'OMAD', 'OTBH', 'OKAJ', 'LTAG', 'OEPS', 'ORAA', 'ORBD', 'OBBS', 'OMTH', 'HDCL',

파일 보기

@ -1,8 +1,8 @@
import { useRef, useEffect } from 'react';
import maplibregl from 'maplibre-gl';
import 'maplibre-gl/dist/maplibre-gl.css';
import { countryLabelsGeoJSON } from '../data/countryLabels';
import type { GeoEvent, Aircraft, SatellitePosition, Ship, LayerVisibility } from '../types';
import { countryLabelsGeoJSON } from '../../data/countryLabels';
import type { GeoEvent, Aircraft, SatellitePosition, Ship, LayerVisibility } from '../../types';
interface Props {
events: GeoEvent[];

파일 보기

@ -1,7 +1,7 @@
import { memo, useState } from 'react';
import { Marker, Popup } from 'react-map-gl/maplibre';
import { useTranslation } from 'react-i18next';
import type { OilFacility, OilFacilityType } from '../types';
import type { OilFacility, OilFacilityType } from '../../types';
interface Props {
facilities: OilFacility[];

파일 보기

@ -8,10 +8,10 @@ import { ShipLayer } from '../layers/ShipLayer';
import { DamagedShipLayer } from '../layers/DamagedShipLayer';
import { OilFacilityLayer } from './OilFacilityLayer';
import { AirportLayer } from './AirportLayer';
import { iranOilFacilities } from '../data/oilFacilities';
import { middleEastAirports } from '../data/airports';
import type { GeoEvent, Aircraft, SatellitePosition, Ship, LayerVisibility } from '../types';
import { countryLabelsGeoJSON } from '../data/countryLabels';
import { iranOilFacilities } from '../../data/oilFacilities';
import { middleEastAirports } from '../../data/airports';
import type { GeoEvent, Aircraft, SatellitePosition, Ship, LayerVisibility } from '../../types';
import { countryLabelsGeoJSON } from '../../data/countryLabels';
import 'maplibre-gl/dist/maplibre-gl.css';
export interface FlyToTarget {

파일 보기

@ -8,10 +8,10 @@ import { ShipLayer } from '../layers/ShipLayer';
import { DamagedShipLayer } from '../layers/DamagedShipLayer';
import { OilFacilityLayer } from './OilFacilityLayer';
import { AirportLayer } from './AirportLayer';
import { iranOilFacilities } from '../data/oilFacilities';
import { middleEastAirports } from '../data/airports';
import type { GeoEvent, Aircraft, SatellitePosition, Ship, LayerVisibility } from '../types';
import { countryLabelsGeoJSON } from '../data/countryLabels';
import { iranOilFacilities } from '../../data/oilFacilities';
import { middleEastAirports } from '../../data/airports';
import type { GeoEvent, Aircraft, SatellitePosition, Ship, LayerVisibility } from '../../types';
import { countryLabelsGeoJSON } from '../../data/countryLabels';
import maplibregl from 'maplibre-gl';
import 'maplibre-gl/dist/maplibre-gl.css';

파일 보기

@ -2,8 +2,8 @@ import { useState, useRef, useEffect, useCallback } from 'react';
import { Marker, Popup } from 'react-map-gl/maplibre';
import { useTranslation } from 'react-i18next';
import Hls from 'hls.js';
import { KOREA_CCTV_CAMERAS } from '../services/cctv';
import type { CctvCamera } from '../services/cctv';
import { KOREA_CCTV_CAMERAS } from '../../services/cctv';
import type { CctvCamera } from '../../services/cctv';
const REGION_COLOR: Record<string, string> = {
'제주': '#ff6b6b',

파일 보기

@ -1,8 +1,8 @@
import { useState } from 'react';
import { useTranslation } from 'react-i18next';
import { Marker, Popup } from 'react-map-gl/maplibre';
import { COAST_GUARD_FACILITIES, CG_TYPE_LABEL } from '../services/coastGuard';
import type { CoastGuardFacility, CoastGuardType } from '../services/coastGuard';
import { COAST_GUARD_FACILITIES, CG_TYPE_LABEL } from '../../services/coastGuard';
import type { CoastGuardFacility, CoastGuardType } from '../../services/coastGuard';
const TYPE_COLOR: Record<CoastGuardType, string> = {
hq: '#ff6b6b',

파일 보기

@ -1,5 +1,5 @@
import { Source, Layer } from 'react-map-gl/maplibre';
import { KOREA_EEZ_BOUNDARY, KOREA_CHINA_PMZ, NLL_WEST_SEA, NLL_EAST_SEA } from '../services/koreaEez';
import { KOREA_EEZ_BOUNDARY, KOREA_CHINA_PMZ, NLL_WEST_SEA, NLL_EAST_SEA } from '../../services/koreaEez';
import type { FillLayerSpecification, LineLayerSpecification } from 'maplibre-gl';
// Convert [lat, lng][] to GeoJSON [lng, lat][] ring

파일 보기

@ -1,6 +1,6 @@
import { useMemo, useState } from 'react';
import { Marker, Popup } from 'react-map-gl/maplibre';
import type { PowerFacility } from '../services/infra';
import type { PowerFacility } from '../../services/infra';
// SVG Wind Turbine Icon
function WindTurbineIcon({ color, size = 14 }: { color: string; size?: number }) {

파일 보기

@ -1,8 +1,8 @@
import { useState } from 'react';
import { useTranslation } from 'react-i18next';
import { Marker, Popup } from 'react-map-gl/maplibre';
import { KOREAN_AIRPORTS } from '../services/airports';
import type { KoreanAirport } from '../services/airports';
import { KOREAN_AIRPORTS } from '../../services/airports';
import type { KoreanAirport } from '../../services/airports';
export function KoreaAirportLayer() {
const [selected, setSelected] = useState<KoreanAirport | null>(null);

파일 보기

@ -14,11 +14,11 @@ import { NavWarningLayer } from './NavWarningLayer';
import { OsintMapLayer } from './OsintMapLayer';
import { EezLayer } from './EezLayer';
import { PiracyLayer } from './PiracyLayer';
import { fetchKoreaInfra } from '../services/infra';
import type { PowerFacility } from '../services/infra';
import type { Ship, Aircraft, SatellitePosition } from '../types';
import type { OsintItem } from '../services/osint';
import { countryLabelsGeoJSON } from '../data/countryLabels';
import { fetchKoreaInfra } from '../../services/infra';
import type { PowerFacility } from '../../services/infra';
import type { Ship, Aircraft, SatellitePosition } from '../../types';
import type { OsintItem } from '../../services/osint';
import { countryLabelsGeoJSON } from '../../data/countryLabels';
import 'maplibre-gl/dist/maplibre-gl.css';
export interface KoreaFiltersState {

파일 보기

@ -1,8 +1,8 @@
import { useState } from 'react';
import { useTranslation } from 'react-i18next';
import { Marker, Popup } from 'react-map-gl/maplibre';
import { NAV_WARNINGS, NW_LEVEL_LABEL, NW_ORG_LABEL } from '../services/navWarning';
import type { NavWarning, NavWarningLevel, TrainingOrg } from '../services/navWarning';
import { NAV_WARNINGS, NW_LEVEL_LABEL, NW_ORG_LABEL } from '../../services/navWarning';
import type { NavWarning, NavWarningLevel, TrainingOrg } from '../../services/navWarning';
const LEVEL_COLOR: Record<NavWarningLevel, string> = {
danger: '#ef4444',

파일 보기

@ -1,7 +1,7 @@
import { useState, useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import { Marker, Popup } from 'react-map-gl/maplibre';
import type { OsintItem } from '../services/osint';
import type { OsintItem } from '../../services/osint';
const CAT_COLOR: Record<string, string> = {
maritime_accident: '#ef4444',

파일 보기

@ -1,8 +1,8 @@
import { useState } from 'react';
import { useTranslation } from 'react-i18next';
import { Marker, Popup } from 'react-map-gl/maplibre';
import { PIRACY_ZONES, PIRACY_LEVEL_COLOR, PIRACY_LEVEL_LABEL } from '../services/piracy';
import type { PiracyZone } from '../services/piracy';
import { PIRACY_ZONES, PIRACY_LEVEL_COLOR, PIRACY_LEVEL_LABEL } from '../../services/piracy';
import type { PiracyZone } from '../../services/piracy';
function SkullIcon({ color, size }: { color: string; size: number }) {
return (

파일 보기

@ -1,7 +1,7 @@
import { useState } from 'react';
import { Marker, Popup, Source, Layer } from 'react-map-gl/maplibre';
import { KOREA_SUBMARINE_CABLES, KOREA_LANDING_POINTS } from '../services/submarineCable';
import type { SubmarineCable } from '../services/submarineCable';
import { KOREA_SUBMARINE_CABLES, KOREA_LANDING_POINTS } from '../../services/submarineCable';
import type { SubmarineCable } from '../../services/submarineCable';
export function SubmarineCableLayer() {
const [selectedCable, setSelectedCable] = useState<SubmarineCable | null>(null);

파일 보기

@ -1,7 +1,7 @@
import { memo, useMemo, useState, useEffect } from 'react';
import { Marker, Popup, Source, Layer } from 'react-map-gl/maplibre';
import { useTranslation } from 'react-i18next';
import type { Aircraft, AircraftCategory } from '../types';
import type { Aircraft, AircraftCategory } from '../../types';
interface Props {
aircraft: Aircraft[];

파일 보기

@ -1,7 +1,7 @@
import { useMemo, useState } from 'react';
import { Marker, Popup } from 'react-map-gl/maplibre';
import { damagedShips } from '../data/damagedShips';
import type { DamagedShip } from '../data/damagedShips';
import { damagedShips } from '../../data/damagedShips';
import type { DamagedShip } from '../../data/damagedShips';
interface Props {
currentTime: number;

파일 보기

@ -1,7 +1,7 @@
import { memo, useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { Marker, Popup, Source, Layer } from 'react-map-gl/maplibre';
import type { SatellitePosition } from '../types';
import type { SatellitePosition } from '../../types';
interface Props {
satellites: SatellitePosition[];

파일 보기

@ -1,7 +1,7 @@
import { memo, useMemo, useState, useEffect } from 'react';
import { Marker, Popup, Source, Layer, useMap } from 'react-map-gl/maplibre';
import { useTranslation } from 'react-i18next';
import type { Ship, ShipCategory } from '../types';
import type { Ship, ShipCategory } from '../../types';
import maplibregl from 'maplibre-gl';
interface Props {