use-wizard
Version:
A dead-easy-to-use light-weight react hook to handle multi-paths wizards (and simple wizards too) and navigate into them.
27 lines • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useWizard = void 0;
var react_1 = require("react");
var getInitialStep_1 = require("./dependencies/getInitialStep");
var getWizardType_1 = require("./dependencies/nextStep/getWizardType");
var isTypeWizard_1 = require("./types/typeGuards/isTypeWizard");
var getWizardMethods_1 = require("./dependencies/getWizardMethods");
var useWizard = function (options) {
if (!isTypeWizard_1.isTypeWizard(options))
throw new Error("Wizard error: wrong wizard options, check the doc");
var wizardType = getWizardType_1.getWizardType({ options: options });
var _a = react_1.useState([getInitialStep_1.getInitialStep({ options: options, wizardType: wizardType })]), history = _a[0], setHistory = _a[1];
var _b = react_1.useState([]), poppedHistory = _b[0], setPoppedHistory = _b[1];
var step = history[history.length - 1];
var wizard = getWizardMethods_1.getWizardMethods({
history: history,
poppedHistory: poppedHistory,
setHistory: setHistory,
setPoppedHistory: setPoppedHistory,
wizardType: wizardType,
options: options
});
return [step, wizard];
};
exports.useWizard = useWizard;
//# sourceMappingURL=useWizard.js.map