From 8e257f36b279a07078770c28e032ffb7678042f8 Mon Sep 17 00:00:00 2001 From: SeongHyun Kim Date: Tue, 2 Dec 2025 14:30:29 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20ScreenModal=20selectedData=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EB=B3=B5=EC=9B=90=20(RepeatScreenModal=20=EC=A7=80?= =?UTF-8?q?=EC=9B=90)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/components/common/ScreenModal.tsx | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/frontend/components/common/ScreenModal.tsx b/frontend/components/common/ScreenModal.tsx index 53fd0852..de886cfd 100644 --- a/frontend/components/common/ScreenModal.tsx +++ b/frontend/components/common/ScreenModal.tsx @@ -60,6 +60,9 @@ export const ScreenModal: React.FC = ({ className }) => { // ๐Ÿ†• ์›๋ณธ ๋ฐ์ดํ„ฐ ์ƒํƒœ (์ˆ˜์ • ๋ชจ๋“œ์—์„œ UPDATE ํŒ๋‹จ์šฉ) const [originalData, setOriginalData] = useState | null>(null); + // ๐Ÿ†• ์„ ํƒ๋œ ๋ฐ์ดํ„ฐ ์ƒํƒœ (RepeatScreenModal ๋“ฑ์—์„œ ์‚ฌ์šฉ) + const [selectedData, setSelectedData] = useState[]>([]); + // ์—ฐ์† ๋“ฑ๋ก ๋ชจ๋“œ ์ƒํƒœ (state๋กœ ๋ณ€๊ฒฝ - ์ฒดํฌ๋ฐ•์Šค UI ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด) const [continuousMode, setContinuousMode] = useState(false); @@ -129,12 +132,27 @@ export const ScreenModal: React.FC = ({ className }) => { // ์ „์—ญ ๋ชจ๋‹ฌ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ useEffect(() => { const handleOpenModal = (event: CustomEvent) => { - const { screenId, title, description, size, urlParams, editData } = event.detail; + const { screenId, title, description, size, urlParams, editData, selectedData: eventSelectedData, selectedIds } = event.detail; + + console.log("๐Ÿ“ฆ [ScreenModal] ๋ชจ๋‹ฌ ์—ด๊ธฐ ์ด๋ฒคํŠธ ์ˆ˜์‹ :", { + screenId, + title, + selectedData: eventSelectedData, + selectedIds, + }); // ๐Ÿ†• ๋ชจ๋‹ฌ ์—ด๋ฆฐ ์‹œ๊ฐ„ ๊ธฐ๋ก modalOpenedAtRef.current = Date.now(); console.log("๐Ÿ• [ScreenModal] ๋ชจ๋‹ฌ ์—ด๋ฆผ ์‹œ๊ฐ„ ๊ธฐ๋ก:", modalOpenedAtRef.current); + // ๐Ÿ†• ์„ ํƒ๋œ ๋ฐ์ดํ„ฐ ์ €์žฅ (RepeatScreenModal ๋“ฑ์—์„œ ์‚ฌ์šฉ) + if (eventSelectedData && Array.isArray(eventSelectedData)) { + setSelectedData(eventSelectedData); + console.log("๐Ÿ“ฆ [ScreenModal] ์„ ํƒ๋œ ๋ฐ์ดํ„ฐ ์ €์žฅ:", eventSelectedData.length, "๊ฑด"); + } else { + setSelectedData([]); + } + // ๐Ÿ†• URL ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด ํ˜„์žฌ URL์— ์ถ”๊ฐ€ if (urlParams && typeof window !== "undefined") { const currentUrl = new URL(window.location.href); @@ -184,6 +202,7 @@ export const ScreenModal: React.FC = ({ className }) => { setScreenData(null); setFormData({}); setOriginalData(null); // ๐Ÿ†• ์›๋ณธ ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™” + setSelectedData([]); // ๐Ÿ†• ์„ ํƒ๋œ ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™” setContinuousMode(false); localStorage.setItem("screenModal_continuousMode", "false"); // localStorage์— ์ €์žฅ console.log("๐Ÿ”„ ์—ฐ์† ๋ชจ๋“œ ์ดˆ๊ธฐํ™”: false"); @@ -649,6 +668,7 @@ export const ScreenModal: React.FC = ({ className }) => { id: modalState.screenId!, tableName: screenData.screenInfo?.tableName, }} + groupedData={selectedData} userId={userId} userName={userName} companyCode={user?.companyCode}