@selfcommunity/react-core
Version:
React Core Components useful for integrating UI Community components (react-ui).
39 lines (38 loc) • 1.48 kB
JavaScript
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;
;