@hackoregon/component-library
Version:
Official repo for Hack Oregon React component library
77 lines (71 loc) • 2.18 kB
JavaScript
function _templateObject() {
var data = _taggedTemplateLiteral(["\n cursor: pointer;\n"]);
_templateObject = function _templateObject() {
return data;
};
return data;
}
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
import { jsx, css } from "@emotion/core";
import PropTypes from "prop-types";
import FormLabel from "@material-ui/core/FormLabel";
import FormControlLabel from "@material-ui/core/FormControlLabel";
import MaterialRadio from "@material-ui/core/Radio";
import MaterialRadioGroup from "@material-ui/core/RadioGroup";
var radioButtonGroupClass = css(_templateObject());
var RadioButtonGroup = function RadioButtonGroup(_ref) {
var labels = _ref.labels,
onChange = _ref.onChange,
disabled = _ref.disabled,
value = _ref.value,
grpLabel = _ref.grpLabel,
labelPlacement = _ref.labelPlacement,
row = _ref.row;
return jsx(MaterialRadioGroup, {
"aria-label": grpLabel,
name: grpLabel,
onChange: onChange,
value: value,
row: row,
inputProps: {
"aria-labelledby": {
grpLabel: grpLabel
}
}
}, jsx(FormLabel, null, grpLabel), labels.map(function (label) {
return jsx(FormControlLabel, {
key: label.id,
value: label,
control: jsx(MaterialRadio, {
disabled: disabled,
css: radioButtonGroupClass,
inputProps: {
"aria-label": {
label: label
}
}
}),
label: label,
labelPlacement: labelPlacement
});
}));
};
RadioButtonGroup.displayName = "RadioButtonGroup";
RadioButtonGroup.propTypes = {
labels: PropTypes.arrayOf(PropTypes.string),
value: PropTypes.string,
grpLabel: PropTypes.string,
labelPlacement: PropTypes.string,
row: PropTypes.bool,
disabled: PropTypes.bool,
onChange: PropTypes.func
};
RadioButtonGroup.defaultProps = {
labels: ["Label 1", "Label 2", "Label 3"],
value: "Label 1",
grpLabel: "GroupLabel",
labelPlacement: "end",
row: false,
disabled: false
};
export default RadioButtonGroup;