import MsSwagePpl from "../popupComponent/MsSwagePpl"; import sewagePump from "../popupComponent/sewagePump"; import smh from "../popupComponent/smh"; import Ssc from "../popupComponent/Ssc"; import StormWaterPump from "../popupComponent/stormWaterPump"; import SwtrmtFclt from "../popupComponent/SwtrmtFclt"; type LayerComponentProps = { featureData: any }; type LayerContentMap = { [key: string]: { component?: React.FC; props?: any; }; }; // 레이어 이름과 컴포넌트를 매핑 // 레이어 선택시 변경되는 팝업 컨텐츠 동적으로 변경하도록 작업 const layerContentMap: LayerContentMap = { // TODO: gis데이터 추가되면 추가 작업 필요 "하수처리시설": { component: SwtrmtFclt, }, "하수처리구역": { }, "우수토실":{component: Ssc,}, "중점우수토실":{component: Ssc,}, "하수관로":{component: MsSwagePpl,}, "하수맨홀":{component: smh,}, "빗물펌프":{component:StormWaterPump}, "오수펌프":{component:sewagePump}, }; // 동적 컴포넌트 반환 함수 export const getLayerContentComponent = (layerNm: string): React.FC | null => { const component = layerContentMap[layerNm]; if (!component || !component.component) { // component가 없으면 null 반환 return () => null; } return component.component; }; // 사용자 입력 필드 (보수 및 갱신, 청소 및 준설, 점검 및 진단) export const handleInputChange = (section: string, index: number, field: string, value: string, dataMap: { [key: string]: { data: { year: string; type: string }[]; setData: React.Dispatch>; }; } ) => { const target = dataMap[section]; if (!target) return; const updated = [...target.data]; if (updated[index]) { updated[index][field as keyof typeof updated[number]] = value; } target.setData(updated); };