configcat-react
Version:
ConfigCat is a configuration as a service that lets you manage your features and configurations without actually deploying new code.
34 lines (33 loc) • 1.86 kB
JavaScript
"use client";
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useConfigCatClient = exports.useFeatureFlag = void 0;
var react_1 = require("react");
var ConfigCatContext_1 = require("./ConfigCatContext");
var ConfigCatProvider_1 = require("./ConfigCatProvider");
function useFeatureFlag(key, defaultValue, user, providerId) {
var configCatContextObj = (0, ConfigCatContext_1.getConfigCatContext)(providerId);
if (!configCatContextObj)
throw (0, ConfigCatProvider_1.createConfigCatProviderError)("useFeatureFlag", providerId);
var configCatContext = (0, react_1.useContext)(configCatContextObj);
if (!configCatContext)
throw (0, ConfigCatProvider_1.createConfigCatProviderError)("useFeatureFlag", providerId);
var _a = (0, react_1.useState)(defaultValue), featureFlagValue = _a[0], setFeatureFlag = _a[1];
var _b = (0, react_1.useState)(true), loading = _b[0], setLoading = _b[1];
(0, react_1.useEffect)(function () {
configCatContext.client.getValueAsync(key, defaultValue, user)
.then(function (v) { setFeatureFlag(v); setLoading(false); });
}, [configCatContext, key, defaultValue, JSON.stringify(user)]);
return { value: featureFlagValue, loading: loading };
}
exports.useFeatureFlag = useFeatureFlag;
function useConfigCatClient(providerId) {
var configCatContextObj = (0, ConfigCatContext_1.getConfigCatContext)(providerId);
if (!configCatContextObj)
throw (0, ConfigCatProvider_1.createConfigCatProviderError)("useConfigCatClient", providerId);
var configCatContext = (0, react_1.useContext)(configCatContextObj);
if (!configCatContext)
throw (0, ConfigCatProvider_1.createConfigCatProviderError)("useConfigCatClient", providerId);
return configCatContext.client;
}
exports.useConfigCatClient = useConfigCatClient;