From 984e9eadec9a63f64694d5e213e9d53d58c28111 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=A4=80=ED=99=8D?= Date: Mon, 24 Feb 2025 18:01:25 +0900 Subject: [PATCH 1/3] fix: tag extraction when multiple slashes are present --- src/core/plugins/deep-linking/layout.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/core/plugins/deep-linking/layout.js b/src/core/plugins/deep-linking/layout.js index bbd526cb9ff..ec37f49db42 100644 --- a/src/core/plugins/deep-linking/layout.js +++ b/src/core/plugins/deep-linking/layout.js @@ -173,6 +173,11 @@ export default { return state.get("scrollToKey") }, isShownKeyFromUrlHashArray(state, urlHashArray) { + // If there are more than 2 segments, treat all segments except the last one as the tag + if (urlHashArray.length > 2) { + urlHashArray = [urlHashArray.slice(0, 1).join('/'), urlHashArray.at(-1)] + } + const [tag, operationId] = urlHashArray // We only put operations in the URL if(operationId) { From 91ebc4be20166a8ce5109961de336786a1c1ae43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=A4=80=ED=99=8D?= Date: Mon, 24 Feb 2025 18:35:50 +0900 Subject: [PATCH 2/3] style: quotes to double quotes --- src/core/plugins/deep-linking/layout.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/plugins/deep-linking/layout.js b/src/core/plugins/deep-linking/layout.js index ec37f49db42..f2d58a7dffd 100644 --- a/src/core/plugins/deep-linking/layout.js +++ b/src/core/plugins/deep-linking/layout.js @@ -175,7 +175,7 @@ export default { isShownKeyFromUrlHashArray(state, urlHashArray) { // If there are more than 2 segments, treat all segments except the last one as the tag if (urlHashArray.length > 2) { - urlHashArray = [urlHashArray.slice(0, 1).join('/'), urlHashArray.at(-1)] + urlHashArray = [urlHashArray.slice(0, 1).join("/"), urlHashArray.at(-1)] } const [tag, operationId] = urlHashArray From ed93708b00664465be5bc792ae8158c784b5eece Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=A4=80=ED=99=8D?= Date: Tue, 25 Feb 2025 17:50:51 +0900 Subject: [PATCH 3/3] refac: make urlHashArray immutable --- src/core/plugins/deep-linking/layout.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/core/plugins/deep-linking/layout.js b/src/core/plugins/deep-linking/layout.js index f2d58a7dffd..087cfff8340 100644 --- a/src/core/plugins/deep-linking/layout.js +++ b/src/core/plugins/deep-linking/layout.js @@ -173,12 +173,13 @@ export default { return state.get("scrollToKey") }, isShownKeyFromUrlHashArray(state, urlHashArray) { + let normalizedUrlSegments = urlHashArray.slice() // If there are more than 2 segments, treat all segments except the last one as the tag - if (urlHashArray.length > 2) { - urlHashArray = [urlHashArray.slice(0, 1).join("/"), urlHashArray.at(-1)] + if (normalizedUrlSegments.length > 2) { + normalizedUrlSegments = [normalizedUrlSegments.slice(0, 1).join("/"), normalizedUrlSegments.at(-1)] } - const [tag, operationId] = urlHashArray + const [tag, operationId] = normalizedUrlSegments // We only put operations in the URL if(operationId) { return ["operations", tag, operationId]