UNPKG

yandex-metrica-ab-react

Version:

React библиотека для работы с AB экспериментами Метрики

35 lines (34 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useExperiments = void 0; const react_1 = require("react"); const createSnippet_1 = require("./createSnippet"); const useJsonStringify = (data = {}) => { try { return JSON.stringify(data); } catch (e) { console.error(e); return '{}'; } }; const useExperiments = (params) => { const { clientId, clientFeatures, config = {}, param: i } = params; const [data, setData] = (0, react_1.useState)({ ready: false, flags: {} }); const configKey = useJsonStringify(config); const featuresKey = useJsonStringify(clientFeatures); const href = window.location.href; (0, react_1.useEffect)(() => (0, createSnippet_1.createSnippet)(), []); (0, react_1.useEffect)(() => { const enableVisual = typeof config.enableVisual === 'undefined' || config.enableVisual; window.ymab({ clientId, clientFeatures, config: Object.assign(Object.assign({}, config), { enableWatch: typeof config.enableWatch === 'undefined' ? enableVisual : config.enableWatch }), i, callback: (data) => setData(Object.assign(Object.assign({}, data), { ready: true })), }); }, [clientId, featuresKey, configKey, i, href]); return data; }; exports.useExperiments = useExperiments;