@vimeo/iris
Version:
Vimeo Design System
46 lines (39 loc) • 1.74 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var tslib_es6 = require('../../tslib.es6-3ec409b7.js');
var React = require('react');
var utils_general_generateUID = require('../../utils/general/generateUID.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var TourContext = React.createContext({});
function Tour(_a) {
var children = _a.children, _b = _a.id, id = _b === void 0 ? null : _b, _c = _a.steps, steps = _c === void 0 ? 2 : _c, _d = _a.automated, automated = _d === void 0 ? true : _d;
var _e = tslib_es6.__read(React.useState(1), 2), active = _e[0], activeSet = _e[1];
if (!id)
id = 'iris-tour-' + utils_general_generateUID.generateUID();
function activeSetExtrinsic(setter) {
var index = typeof setter === 'number' && setter;
var number = typeof index === 'number';
var dismiss = typeof setter !== 'function' && !number;
if (dismiss)
return activeSet(null);
if (typeof setter === 'function') {
var state = setter(active);
return activeSet(state);
}
if (typeof setter === 'number') {
var withinRange = number && (index < steps || index > 0);
return activeSet(withinRange ? index : null);
}
}
var value = {
active: active,
activeSet: activeSetExtrinsic,
id: id,
steps: steps,
automated: automated,
};
return (React__default["default"].createElement(TourContext.Provider, { value: value }, children));
}
exports.Tour = Tour;
exports.TourContext = TourContext;