diff --git a/.changeset/free-mugs-sin.md b/.changeset/free-mugs-sin.md new file mode 100644 index 0000000000..18078c7a2c --- /dev/null +++ b/.changeset/free-mugs-sin.md @@ -0,0 +1,5 @@ +--- +"@ultraviolet/ui": patch +--- + +Fix accesbility issue inside Pagination PerPage label. diff --git a/.changeset/small-coins-wink.md b/.changeset/small-coins-wink.md new file mode 100644 index 0000000000..c79f39f6b3 --- /dev/null +++ b/.changeset/small-coins-wink.md @@ -0,0 +1,5 @@ +--- +"@ultraviolet/form": patch +--- + +use new useField hook to TimeInputField, TextAreaField which allow usage of the rhf register api" diff --git a/packages/form/src/components/KeyValueField/index.tsx b/packages/form/src/components/KeyValueField/index.tsx index 50216d82bc..a062d518d2 100644 --- a/packages/form/src/components/KeyValueField/index.tsx +++ b/packages/form/src/components/KeyValueField/index.tsx @@ -9,7 +9,7 @@ import type { Control, FieldArrayPath, FieldValues } from 'react-hook-form' import { TextInputField } from '../TextInputField' type InputKeyProps = { - label: ComponentProps['label'] + label: NonNullable['label']> required?: ComponentProps['required'] regex?: ComponentProps['regex'] } diff --git a/packages/form/src/components/TextAreaField/index.tsx b/packages/form/src/components/TextAreaField/index.tsx index 54317b65b5..f1aaebe5bf 100644 --- a/packages/form/src/components/TextAreaField/index.tsx +++ b/packages/form/src/components/TextAreaField/index.tsx @@ -1,12 +1,11 @@ 'use client' import { TextArea } from '@ultraviolet/ui' +import type { LabelProps } from '@ultraviolet/ui' import type { ComponentProps, KeyboardEvent } from 'react' -import { useController } from 'react-hook-form' -import type { FieldPath, FieldValues, Path, PathValue } from 'react-hook-form' -import { useErrors } from '../../providers' +import type { FieldPath, FieldValues } from 'react-hook-form' +import { useField } from '../../hooks/useField' import type { BaseFieldProps } from '../../types' -import { validateRegex } from '../../utils/validateRegex' export type TextAreaFieldProps< TFieldValues extends FieldValues, @@ -15,7 +14,7 @@ export type TextAreaFieldProps< Omit, 'value' | 'error' | 'name' | 'onChange'> & { regex?: (RegExp | RegExp[])[] submitOnEnter?: boolean - } + } & LabelProps /** * This component offers a form field based on Ultraviolet UI TextArea component @@ -25,43 +24,11 @@ export const TextAreaField = < TFieldName extends FieldPath = FieldPath, >({ control, - label, - onChange, - minLength, - maxLength, - name, - onBlur, - onKeyDown, - required, - regex: regexes, submitOnEnter, - validate, - errorLabel, - 'aria-label': ariaLabel, + onKeyDown, ...props }: TextAreaFieldProps) => { - const { getError } = useErrors() - - const { - field, - fieldState: { error }, - } = useController({ - control, - name, - rules: { - maxLength, - minLength, - required, - validate: { - ...(regexes - ? { - pattern: value => validateRegex(value, regexes), - } - : {}), - ...validate, - }, - }, - }) + const { fieldProps } = useField(props) const onKeyDownHandler = (event: KeyboardEvent) => { if (submitOnEnter && event.key === 'Enter' && !event.shiftKey) { @@ -80,36 +47,7 @@ export const TextAreaField = < } } - return ( -