forms.js.bak 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { useField } from 'formik'
  2. const TextInput = ({ label, ...props }) => {
  3. const [field, meta] = useField(props)
  4. return (
  5. <>
  6. <label htmlFor={props.id || props.name}>{label}</label>
  7. <input className='text-input' {...field} {...props} />
  8. {meta.touched && meta.error ? (
  9. <div className='error'>{meta.error}</div>
  10. ) : null}
  11. </>
  12. )
  13. }
  14. const Checkbox = ({ children, ...props }) => {
  15. const [field, meta] = useField({ ...props, type: 'checkbox' })
  16. return (
  17. <>
  18. <label className='checkbox'>
  19. <input {...field} {...props} type='checkbox' />
  20. {children}
  21. </label>
  22. {meta.touched && meta.error ? (
  23. <div className='error'>{meta.error}</div>
  24. ) : null}
  25. </>
  26. )
  27. }
  28. const Select = ({ label, ...props }) => {
  29. const [field, meta] = useField(props)
  30. return (
  31. <>
  32. <label htmlFor={props.id || props.name}>{label}</label>
  33. <select {...field} {...props} />
  34. {meta.touched && meta.error ? (
  35. <div className='error'>{meta.error}</div>
  36. ) : null}
  37. </>
  38. )
  39. }
  40. export { TextInput, Checkbox, Select }