UNPKG

react-abtest

Version:

A simple React and React Native AB test component.

44 lines (33 loc) 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireDefault(require("react")); var _utils = require("./utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ExperimentUniqueId = function ExperimentUniqueId(_ref) { var experimentName = _ref.experimentName, uid = _ref.uid, variants = _ref.variants, logger = _ref.logger; if (variants.length === 0) { return null; } var hash = (0, _utils.createHash)(uid + experimentName); var variant = hash % variants.length; var VariantComponent = variants[variant]; if (logger && typeof logger === 'function') { logger(variant); } return VariantComponent; }; ExperimentUniqueId.propTypes = { experimentName: _propTypes["default"].string.isRequired, uid: _propTypes["default"].string.isRequired, variants: _propTypes["default"].array.isRequired, logger: _propTypes["default"].func }; var _default = ExperimentUniqueId; exports["default"] = _default;