import { ChangeEvent, Fragment, InputHTMLAttributes, useState } from 'react'; import Toggle from 'react-toggle'; import FormField from '~/components/common/form/_form_field'; import FormFieldError from '~/components/common/form/_form_field_error'; interface InputProps extends Omit, 'onChange'> { label: string; name: string; checked: boolean; errors?: string[]; onChange?: (name: string, checked: boolean) => void; } export default function Checkbox({ name, label, checked = false, errors = [], onChange, required = false, ...props }: InputProps): JSX.Element { const [checkboxChecked, setCheckboxChecked] = useState(checked); if (typeof window === 'undefined') return ; function _onChange({ target }: ChangeEvent) { setCheckboxChecked(target.checked); if (onChange) { onChange(target.name, target.checked); } } return ( {errors.length > 0 && errors.map((error) => {error})} ); }