@@ -100,11 +100,12 @@ export function useMetricWidgets() {
100
100
const setWidgets = useCallback (
101
101
( newWidgets : React . SetStateAction < MetricsWidget [ ] > ) => {
102
102
const currentWidgets = currentWidgetsRef . current ;
103
- updateQuery ( {
104
- widgets : JSON . stringify (
105
- typeof newWidgets === 'function' ? newWidgets ( currentWidgets ) : newWidgets
106
- ) ,
107
- } ) ;
103
+ const newData =
104
+ typeof newWidgets === 'function' ? newWidgets ( currentWidgets ) : newWidgets ;
105
+
106
+ updateQuery ( { widgets : JSON . stringify ( newData ) } ) ;
107
+ // We need to update the ref so that the next call to setWidgets in the same render cycle will have the updated value
108
+ currentWidgetsRef . current = newData ;
108
109
} ,
109
110
[ updateQuery , currentWidgetsRef ]
110
111
) ;
@@ -230,7 +231,7 @@ export function DDMContextProvider({children}: {children: React.ReactNode}) {
230
231
const { setDefaultQuery, isDefaultQuery} = useDefaultQuery ( ) ;
231
232
232
233
const [ selectedWidgetIndex , setSelectedWidgetIndex ] = useState ( 0 ) ;
233
- const { widgets, updateWidget, addWidget, removeWidget, duplicateWidget} =
234
+ const { widgets, updateWidget, addWidget, removeWidget, duplicateWidget, setWidgets } =
234
235
useMetricWidgets ( ) ;
235
236
236
237
const [ metricsSamples , setMetricsSamples ] = useState <
@@ -338,9 +339,15 @@ export function DDMContextProvider({children}: {children: React.ReactNode}) {
338
339
const firstVisibleWidgetIndex = widgets . findIndex ( w => ! w . isHidden ) ;
339
340
setSelectedWidgetIndex ( firstVisibleWidgetIndex ) ;
340
341
}
342
+ if ( ! isMultiChartMode ) {
343
+ // Reset the focused series when hiding a widget
344
+ setWidgets ( currentWidgets => {
345
+ return currentWidgets . map ( w => ( { ...w , focusedSeries : undefined } ) ) ;
346
+ } ) ;
347
+ }
341
348
updateWidget ( index , { isHidden : ! widgets [ index ] . isHidden } ) ;
342
349
} ,
343
- [ selectedWidgetIndex , updateWidget , widgets ]
350
+ [ isMultiChartMode , selectedWidgetIndex , setWidgets , updateWidget , widgets ]
344
351
) ;
345
352
346
353
const selectedWidget = widgets [ selectedWidgetIndex ] ;
0 commit comments