From e2da65b1f51f7c3f144f5f045bd70b66029f8a2e Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Wed, 3 Dec 2025 18:50:45 +0100 Subject: [PATCH 1/5] fix --- src/dashboard/Data/Browser/DataBrowser.react.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/dashboard/Data/Browser/DataBrowser.react.js b/src/dashboard/Data/Browser/DataBrowser.react.js index b06c4057a..820f55bde 100644 --- a/src/dashboard/Data/Browser/DataBrowser.react.js +++ b/src/dashboard/Data/Browser/DataBrowser.react.js @@ -1507,6 +1507,16 @@ export default class DataBrowser extends React.Component { ...other } = this.props; const { preventSchemaEdits, applicationId } = app; + + // Calculate effective panel width based on actual displayed panels + // When panelCount > 1 but fewer panels are actually displayed, reduce width proportionally + let effectivePanelWidth = this.state.panelWidth; + if (this.state.panelCount > 1 && this.state.displayedObjectIds.length > 0 && this.state.displayedObjectIds.length < this.state.panelCount) { + // Width per panel = total width / configured panel count + // Effective width = width per panel * actual number of displayed panels + effectivePanelWidth = (this.state.panelWidth / this.state.panelCount) * this.state.displayedObjectIds.length; + } + return (
@@ -1535,7 +1545,7 @@ export default class DataBrowser extends React.Component { selectedCells={this.state.selectedCells} handleCellClick={this.handleCellClick} isPanelVisible={this.state.isPanelVisible} - panelWidth={this.state.panelWidth} + panelWidth={effectivePanelWidth} isResizing={this.state.isResizing} setShowAggregatedData={this.setShowAggregatedData} showRowNumber={this.state.showRowNumber} @@ -1547,7 +1557,7 @@ export default class DataBrowser extends React.Component { /> {this.state.isPanelVisible && ( Date: Wed, 3 Dec 2025 23:03:39 +0100 Subject: [PATCH 2/5] fix --- src/dashboard/Data/Browser/DataBrowser.react.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/dashboard/Data/Browser/DataBrowser.react.js b/src/dashboard/Data/Browser/DataBrowser.react.js index 820f55bde..f4611e9ed 100644 --- a/src/dashboard/Data/Browser/DataBrowser.react.js +++ b/src/dashboard/Data/Browser/DataBrowser.react.js @@ -1511,10 +1511,11 @@ export default class DataBrowser extends React.Component { // Calculate effective panel width based on actual displayed panels // When panelCount > 1 but fewer panels are actually displayed, reduce width proportionally let effectivePanelWidth = this.state.panelWidth; - if (this.state.panelCount > 1 && this.state.displayedObjectIds.length > 0 && this.state.displayedObjectIds.length < this.state.panelCount) { + if (this.state.panelCount > 1 && this.state.displayedObjectIds.length < this.state.panelCount) { // Width per panel = total width / configured panel count - // Effective width = width per panel * actual number of displayed panels - effectivePanelWidth = (this.state.panelWidth / this.state.panelCount) * this.state.displayedObjectIds.length; + // Effective width = width per panel * actual number of displayed panels (or 1 if none) + const actualPanelCount = Math.max(this.state.displayedObjectIds.length, 1); + effectivePanelWidth = (this.state.panelWidth / this.state.panelCount) * actualPanelCount; } return ( From 9ac6eb0cb5f7e6350d97a21fca859e326fc05413 Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Thu, 4 Dec 2025 00:53:51 +0100 Subject: [PATCH 3/5] fix --- src/dashboard/Data/Browser/DataBrowser.react.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/dashboard/Data/Browser/DataBrowser.react.js b/src/dashboard/Data/Browser/DataBrowser.react.js index f4611e9ed..7b4d42c2a 100644 --- a/src/dashboard/Data/Browser/DataBrowser.react.js +++ b/src/dashboard/Data/Browser/DataBrowser.react.js @@ -1578,18 +1578,24 @@ export default class DataBrowser extends React.Component { ref={this.setMultiPanelWrapperRef} > {(() => { - // If no objects are displayed, show a single panel with "No object selected" + // If no objects are displayed, show a single panel if (this.state.displayedObjectIds.length === 0) { + // If there's a selected object, show its data + const panelData = this.state.selectedObjectId + ? (this.state.multiPanelData[this.state.selectedObjectId] || this.props.AggregationPanelData) + : {}; + const isLoading = this.state.selectedObjectId && this.props.isLoadingCloudFunction; + return ( From 4f38821104824f43fe43d16421ed445cf6a8644e Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Thu, 4 Dec 2025 00:59:09 +0100 Subject: [PATCH 4/5] fix --- .../Data/Browser/DataBrowser.react.js | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/dashboard/Data/Browser/DataBrowser.react.js b/src/dashboard/Data/Browser/DataBrowser.react.js index 7b4d42c2a..6781a728c 100644 --- a/src/dashboard/Data/Browser/DataBrowser.react.js +++ b/src/dashboard/Data/Browser/DataBrowser.react.js @@ -383,15 +383,31 @@ export default class DataBrowser extends React.Component { } handleResizeStop(event, { size }) { + // Convert effective width back to full panel width when there are hidden panels + let newPanelWidth = size.width; + if (this.state.panelCount > 1 && this.state.displayedObjectIds.length < this.state.panelCount) { + const actualPanelCount = Math.max(this.state.displayedObjectIds.length, 1); + // Reverse the calculation: fullWidth = (effectiveWidth / actualPanelCount) * panelCount + newPanelWidth = (size.width / actualPanelCount) * this.state.panelCount; + } + this.setState({ isResizing: false, - panelWidth: size.width, + panelWidth: newPanelWidth, }); - window.localStorage?.setItem(AGGREGATION_PANEL_WIDTH, size.width); + window.localStorage?.setItem(AGGREGATION_PANEL_WIDTH, newPanelWidth); } handleResizeDiv(event, { size }) { - this.setState({ panelWidth: size.width }); + // Convert effective width back to full panel width when there are hidden panels + let newPanelWidth = size.width; + if (this.state.panelCount > 1 && this.state.displayedObjectIds.length < this.state.panelCount) { + const actualPanelCount = Math.max(this.state.displayedObjectIds.length, 1); + // Reverse the calculation: fullWidth = (effectiveWidth / actualPanelCount) * panelCount + newPanelWidth = (size.width / actualPanelCount) * this.state.panelCount; + } + + this.setState({ panelWidth: newPanelWidth }); } setShowAggregatedData(bool) { From 004e764b4e26505562e3abd3417783709ec843e7 Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Thu, 4 Dec 2025 01:03:45 +0100 Subject: [PATCH 5/5] panel number in button --- src/components/Toolbar/Toolbar.react.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Toolbar/Toolbar.react.js b/src/components/Toolbar/Toolbar.react.js index 9193d9669..17940e7ac 100644 --- a/src/components/Toolbar/Toolbar.react.js +++ b/src/components/Toolbar/Toolbar.react.js @@ -177,12 +177,12 @@ const Toolbar = props => { {props.isPanelVisible ? ( <> - Hide Panel + Hide {props.panelCount > 1 ? `${props.panelCount} Panels` : 'Panel'} ) : ( <> - Show Panel + Show {props.panelCount > 1 ? `${props.panelCount} Panels` : 'Panel'} )}