react-abtest
Version:
A simple React and React Native AB test component.
59 lines (46 loc) • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireDefault(require("react"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var ExperimentValueGroup = function ExperimentValueGroup(_ref) {
var userGroup = _ref.userGroup,
variants = _ref.variants,
logger = _ref.logger;
var VariantComponent = null;
variants.some(function (variant, i) {
if (typeof variant.group === 'number') {
if (variant.group === userGroup) {
VariantComponent = variant.component;
if (logger && typeof logger === 'function') {
logger(i);
}
return true;
}
}
if (typeof variant.group === 'string') {
var range = variant.group.split('-').map(function (num) {
return parseInt(num, 10);
});
if (userGroup >= range[0] && userGroup <= range[1]) {
VariantComponent = variant.component;
if (logger && typeof logger === 'function') {
logger(i);
}
return true;
}
}
return false;
});
return VariantComponent || null;
};
ExperimentValueGroup.propTypes = {
userGroup: _propTypes["default"].number.isRequired,
variants: _propTypes["default"].array.isRequired,
logger: _propTypes["default"].func
};
var _default = ExperimentValueGroup;
exports["default"] = _default;