UNPKG

@gechiui/components

Version:
118 lines (98 loc) 3.38 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Guide; var _element = require("@gechiui/element"); var _classnames = _interopRequireDefault(require("classnames")); var _deprecated = _interopRequireDefault(require("@gechiui/deprecated")); var _i18n = require("@gechiui/i18n"); var _keycodes = require("@gechiui/keycodes"); var _modal = _interopRequireDefault(require("../modal")); var _button = _interopRequireDefault(require("../button")); var _pageControl = _interopRequireDefault(require("./page-control")); var _finishButton = _interopRequireDefault(require("./finish-button")); /** * External dependencies */ /** * GeChiUI dependencies */ /** * Internal dependencies */ function Guide(_ref) { let { children, className, contentLabel, finishButtonText, onFinish, pages = [] } = _ref; const [currentPage, setCurrentPage] = (0, _element.useState)(0); (0, _element.useEffect)(() => { if (_element.Children.count(children)) { (0, _deprecated.default)('Passing children to <Guide>', { since: '5.5', alternative: 'the `pages` prop' }); } }, [children]); if (_element.Children.count(children)) { pages = _element.Children.map(children, child => ({ content: child })); } const canGoBack = currentPage > 0; const canGoForward = currentPage < pages.length - 1; const goBack = () => { if (canGoBack) { setCurrentPage(currentPage - 1); } }; const goForward = () => { if (canGoForward) { setCurrentPage(currentPage + 1); } }; if (pages.length === 0) { return null; } return (0, _element.createElement)(_modal.default, { className: (0, _classnames.default)('components-guide', className), contentLabel: contentLabel, onRequestClose: onFinish, onKeyDown: event => { if (event.keyCode === _keycodes.LEFT) { goBack(); } else if (event.keyCode === _keycodes.RIGHT) { goForward(); } } }, (0, _element.createElement)("div", { className: "components-guide__container" }, (0, _element.createElement)("div", { className: "components-guide__page" }, pages[currentPage].image, pages.length > 1 && (0, _element.createElement)(_pageControl.default, { currentPage: currentPage, numberOfPages: pages.length, setCurrentPage: setCurrentPage }), pages[currentPage].content, !canGoForward && (0, _element.createElement)(_finishButton.default, { className: "components-guide__inline-finish-button", onClick: onFinish }, finishButtonText || (0, _i18n.__)('完成'))), (0, _element.createElement)("div", { className: "components-guide__footer" }, canGoBack && (0, _element.createElement)(_button.default, { className: "components-guide__back-button", onClick: goBack }, (0, _i18n.__)('上一步')), canGoForward && (0, _element.createElement)(_button.default, { className: "components-guide__forward-button", onClick: goForward }, (0, _i18n.__)('下一步')), !canGoForward && (0, _element.createElement)(_finishButton.default, { className: "components-guide__finish-button", onClick: onFinish }, finishButtonText || (0, _i18n.__)('完成'))))); } //# sourceMappingURL=index.js.map