Skip to content

Commit 9aa78bb

Browse files
authored
Linked Time: Use global range selection value when linked time is enabled (#6254)
## Motivation for features / changes See #6240 for why we are moving the step selector to redux. When the linked time is enabled, card specific range selection overrides should be ignored. ## Screenshots of UI changes None ## Detailed steps to verify changes work correctly (as executed by you) 1) Patch #6240 2) Start TensorBoard 3) Navigate to localhost:6006 4) Enable step selection on a scalar card 5) Enable step selection on a second card 6) Enable linked time 7) Add an end step to the second card 8) An end step should appear on the first card * Alternate designs / implementations considered
1 parent 3e8fa02 commit 9aa78bb

File tree

2 files changed

+60
-16
lines changed

2 files changed

+60
-16
lines changed

tensorboard/webapp/metrics/store/metrics_selectors.ts

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -394,22 +394,6 @@ export const getMetricsRangeSelectionEnabled = createSelector(
394394
}
395395
);
396396

397-
export const getMetricsCardRangeSelectionEnabled = createSelector(
398-
getMetricsRangeSelectionEnabled,
399-
getCardStateMap,
400-
(
401-
globalRangeSelectionEnabled: boolean,
402-
cardStateMap: CardStateMap,
403-
cardId: CardId
404-
) => {
405-
const cardState = cardStateMap[cardId];
406-
return getCardSelectionStateToBoolean(
407-
cardState?.rangeSelectionOverride,
408-
globalRangeSelectionEnabled
409-
);
410-
}
411-
);
412-
413397
export const getMetricsStepMinMax = createSelector(
414398
selectMetricsState,
415399
(state: MetricsState): {min: number; max: number} => {
@@ -499,6 +483,28 @@ export const isMetricsSlideoutMenuOpen = createSelector(
499483
(state): boolean => state.isSlideoutMenuOpen
500484
);
501485

486+
export const getMetricsCardRangeSelectionEnabled = createSelector(
487+
getMetricsRangeSelectionEnabled,
488+
getMetricsLinkedTimeEnabled,
489+
getCardStateMap,
490+
(
491+
globalRangeSelectionEnabled: boolean,
492+
linkedTimeEnabled: boolean,
493+
cardStateMap: CardStateMap,
494+
cardId: CardId
495+
) => {
496+
if (linkedTimeEnabled) {
497+
return globalRangeSelectionEnabled;
498+
}
499+
500+
const cardState = cardStateMap[cardId];
501+
return getCardSelectionStateToBoolean(
502+
cardState?.rangeSelectionOverride,
503+
globalRangeSelectionEnabled
504+
);
505+
}
506+
);
507+
502508
/**
503509
* Gets the min and max step visible in a metrics card.
504510
* This value can either be the data min max or be overridden

tensorboard/webapp/metrics/store/metrics_selectors_test.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,6 +1118,44 @@ describe('metrics selectors', () => {
11181118
)
11191119
).toBeFalse();
11201120
});
1121+
1122+
it('returns global value when linked time is enabled', () => {
1123+
expect(
1124+
selectors.getMetricsCardRangeSelectionEnabled(
1125+
appStateFromMetricsState(
1126+
buildMetricsState({
1127+
rangeSelectionEnabled: true,
1128+
linkedTimeEnabled: true,
1129+
cardStateMap: {
1130+
card1: {
1131+
rangeSelectionOverride:
1132+
CardFeatureOverride.OVERRIDE_AS_DISABLED,
1133+
},
1134+
},
1135+
})
1136+
),
1137+
'card1'
1138+
)
1139+
).toBeTrue();
1140+
1141+
expect(
1142+
selectors.getMetricsCardRangeSelectionEnabled(
1143+
appStateFromMetricsState(
1144+
buildMetricsState({
1145+
rangeSelectionEnabled: false,
1146+
linkedTimeEnabled: true,
1147+
cardStateMap: {
1148+
card1: {
1149+
rangeSelectionOverride:
1150+
CardFeatureOverride.OVERRIDE_AS_ENABLED,
1151+
},
1152+
},
1153+
})
1154+
),
1155+
'card1'
1156+
)
1157+
).toBeFalse();
1158+
});
11211159
});
11221160

11231161
describe('getMetricsStepMinMax', () => {

0 commit comments

Comments
 (0)