Skip to content

Commit 62d253d

Browse files
japie1235813yatbear
authored andcommitted
Feature Flag: add feature flag for card width setting (tensorflow#5422)
1 parent 2ce816d commit 62d253d

File tree

8 files changed

+66
-0
lines changed

8 files changed

+66
-0
lines changed

tensorboard/webapp/feature_flag/store/feature_flag_selectors.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,3 +116,10 @@ export const getIsTimeSeriesPromotionEnabled = createSelector(
116116
return flags.enableTimeSeriesPromotion;
117117
}
118118
);
119+
120+
export const getEnabledCardWidthSetting = createSelector(
121+
getFeatureFlags,
122+
(flags: FeatureFlags): boolean => {
123+
return flags.enabledCardWidthSetting;
124+
}
125+
);

tensorboard/webapp/feature_flag/store/feature_flag_selectors_test.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,4 +315,29 @@ describe('feature_flag_selectors', () => {
315315
expect(selectors.getIsTimeSeriesPromotionEnabled(state)).toEqual(true);
316316
});
317317
});
318+
319+
describe('#getEnabledCardWidthSetting', () => {
320+
it('returns the proper value', () => {
321+
let state = buildState(
322+
buildFeatureFlagState({
323+
defaultFlags: buildFeatureFlag({
324+
enabledCardWidthSetting: false,
325+
}),
326+
})
327+
);
328+
expect(selectors.getEnabledCardWidthSetting(state)).toEqual(false);
329+
330+
state = buildState(
331+
buildFeatureFlagState({
332+
defaultFlags: buildFeatureFlag({
333+
enabledCardWidthSetting: false,
334+
}),
335+
flagOverrides: {
336+
enabledCardWidthSetting: true,
337+
},
338+
})
339+
);
340+
expect(selectors.getEnabledCardWidthSetting(state)).toEqual(true);
341+
});
342+
});
318343
});

tensorboard/webapp/feature_flag/store/feature_flag_store_config_provider.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export const initialState: FeatureFlagState = {
3131
metricsImageSupportEnabled: true,
3232
enabledLinkedTime: false,
3333
enableTimeSeriesPromotion: false,
34+
enabledCardWidthSetting: false,
3435
},
3536
flagOverrides: {},
3637
};

tensorboard/webapp/feature_flag/testing.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export function buildFeatureFlag(
3030
metricsImageSupportEnabled: true,
3131
enabledLinkedTime: false,
3232
enableTimeSeriesPromotion: false,
33+
enabledCardWidthSetting: false,
3334
...override,
3435
};
3536
}

tensorboard/webapp/feature_flag/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,6 @@ export interface FeatureFlags {
4545
enabledLinkedTime: boolean;
4646
// Whether to enable TimeSeries promotion butter bar.
4747
enableTimeSeriesPromotion: boolean;
48+
// Whether to enable card width adjustment on the right panle.
49+
enabledCardWidthSetting: boolean;
4850
}

tensorboard/webapp/webapp_data_source/tb_feature_flag_data_source.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {Injectable} from '@angular/core';
1616

1717
import {FeatureFlags} from '../feature_flag/types';
1818
import {
19+
ENABLE_CARD_WIDTH_SETTING_PARAM_KEY,
1920
ENABLE_COLOR_GROUP_BY_REGEX_QUERY_PARAM_KEY,
2021
ENABLE_COLOR_GROUP_QUERY_PARAM_KEY,
2122
ENABLE_DARK_MODE_QUERY_PARAM_KEY,
@@ -79,6 +80,11 @@ export class QueryParamsFeatureFlagDataSource
7980
params.get(ENABLE_LINK_TIME_PARAM_KEY) !== 'false';
8081
}
8182

83+
if (params.has(ENABLE_CARD_WIDTH_SETTING_PARAM_KEY)) {
84+
featureFlags.enabledCardWidthSetting =
85+
params.get(ENABLE_CARD_WIDTH_SETTING_PARAM_KEY) !== 'false';
86+
}
87+
8288
return featureFlags;
8389
}
8490

tensorboard/webapp/webapp_data_source/tb_feature_flag_data_source_test.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,28 @@ describe('tb_feature_flag_data_source', () => {
140140
});
141141
});
142142

143+
it('returns enableCardWidthSetting from the query params', () => {
144+
getParamsSpy.and.returnValues(
145+
new URLSearchParams('enableCardWidthSetting=false'),
146+
new URLSearchParams('enableCardWidthSetting='),
147+
new URLSearchParams('enableCardWidthSetting=true'),
148+
new URLSearchParams('enableCardWidthSetting=foo')
149+
);
150+
151+
expect(dataSource.getFeatures()).toEqual({
152+
enabledCardWidthSetting: false,
153+
});
154+
expect(dataSource.getFeatures()).toEqual({
155+
enabledCardWidthSetting: true,
156+
});
157+
expect(dataSource.getFeatures()).toEqual({
158+
enabledCardWidthSetting: true,
159+
});
160+
expect(dataSource.getFeatures()).toEqual({
161+
enabledCardWidthSetting: true,
162+
});
163+
});
164+
143165
it('returns all flag values when they are all set', () => {
144166
getParamsSpy.and.returnValue(
145167
new URLSearchParams(

tensorboard/webapp/webapp_data_source/tb_feature_flag_data_source_types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ export const EXPERIMENTAL_PLUGIN_QUERY_PARAM_KEY = 'experimentalPlugin';
3535

3636
export const SCALARS_BATCH_SIZE_PARAM_KEY = 'scalarsBatchSize';
3737

38+
export const ENABLE_CARD_WIDTH_SETTING_PARAM_KEY = 'enableCardWidthSetting';
39+
3840
export const ENABLE_COLOR_GROUP_QUERY_PARAM_KEY = 'enableColorGroup';
3941

4042
export const ENABLE_COLOR_GROUP_BY_REGEX_QUERY_PARAM_KEY =

0 commit comments

Comments
 (0)