팝업 진행중

This commit is contained in:
JIeunhuh
2025-07-04 11:00:34 +09:00
parent aa7ef37aaf
commit 916c068706
2 changed files with 12 additions and 15 deletions
+2 -1
View File
@@ -4,7 +4,7 @@ import Gis from "@common/business_components/ui/map/Gis";
import { useEffect, useRef, useState, useCallback } from "react";
import FeatureClickEventPopup from "../featureClickEventPopup";
import { mapService } from "../service";
import { MapSearchBar } from "../mapSearchBar";
// import { MapSearchBar } from "../mapSearchBar";
import NewWindowPopup from "../newWindowPopup";
import GisApp from "@common/business_components/ui/map/lib/gis.core";
@@ -141,6 +141,7 @@ const Map = () => {
onClose={handlePopupClose} // 메모이제이션된 함수 사용
checkedLayers={checkedLayers}
checkedLayersData={checkedLayersData}
seletectedLayerNm={""}
{...props}
/>
)}
+10 -14
View File
@@ -23,6 +23,8 @@ interface NewWindowPopupProps {
checkedLayers?: string[];
checkedLayersData?: any[];
seletectedLayerNm?: string
viewMode?:string
setViewMode?:React.Dispatch<React.SetStateAction<String>>;
onClose: () => void;
}
@@ -41,15 +43,15 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
checkedLayers = [],
checkedLayersData = [],
seletectedLayerNm,
viewMode,
setViewMode,
onClose
}) => {
const { gisMap } = useGisContext() as unknown as { checkedLayerIds: React.MutableRefObject<number[]>; treeData: { lyrSn: number }[] | null; gisCore: any; gisMap: any; };
const [tabData, setTabData] = useState<{ id: string; name: string; data: any }[]>([]);
const [activeTab, setActiveTab] = useState<string>('0');
// swcho : useState의 true, false 값 변경하여 목록, 상태 테스트 하였음
const [showDetailView, setShowDetailView] = useState(true); // 상세정보 화면 표시 상태 추가
const [showListView, setShowListView] = useState(false)
const [viewMode, setViewMode] = useState<"detail" | "list">("detail"); // "detail" 또는 "list"로 상태 관리
// const [viewMode, setViewMode] = useState<"detail" | "list">("detail"); // "detail" 또는 "list"로 상태 관리
// onClose 함수를 useCallback으로 메모이제이션
const memoizedOnClose = useCallback(() => {
@@ -112,7 +114,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
setPbnstRuseFcltPk(pbnstSttn.pbnstSttnRes[index].pbnstRuseFcltPk);
fetchpbnstDetail(pbnstSttn.pbnstSttnRes[index].pbnstRuseFcltPk)
setActiveTab(pbnstSttn.pbnstSttnRes[index].pbnstRuseFcltPk)
setViewMode('detail')
setViewMode && setViewMode("detail")
}
};
const getSelectedLayers = () => {
@@ -190,12 +192,6 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
String(new Date().getFullYear())
);
}, []);
useEffect(() => {
if (seletectedLayerNm && seletectedLayerNm === getSelectedLayers()) {
console.log('레이어명이 일치하여 상세보기 비활성화'); // 디버깅 로그 추가
setViewMode('list')
}
}, [seletectedLayerNm]);
useEffect(() => {
if (featureData) {
@@ -205,7 +201,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
setPbnstRuseFcltPk(featureCd); // 현재 호출된 featureCd 저장
setActiveTab(featureCd)
fetchpbnstDetail(featureCd); // 상세정보
setViewMode("detail"); // 상세 보기 활성화
setViewMode && setViewMode("detail"); // 상세 보기 활성화
}
}
}, [featureData]);
@@ -337,7 +333,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
}
if (isRain) {
if (showDetailView) {
if (viewMode == 'detail') {
// 빗물이용시설 상세
return (
<>
@@ -377,7 +373,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
}
if (isRswt) {
if (showDetailView) {
if (viewMode == 'detail') {
// 중수도시설 상세
return (
<>
@@ -417,7 +413,7 @@ const NewWindowPopup: React.FC<NewWindowPopupProps> = ({
}
if (isHtdfl) {
if (showDetailView) {
if (viewMode == 'detail') {
// 온배수시설 상세
return (
<>