UNPKG

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
"use client"; "use strict"; 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;