django-bananas
Version:
React admin frontend for Django.
87 lines (86 loc) • 3.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _Button = _interopRequireDefault(require("@mui/material/Button"));
var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
var _FormControlLabel = _interopRequireDefault(require("@mui/material/FormControlLabel"));
var _FormGroup = _interopRequireDefault(require("@mui/material/FormGroup"));
var _FormLabel = _interopRequireDefault(require("@mui/material/FormLabel"));
var _Switch = _interopRequireDefault(require("@mui/material/Switch"));
var _styles = require("@mui/styles");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireDefault(require("react"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
var styles = theme => ({
reset: {
marginLeft: 48,
marginTop: theme.gap(1)
}
});
class SettingsForm extends _react.default.Component {
constructor() {
super(...arguments);
_defineProperty(this, "changeSetting", setting => event => {
if (this.props.onChange) {
this.props.onChange(setting, event.target.checked);
}
});
_defineProperty(this, "resetSettings", () => {
if (this.props.onReset) {
this.props.onReset();
}
});
}
render() {
var {
classes,
settings
} = this.props;
var labels = {
horizontal: "Horizontal Layout",
collapsable: "Collapsable Navigation",
collapsed: "Collapsed",
icons: "Show Menu Icons",
dense: "Dense Menu Items"
};
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_FormLabel.default, {
component: "legend"
}, "Settings"), /*#__PURE__*/_react.default.createElement(_FormControl.default, {
component: "fieldset"
}, /*#__PURE__*/_react.default.createElement(_FormGroup.default, null, ["horizontal", "collapsable", "collapsed", "icons", "dense"].map(setting => /*#__PURE__*/_react.default.createElement(_FormControlLabel.default, {
key: setting,
label: labels[setting],
disabled: setting === "collapsable" && (!settings.icons || !settings.horizontal) || setting === "collapsed" && (!settings.collapsable || !settings.icons || !settings.horizontal),
control: /*#__PURE__*/_react.default.createElement(_Switch.default, {
color: "primary",
checked: settings[setting],
value: setting,
onChange: this.changeSetting(setting)
})
}))), /*#__PURE__*/_react.default.createElement(_Button.default, {
classes: {
root: classes.reset
},
variant: "outlined",
size: "small",
color: "secondary",
onClick: this.resetSettings
}, "Reset")));
}
}
SettingsForm.propTypes = {
classes: _propTypes.default.object.isRequired,
settings: _propTypes.default.object.isRequired,
onChange: _propTypes.default.func,
onReset: _propTypes.default.func
};
SettingsForm.defaultProps = {
onChange: undefined,
onReset: undefined
};
var _default = exports.default = (0, _styles.withStyles)(styles)(SettingsForm);