From 758c12101eaebe4dd71c3e600ccd298154954156 Mon Sep 17 00:00:00 2001 From: Bilawal Hameed Date: Thu, 26 Mar 2020 16:00:32 +0100 Subject: [PATCH] [core/api] added toggle method to FeatureFlags --- packages/core/src/api/apis/definitions/featureFlags.ts | 5 +++++ packages/core/src/api/app/FeatureFlags.tsx | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/packages/core/src/api/apis/definitions/featureFlags.ts b/packages/core/src/api/apis/definitions/featureFlags.ts index c3656ac4cd..dbebec643b 100644 --- a/packages/core/src/api/apis/definitions/featureFlags.ts +++ b/packages/core/src/api/apis/definitions/featureFlags.ts @@ -45,6 +45,11 @@ export type FeatureFlagsApi = { * Disable an registered feature flag. */ disable(name: FeatureFlagName): void; + + /** + * Toggle an registered feature flag on or off. + */ + toggle(name: FeatureFlagName): void; }; export const featureFlagsApiRef = new ApiRef({ diff --git a/packages/core/src/api/app/FeatureFlags.tsx b/packages/core/src/api/app/FeatureFlags.tsx index a5b0c7eaed..55558bfc1a 100644 --- a/packages/core/src/api/app/FeatureFlags.tsx +++ b/packages/core/src/api/app/FeatureFlags.tsx @@ -74,6 +74,10 @@ export class FeatureFlags { flags.delete(name); this.saveUserEnabledFeatureFlags(flags); } + + static toggle(name: FeatureFlagName): void { + (this.getItem(name) ? this.disable : this.enable).bind(this)(name); + } } /**