UNPKG

@krowdy-ui/views

Version:

React components that implement Google's Material Design.

103 lines (86 loc) 2.99 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.styles = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _styles = require("@krowdy-ui/styles"); var _core = require("@krowdy-ui/core"); var styles = function styles(theme) { return { toggleContainer: { display: 'flex', justifyContent: 'space-between', marginBottom: theme.spacing(2), width: '100%' }, toggleLeft: { flex: 1, marginRight: theme.spacing(4) } }; }; exports.styles = styles; function ToggleRole(props) { var title = props.title, subtitle = props.subtitle, onChange = props.onChange, value = props.value, checked = props.checked, name = props.name, disabled = props.disabled, classes = props.classes; var _React$useState = _react["default"].useState(checked), _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2), active = _React$useState2[0], setActive = _React$useState2[1]; _react["default"].useEffect(function () { setActive(checked); }, [checked]); var _handleChange = function _handleChange() { setActive(function (prevState) { onChange(!prevState); return !prevState; }); }; return /*#__PURE__*/_react["default"].createElement("div", { className: classes.toggleContainer }, /*#__PURE__*/_react["default"].createElement("div", { className: classes.toggleLeft }, /*#__PURE__*/_react["default"].createElement(_core.Typography, { color: "body", gutterBottom: true, variant: "h6" }, title), /*#__PURE__*/_react["default"].createElement(_core.Typography, { color: "body", gutterBottom: true, variant: "body1" }, subtitle)), /*#__PURE__*/_react["default"].createElement("div", { className: classes.toggleRight }, /*#__PURE__*/_react["default"].createElement(_core.Switch, { checked: active, color: "primary", disabled: disabled, name: name, onChange: _handleChange, value: value }))); } process.env.NODE_ENV !== "production" ? ToggleRole.propTypes = { checked: _propTypes["default"].bool.isRequired, classes: _propTypes["default"].object, disabled: _propTypes["default"].bool, name: _propTypes["default"].string.isRequired, onchange: _propTypes["default"].func.isRequired, subtitle: _propTypes["default"].string, title: _propTypes["default"].string, value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]).isRequired } : void 0; ToggleRole.muiName = 'ToggleRole'; var _default = (0, _styles.withStyles)(styles, { name: 'ToggleRole' })(ToggleRole); exports["default"] = _default;