UNPKG

@krowdy-ui/views

Version:

React components that implement Google's Material Design.

131 lines (113 loc) 3.72 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 _clsx = _interopRequireDefault(require("clsx")); var _core = require("@krowdy-ui/core"); var _styles = require("@krowdy-ui/styles"); var _propTypes = _interopRequireDefault(require("prop-types")); var styles = function styles(theme) { return { boxContainer: { display: 'flex', paddingTop: 12 }, isRow: { flexDirection: 'row' }, isVert: { flexDirection: 'column' }, label: { fontSize: 14 }, noLine: { margin: 0, padding: theme.spacing(1.5, 1) }, outlineRow: { margin: theme.spacing(0, 1, 0, 0) }, outlined: { '&:hover': { border: "1px solid ".concat(theme.palette.primary[400]) }, border: "1px solid ".concat(theme.palette.grey[300]), padding: theme.spacing(1.5, 1.25) }, outlinedVert: { margin: theme.spacing(0.6, 0, 0.6, 0) }, roundBorder: { '&:hover': { border: "1px solid ".concat(theme.palette.primary[400]) }, border: "1px solid ".concat(theme.palette.grey[300]), borderRadius: 8, minWidth: 120 } }; }; exports.styles = styles; var _ref = /*#__PURE__*/_react["default"].createElement(_core.Radio, { color: "primary", disableRipple: true, size: "small" }); var RadioLabelGroup = function RadioLabelGroup(props) { var classes = props.classes, isRow = props.isRow, _props$items = props.items, items = _props$items === void 0 ? [] : _props$items, _props$onChange = props.onChange, onChange = _props$onChange === void 0 ? function () {} : _props$onChange, outlined = props.outlined, value = props.value, name = props.name; var _React$useState = _react["default"].useState(value), _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2), currentValue = _React$useState2[0], setValue = _React$useState2[1]; var handleChange = function handleChange(event) { setValue(event.target.value); onChange(event); }; return /*#__PURE__*/_react["default"].createElement(_core.RadioGroup, { className: (0, _clsx["default"])(classes.boxContainer, isRow ? classes.isRow : classes.isVert), name: name, onChange: handleChange, row: isRow, value: currentValue }, items.map(function (element, index) { return /*#__PURE__*/_react["default"].createElement(_core.FormControlLabel, { classes: { label: classes.label }, className: (0, _clsx["default"])(outlined ? classes.outlined && classes["".concat(outlined, "Border")] : classes.noLine, isRow ? classes.outlineRow : classes.outlinedVert), control: _ref, key: index, label: element.label, value: element.value }); })); }; process.env.NODE_ENV !== "production" ? RadioLabelGroup.propTypes = { classes: _propTypes["default"].object, isRow: _propTypes["default"].bool, items: _propTypes["default"].arrayOf(_propTypes["default"].shape({ label: _propTypes["default"].string, value: _propTypes["default"].any })), name: _propTypes["default"].string, onChange: _propTypes["default"].func, value: _propTypes["default"].any } : void 0; RadioLabelGroup.muiName = 'RadioLabelGroup'; var _default = (0, _styles.withStyles)(styles, { name: 'KrowdyRadioLabelGroup' })(RadioLabelGroup); exports["default"] = _default;