UNPKG

@selfcommunity/react-core

Version:

React Core Components useful for integrating UI Community components (react-ui).

39 lines (38 loc) 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useSCFeaturesEnabled = exports.useSCFeatureEnabled = void 0; const react_1 = require("react"); const SCPreferencesProvider_1 = require("../components/provider/SCPreferencesProvider"); /** * Custom hook to check if the feature is enabled * @param featureName - feature name * @returns boolean - true if the feature is in the list of features * * Ex. * const isTaggingEnabled = useSCFeatureEnabled(SCFeatureName.TAGGING); */ function useSCFeatureEnabled(featureName) { const { features } = (0, SCPreferencesProvider_1.useSCPreferences)(); return (0, react_1.useMemo)(() => { return Boolean(features && features.includes(featureName)); }, [features, featureName]); } exports.useSCFeatureEnabled = useSCFeatureEnabled; /** * Custom hook to check if a list of features are enabled * @param featureNames - feature names * @returns boolean - true if all features are in the features list * * Ex. * const hasRequiredFeatures = useSCFeaturesEnabled([ * SCFeatureName.TAGGING, * SCFeatureName.GROUPING * ]); */ function useSCFeaturesEnabled(featureNames) { const { features } = (0, SCPreferencesProvider_1.useSCPreferences)(); return (0, react_1.useMemo)(() => { return Boolean(features && featureNames.every((name) => features.includes(name))); }, [features, featureNames]); } exports.useSCFeaturesEnabled = useSCFeaturesEnabled;