fix(incidents): MPA 리팩토링 누락 imports 정리

- IncidentsView: SplitPanelContent 중복 import 제거 (contents/ 스텁 미사용)
- predictionApi: fetchOilSpillSummary 이관 (PredictionInterface의 api 미임포트로 사실상 동작불가 함수였음)
- AnalysisSelectModal, hnsDispersionLayers: @tabs/→@components/+@interfaces/, @common/components/→@components/common/
This commit is contained in:
이난경 2026-04-17 08:14:21 +09:00
부모 650bb2b035
커밋 13bda6d15b
5개의 변경된 파일23개의 추가작업 그리고 42개의 파일을 삭제

파일 보기

@ -1,10 +1,10 @@
import { useState, useEffect, useRef } from 'react'; import { useState, useEffect, useRef } from 'react';
import { fetchPredictionAnalyses } from '@tabs/prediction/services/predictionApi'; import { fetchPredictionAnalyses } from '@components/prediction/services/predictionApi';
import type { PredictionAnalysis } from '@tabs/prediction/services/predictionApi'; import type { PredictionAnalysis } from '@interfaces/prediction/PredictionInterface';
import { fetchHnsAnalyses } from '@tabs/hns/services/hnsApi'; import { fetchHnsAnalyses } from '@components/hns/services/hnsApi';
import type { HnsAnalysisItem } from '@tabs/hns/services/hnsApi'; import type { HnsAnalysisItem } from '@interfaces/hns/HnsInterface';
import { fetchRescueOps } from '@tabs/rescue/services/rescueApi'; import { fetchRescueOps } from '@components/rescue/services/rescueApi';
import type { RescueOpsItem } from '@tabs/rescue/services/rescueApi'; import type { RescueOpsItem } from '@interfaces/rescue/RescueInterface';
// ── 타입 정의 ────────────────────────────────────────── // ── 타입 정의 ──────────────────────────────────────────
export type AnalysisModalType = 'oil' | 'hns' | 'rescue'; export type AnalysisModalType = 'oil' | 'hns' | 'rescue';

파일 보기

@ -39,7 +39,6 @@ import {
} from '../utils/dischargeZoneData'; } from '../utils/dischargeZoneData';
import { useMapStore } from '@common/store/mapStore'; import { useMapStore } from '@common/store/mapStore';
import { FlyToController } from './contents/FlyToController'; import { FlyToController } from './contents/FlyToController';
import { SplitPanelContent } from './contents/SplitPanelContent';
import { VesselPopupPanel } from './contents/VesselPopupPanel'; import { VesselPopupPanel } from './contents/VesselPopupPanel';
import { IncidentPopupContent } from './contents/IncidentPopupContent'; import { IncidentPopupContent } from './contents/IncidentPopupContent';
import { VesselDetailModal } from './contents/VesselDetailModal'; import { VesselDetailModal } from './contents/VesselDetailModal';

파일 보기

@ -5,18 +5,11 @@
* - MapView와 BitmapLayer ( ) + ScatterplotLayer (AEGL ) * - MapView와 BitmapLayer ( ) + ScatterplotLayer (AEGL )
*/ */
import { BitmapLayer, ScatterplotLayer } from '@deck.gl/layers'; import { BitmapLayer, ScatterplotLayer } from '@deck.gl/layers';
import { computeDispersion } from '@tabs/hns/utils/dispersionEngine'; import { computeDispersion } from '@components/hns/utils/dispersionEngine';
import { getSubstanceToxicity } from '@tabs/hns/utils/toxicityData'; import { getSubstanceToxicity } from '@components/hns/utils/toxicityData';
import { hexToRgba } from '@common/components/map/mapUtils'; import { hexToRgba } from '@components/common/map/mapUtils';
import type { HnsAnalysisItem } from '@tabs/hns/services/hnsApi'; import type { HnsAnalysisItem, MeteoParams, SourceParams, SimParams } from '@interfaces/hns/HnsInterface';
import type { import type { DispersionModel, AlgorithmType, StabilityClass } from '@types/hns/HnsType';
MeteoParams,
SourceParams,
SimParams,
DispersionModel,
AlgorithmType,
StabilityClass,
} from '@tabs/hns/utils/dispersionTypes';
// MapView와 동일한 색상 정지점 // MapView와 동일한 색상 정지점
const COLOR_STOPS: [number, number, number, number][] = [ const COLOR_STOPS: [number, number, number, number][] = [

파일 보기

@ -4,6 +4,7 @@ import type {
PredictionDetail, PredictionDetail,
BacktrackResult, BacktrackResult,
TrajectoryResponse, TrajectoryResponse,
OilSpillSummaryResponse,
SensitiveResourceCategory, SensitiveResourceCategory,
SensitiveResourceFeatureCollection, SensitiveResourceFeatureCollection,
SpreadParticlesGeojson, SpreadParticlesGeojson,
@ -63,6 +64,17 @@ export const fetchAnalysisTrajectory = async (
return response.data; return response.data;
}; };
export const fetchOilSpillSummary = async (
acdntSn: number,
predRunSn?: number,
): Promise<OilSpillSummaryResponse> => {
const response = await api.get<OilSpillSummaryResponse>(
`/prediction/analyses/${acdntSn}/oil-summary`,
predRunSn != null ? { params: { predRunSn } } : undefined,
);
return response.data;
};
export const fetchSensitiveResources = async ( export const fetchSensitiveResources = async (
acdntSn: number, acdntSn: number,
): Promise<SensitiveResourceCategory[]> => { ): Promise<SensitiveResourceCategory[]> => {

파일 보기

@ -216,29 +216,6 @@ export interface OilSpillSummaryResponse {
byModel: Record<string, OilSpillSummary>; byModel: Record<string, OilSpillSummary>;
} }
export const fetchAnalysisTrajectory = async (
acdntSn: number,
predRunSn?: number,
): Promise<TrajectoryResponse> => {
const response = await api.get<TrajectoryResponse>(
`/prediction/analyses/${acdntSn}/trajectory`,
predRunSn != null ? { params: { predRunSn } } : undefined,
);
return response.data;
};
export const fetchOilSpillSummary = async (
acdntSn: number,
predRunSn?: number,
): Promise<OilSpillSummaryResponse> => {
const response = await api.get<OilSpillSummaryResponse>(
`/prediction/analyses/${acdntSn}/oil-summary`,
predRunSn != null ? { params: { predRunSn } } : undefined,
);
return response.data;
};
export interface SensitiveResourceCategory { export interface SensitiveResourceCategory {
category: string; category: string;
count: number; count: number;