import * as React from "react";
import { Checkbox as $Checkbox } from "antd";
import { Field, FieldProps } from "formik";
import { CheckboxProps as $CheckboxProps } from "antd/lib/checkbox/Checkbox";
import { FormikFieldProps } from "../FieldProps";
import { CheckboxGroupProps as $CheckboxGroupProps } from "antd/lib/checkbox/Group";
export type CheckboxProps = FormikFieldProps & $CheckboxProps;
export const Checkbox = ({ name, validate, onChange, ...restProps }: CheckboxProps) => (
{({ field: { value }, form: { setFieldValue, setFieldTouched } }: FieldProps) => (
<$Checkbox
name={name}
checked={value}
onChange={event => {
setFieldValue(name, event.target.checked)
setFieldTouched(name, true)
onChange && onChange(event)
}}
{...restProps}
/>
)}
);
export default Checkbox
export type CheckboxGroupProps = FormikFieldProps & $CheckboxGroupProps;
Checkbox.Group = ({ name, validate, onChange, ...restProps }: CheckboxGroupProps) => (
{({ field: { value }, form: { setFieldValue, setFieldTouched } }: FieldProps) => (
<$Checkbox.Group
value={value}
onChange={value => {
setFieldValue(name, value)
setFieldTouched(name, true)
onChange && onChange(value)
}}
{...restProps}
/>
)}
);