From c0e0010bb9f7c3698385b1fb2e97271987b88980 Mon Sep 17 00:00:00 2001 From: Georgi Serev Date: Tue, 2 Dec 2025 13:05:54 +0200 Subject: [PATCH] fix(devtools): hide profiler node details when the frame is changed Hide the details panel when the user selects a new frame. (cherry picked from commit 2eaa4d54adad4376553ccab18b655bbece710232) --- .../recording-visualizer.component.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/recording-visualizer/recording-visualizer.component.ts b/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/recording-visualizer/recording-visualizer.component.ts index d3b98790022..d87f0aa87c7 100644 --- a/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/recording-visualizer/recording-visualizer.component.ts +++ b/devtools/projects/ng-devtools/src/lib/devtools-tabs/profiler/recording-timeline/recording-visualizer/recording-visualizer.component.ts @@ -42,8 +42,18 @@ export class RecordingVisualizerComponent { readonly changeDetection = input.required(); readonly cmpVisualizationModes = VisualizationMode; - private readonly selectedNode = linkedSignal({ - source: this.visualizationMode, + + private readonly selectedNodeCleanUpDeps = computed( + // We don't care about the output format as long as + // the value is different when a dependency changes + // (i.e. it acts as a hash). + // NOTE: It's safe to stringify the frames since they + // are valid JSON objects that are also exported as part + // of the profiler results report. + () => JSON.stringify(this.frame()) + this.visualizationMode(), + ); + private readonly selectedNode = linkedSignal({ + source: this.selectedNodeCleanUpDeps, computation: () => null, });