@pantheon-systems/design-toolkit-react
Version:
Pantheon's React Design Toolkit
39 lines (36 loc) • 1.33 kB
JavaScript
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
import PropTypes from 'prop-types';
import { useState, useEffect } from 'react';
import { StepperApiContext, StepperStateContext } from './Context.js';
import StepperController from './StepperController.js';
import { jsx } from 'react/jsx-runtime';
var Stepper = function Stepper(_ref) {
var children = _ref.children,
onComplete = _ref.onComplete;
var _useState = useState(StepperController.getStateDefaults()),
_useState2 = _slicedToArray(_useState, 2),
state = _useState2[0],
setState = _useState2[1];
var _useState3 = useState(new StepperController(setState)),
_useState4 = _slicedToArray(_useState3, 1),
controller = _useState4[0];
var isComplete = state.isComplete;
useEffect(function () {
if (isComplete) onComplete(state);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [isComplete]);
return /*#__PURE__*/jsx(StepperApiContext.Provider, {
value: controller.getGateApi(),
children: /*#__PURE__*/jsx(StepperStateContext.Provider, {
value: state,
children: children
})
});
};
Stepper.propTypes = {
children: PropTypes.node.isRequired,
onComplete: PropTypes.func.isRequired
};
var Stepper$1 = Stepper;
export { Stepper$1 as default };
//# sourceMappingURL=Stepper.js.map