From 1f472e2ecf0c4b16363bc9d6736b67177cd77b2f Mon Sep 17 00:00:00 2001 From: zernonia <59365435+zernonia@users.noreply.github.com> Date: Mon, 20 Jan 2025 23:00:23 +0800 Subject: [PATCH] fix(Splitter): isCollapsed not working on ssr --- .../radix-vue/src/Splitter/SplitterGroup.vue | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/radix-vue/src/Splitter/SplitterGroup.vue b/packages/radix-vue/src/Splitter/SplitterGroup.vue index 34c46086a..47bc6be66 100644 --- a/packages/radix-vue/src/Splitter/SplitterGroup.vue +++ b/packages/radix-vue/src/Splitter/SplitterGroup.vue @@ -522,7 +522,7 @@ function collapsePanel(panelData: PanelData) { assert( panelSize != null, - `Panel size not found for panel "${panelData.id}"`, + `Panel size not found for panel "${panelData.id}"`, ) if (panelSize !== collapsedSize) { @@ -625,7 +625,7 @@ function getPanelSize(panelData: PanelData) { assert( panelSize != null, - `Panel size not found for panel "${panelData.id}"`, + `Panel size not found for panel "${panelData.id}"`, ) return panelSize @@ -640,7 +640,16 @@ function isPanelCollapsed(panelData: PanelData) { panelSize, } = panelDataHelper(panelDataArray, panelData, layout) - return collapsible === true && panelSize === collapsedSize + if (!collapsible) + return false + + // panelSize is undefined during ssr due to vue ssr reactivity limitation. + if (panelSize === undefined) { + return panelData.constraints.defaultSize === panelData.constraints.collapsedSize + } + else { + return panelSize === collapsedSize + } } function isPanelExpanded(panelData: PanelData) { @@ -654,7 +663,7 @@ function isPanelExpanded(panelData: PanelData) { assert( panelSize != null, - `Panel size not found for panel "${panelData.id}"`, + `Panel size not found for panel "${panelData.id}"`, ) return !collapsible || panelSize > collapsedSize