mui-extended
Version:
Extended UI Components built on Material UI
23 lines (22 loc) • 1.16 kB
JavaScript
import { __assign, __rest } from "tslib";
import { jsx as _jsx } from "react/jsx-runtime";
import { FormControlLabel, Switch } from "@mui/material";
import { useMemo } from "react";
import { withFormField } from "../FormField";
import { withFormInputControl } from "./FormInputControl";
var ControlledSwitch = function (_a) {
var name = _a.name, value = _a.value, onChange = _a.onChange, onBlur = _a.onBlur, formControlLabelProps = _a.formControlLabelProps, props = __rest(_a, ["name", "value", "onChange", "onBlur", "formControlLabelProps"]);
var _onChange = useMemo(function () {
return function (event) {
onChange(event.target.name, event.target.checked);
};
}, [onChange]);
var _onBlur = useMemo(function () {
return function (event) {
onBlur(event.target.name);
};
}, [onBlur]);
var control = (_jsx(Switch, __assign({}, props, { name: name, checked: value, onChange: _onChange, onBlur: _onBlur })));
return _jsx(FormControlLabel, __assign({ control: control }, formControlLabelProps));
};
export var FormSwitch = withFormField(withFormInputControl(ControlledSwitch));