UNPKG

informed

Version:

A lightweight framework and utility for building powerful forms in React applications

41 lines (38 loc) 1.42 kB
import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js'; import React from 'react'; import { useField } from '../../hooks/useField.js'; var _excluded = ["id", "label"]; var Checkbox = function Checkbox(props) { var _useField = useField(props), render = _useField.render, userProps = _useField.userProps, fieldState = _useField.fieldState, fieldApi = _useField.fieldApi; var setValue = fieldApi.setValue, setTouched = fieldApi.setTouched; var value = fieldState.value, error = fieldState.error, showError = fieldState.showError; var id = userProps.id, label = userProps.label, rest = _objectWithoutProperties(userProps, _excluded); return render( /*#__PURE__*/React.createElement(React.Fragment, null, label ? /*#__PURE__*/React.createElement("label", { htmlFor: id }, label) : null, /*#__PURE__*/React.createElement("input", _extends({}, rest, { id: id, checked: !!value, "aria-invalid": !!showError, "aria-describedby": "".concat(id, "-error"), onChange: function onChange(e) { setValue(e.target.checked, e); }, onBlur: function onBlur(e) { setTouched(true, e); }, type: "checkbox" })), showError ? /*#__PURE__*/React.createElement("small", { role: "alert", id: "".concat(id, "-error") }, error) : null)); }; export { Checkbox };