UNPKG

react-intro-slider

Version:

`Simple and configurable app introduction slider for react`

138 lines (127 loc) 4.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require("react"); var _react2 = _interopRequireDefault(_react); var _propTypes = require("prop-types"); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Controller = function Controller(props) { var activeSlide = props.activeSlide, slides = props.slides, controllerIconActiveStyle = props.controllerIconActiveStyle, controllerIconInactiveStyle = props.controllerIconInactiveStyle, nextButton = props.nextButton, nextButtonStyle = props.nextButtonStyle, nextSlide = props.nextSlide, skipSlider = props.skipSlider, skipButton = props.skipButton, skipButtonStyle = props.skipButtonStyle, orientation = props.orientation, nextLabel = props.nextLabel, skipLabel = props.skipLabel, doneLabel = props.doneLabel, controllerIconActive = props.controllerIconActive, controllerIconInactive = props.controllerIconInactive; var controllerIcons = []; var nextDefaultLabel = activeSlide === slides - 1 ? doneLabel || "DONE" : "NEXT"; var skipDefaultLabel = "SKIP"; for (var i = 0; i < slides; i += 1) { if (activeSlide === i) { controllerIcons.push(controllerIconActive || _react2.default.createElement("div", { key: i, style: controllerIconActiveStyle, className: "ris-bullet ris-bullet-active" })); } else { controllerIcons.push(controllerIconInactive || _react2.default.createElement("div", { key: i, style: controllerIconInactiveStyle, className: "ris-bullet ris-bullet-inactive" })); } } var renderVerticalController = function renderVerticalController() { return _react2.default.createElement( "div", { className: "ris-controller-container ris-controller-vertical" }, _react2.default.createElement( "div", { className: "ris-slide-icons-container" }, controllerIcons ), nextButton && _react2.default.createElement( "button", { type: "button", className: "ris-control-button ris-button-vertical", onClick: nextSlide, style: nextButtonStyle }, nextLabel || nextDefaultLabel ), skipButton && _react2.default.createElement( "button", { type: "button", className: "ris-control-button ris-button-vertical", onClick: skipSlider, style: skipButtonStyle }, skipLabel || skipDefaultLabel ) ); }; var renderHorizontalController = function renderHorizontalController() { return _react2.default.createElement( "div", { className: "ris-controller-container ris-controller-horizontal" }, _react2.default.createElement( "div", { className: "ris-slide-icons-container" }, controllerIcons ), skipButton && _react2.default.createElement( "button", { type: "button", className: "ris-control-button ris-button-horizontal", onClick: skipSlider, style: skipButtonStyle }, skipLabel || skipDefaultLabel ), nextButton && _react2.default.createElement( "button", { type: "button", className: "ris-control-button ris-button-horizontal", onClick: nextSlide, style: nextButtonStyle }, nextLabel || nextDefaultLabel ) ); }; return orientation === "vertical" ? renderVerticalController() : renderHorizontalController(); }; Controller.propTypes = { activeSlide: _propTypes2.default.number, slides: _propTypes2.default.number, nextButton: _propTypes2.default.bool, nextSlide: _propTypes2.default.func, skipButton: _propTypes2.default.bool, skipSlider: _propTypes2.default.func, skipButtonStyle: _propTypes2.default.object, nextButtonStyle: _propTypes2.default.object, orientation: _propTypes2.default.string, controllerIconActiveStyle: _propTypes2.default.object, controllerIconInactiveStyle: _propTypes2.default.object, skilLabel: _propTypes2.default.string, nextLabel: _propTypes2.default.string, doneLabel: _propTypes2.default.string, controllerIconActive: _propTypes2.default.node, controllerIconInactive: _propTypes2.default.node }; exports.default = Controller;