saleor-dashboard/src/components/ControlledCheckbox.tsx

38 lines
828 B
TypeScript
Raw Normal View History

2020-08-17 11:42:37 +00:00
import Checkbox from "@material-ui/core/Checkbox";
2019-06-19 14:40:52 +00:00
import FormControlLabel from "@material-ui/core/FormControlLabel";
2019-08-09 10:26:22 +00:00
import React from "react";
2019-06-19 14:40:52 +00:00
interface ControlledCheckboxProps {
2019-11-12 12:21:37 +00:00
className?: string;
2019-06-19 14:40:52 +00:00
name: string;
label?: React.ReactNode;
checked: boolean;
disabled?: boolean;
onChange(event: any);
}
export const ControlledCheckbox: React.FC<ControlledCheckboxProps> = ({
checked,
disabled,
name,
label,
2019-11-12 12:21:37 +00:00
onChange,
...props
}) => (
2019-06-19 14:40:52 +00:00
<FormControlLabel
disabled={disabled}
control={
<Checkbox
checked={!!checked}
2020-03-23 10:49:25 +00:00
disabled={disabled}
2019-06-19 14:40:52 +00:00
name={name}
onChange={() => onChange({ target: { name, value: !checked } })}
/>
}
label={label}
2019-11-12 12:21:37 +00:00
{...props}
2019-06-19 14:40:52 +00:00
/>
);
ControlledCheckbox.displayName = "ControlledCheckbox";
export default ControlledCheckbox;