From 264eae9e570b4803546c475265bc580fff4af48a Mon Sep 17 00:00:00 2001 From: JANGHYUNn Date: Wed, 24 Jul 2024 16:08:07 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B9=84=ED=96=89=EA=B5=AC=EC=97=AD=20?= =?UTF-8?q?=EC=84=A0=ED=83=9D=20=EC=8B=9C=20=EB=AA=A9=EB=A1=9D=ED=91=9C?= =?UTF-8?q?=EC=8B=9C=20=EB=B0=8F=20=EC=8A=A4=ED=81=AC=EB=A1=A4=EC=9D=B4?= =?UTF-8?q?=EB=8F=99=20=EA=B8=B0=EB=8A=A5=20=ED=8C=9D=EC=97=85=EC=97=90?= =?UTF-8?q?=EB=8F=84=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flight/OperationApprovalsContainer.js | 10 ++++++++ src/containers/rightMenuContainer.js | 25 ++++++++++++++++--- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/containers/flight/OperationApprovalsContainer.js b/src/containers/flight/OperationApprovalsContainer.js index 81642eaf..8a8329e9 100644 --- a/src/containers/flight/OperationApprovalsContainer.js +++ b/src/containers/flight/OperationApprovalsContainer.js @@ -122,6 +122,16 @@ export default function OperationApprovalsContainer({ mode }) { .find(feature => feature.source === 'operationLayer'); if (features) { + if (popupRef.current) { + popupRef.current.postMessage({ + type: 'matchingRow', + payload: { + selected: features.properties.key, + targetValue: features.properties.key + } + }); + return; + } setSelected([features.properties.key]); const targetValue = features.properties.key; diff --git a/src/containers/rightMenuContainer.js b/src/containers/rightMenuContainer.js index a7e32c04..d802469b 100644 --- a/src/containers/rightMenuContainer.js +++ b/src/containers/rightMenuContainer.js @@ -45,16 +45,33 @@ function RightMenuContainer() { setEndDate(payload.endDate); return; - // case 'handlerSearchRs': - // console.log(payload.filter); - // setFilter(payload.filter); + case 'matchingRow': + handlerMatchingRow(payload.selected, payload.targetValue); - // return; + return; default: break; } }; + const handlerMatchingRow = (selected, targetValue) => { + setSelected([selected]); + + const rows = document.getElementsByClassName('ant-table-row'); + const matchingRow = Array.from(rows).find(row => { + const rowKey = row.getAttribute('data-row-key'); + return rowKey.startsWith(targetValue); + }); + + if (matchingRow) { + matchingRow.scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'nearest' + }); + } + }; + const handlerOpnerPostMessage = (type, payload) => { switch (type) { case 'initalState':