11import {
22 AutocompleteProps ,
3+ CheckboxProps ,
34 Autocomplete as MuiAutocomplete ,
45 SxProps ,
6+ Checkbox as MuiCheckbox ,
7+ FormControlLabel ,
8+ FormControlLabelProps ,
59} from "@mui/material" ;
610import Box , { BoxProps } from "@mui/material/Box" ;
711import FormHelperText , {
@@ -18,11 +22,11 @@ import { ComponentProps, ComponentType, Ref, forwardRef } from "react";
1822import { paper } from "theme" ;
1923
2024export function Field <
21- Schema extends Record < string , string | number | object > = Record <
25+ Schema extends Record < string , string | number | object | boolean > = Record <
2226 string ,
23- string | number | object
27+ string | number | object | boolean
2428 > ,
25- T extends ComponentType < object > = typeof TextField
29+ T extends ComponentType < object > = typeof TextField ,
2630> ( {
2731 slotProps = { } ,
2832 as,
@@ -79,15 +83,36 @@ export const Select = forwardRef(
7983 } }
8084 ref = { ref }
8185 />
82- )
86+ ) ,
87+ ) ;
88+
89+ export const Checkbox = forwardRef (
90+ ( props : Partial < FormControlLabelProps > , ref : Ref < HTMLButtonElement > ) => {
91+ const form = useFormikContext ( ) ;
92+ return (
93+ < FormControlLabel
94+ label = "No label"
95+ { ...props }
96+ ref = { ref }
97+ control = {
98+ < MuiCheckbox
99+ defaultChecked = { ! ! props . value }
100+ onChange = { ( v ) => {
101+ form . setFieldValue ( props . name , v . target . checked ) ;
102+ } }
103+ />
104+ }
105+ />
106+ ) ;
107+ } ,
83108) ;
84109
85110export const Autocomplete = forwardRef ( function <
86111 Value ,
87112 Multiple extends boolean | undefined ,
88113 DisableClearable extends boolean | undefined ,
89114 FreeSolo extends boolean | undefined ,
90- ChipComponent extends React . ElementType = "div"
115+ ChipComponent extends React . ElementType = "div" ,
91116> (
92117 {
93118 autoCompleteProps,
@@ -105,7 +130,7 @@ export const Autocomplete = forwardRef(function <
105130 "renderInput"
106131 > ;
107132 } & TextFieldProps ,
108- ref : Ref < HTMLDivElement >
133+ ref : Ref < HTMLDivElement > ,
109134) {
110135 const form = useFormikContext ( ) ;
111136 return (
0 commit comments