@vimeo/iris
Version:
Vimeo Design System
37 lines (34 loc) • 1.43 kB
JavaScript
import { _ as __read } from '../../tslib.es6-7f0e734f.js';
import React__default, { createContext, useState } from 'react';
import { generateUID } from '../../utils/general/generateUID.esm.js';
var TourContext = 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 = __read(useState(1), 2), active = _e[0], activeSet = _e[1];
if (!id)
id = 'iris-tour-' + 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.createElement(TourContext.Provider, { value: value }, children));
}
export { Tour, TourContext };