react-abtest
Version:
A simple React and React Native AB test component.
44 lines (33 loc) • 1.15 kB
JavaScript
;
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;