@react-awesome-query-builder/mui
Version:
User-friendly query builder for React. MUI 5 widgets
51 lines • 1.61 kB
JavaScript
import React from "react";
import Switch from "@mui/material/Switch";
import FormControlLabel from "@mui/material/FormControlLabel";
import IconButton from "@mui/material/IconButton";
import Button from "@mui/material/Button";
import LockOpenIcon from "@mui/icons-material/LockOpen";
import LockIcon from "@mui/icons-material/Lock";
export default (function (_ref) {
var value = _ref.value,
setValue = _ref.setValue,
label = _ref.label,
checkedLabel = _ref.checkedLabel,
hideLabel = _ref.hideLabel,
id = _ref.id,
config = _ref.config,
type = _ref.type;
var renderSize = config.settings.renderSize;
var onChange = function onChange(e) {
return setValue(e.target.checked);
};
var onClick = function onClick() {
return setValue(!value);
};
var postfix = type;
var showLabel = value ? checkedLabel || label : label;
var icon = value ? /*#__PURE__*/React.createElement(LockIcon, null) : /*#__PURE__*/React.createElement(LockOpenIcon, null);
if (type == "lock") {
if (hideLabel) {
return /*#__PURE__*/React.createElement(IconButton, {
key: id + postfix,
onClick: onClick,
size: "small"
}, icon);
} else {
return /*#__PURE__*/React.createElement(Button, {
key: id + postfix,
onClick: onClick,
size: "small",
startIcon: icon
}, showLabel);
}
}
return /*#__PURE__*/React.createElement(FormControlLabel, {
control: /*#__PURE__*/React.createElement(Switch, {
checked: !!value,
size: "small",
onChange: onChange
}),
label: showLabel
});
});