From cb7673da444c8868ccedfb9b2e55c58897da0171 Mon Sep 17 00:00:00 2001 From: zernonia Date: Sun, 19 Jan 2025 22:16:57 +0800 Subject: [PATCH] fix: panelSize undefined during 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