|
1 | | -import { type ReactNode, useContext, forwardRef } from 'react'; |
2 | | -import type { |
3 | | - KeepStateOptions, |
4 | | - FieldValues, |
5 | | - UseFormReturn, |
6 | | - UseFormRegister, |
7 | | -} from 'react-hook-form'; |
| 1 | +import { type ReactNode, forwardRef, useContext } from 'react'; |
| 2 | +import type { BaseSyntheticEvent, ComponentPropsWithoutRef } from 'react'; |
| 3 | +import type { FieldValues, KeepStateOptions, UseFormRegister, UseFormReturn } from 'react-hook-form'; |
8 | 4 | import { useRemixFormContext } from 'remix-hook-form'; |
9 | | -import { FormLabel, FormControl, FormDescription, FormMessage, FormFieldContext, FormItemContext } from '../ui/form'; |
10 | | -import type { BaseSyntheticEvent, ComponentPropsWithoutRef, } from 'react'; |
| 5 | +import { FormControl, FormDescription, FormFieldContext, FormItemContext, FormLabel, FormMessage } from '../ui/form'; |
11 | 6 |
|
12 | 7 | export interface RemixFormProviderProps<T extends FieldValues> |
13 | 8 | extends Omit<UseFormReturn<T>, 'handleSubmit' | 'reset'> { |
@@ -40,36 +35,40 @@ export const useRemixFormField = () => { |
40 | 35 | }; |
41 | 36 | }; |
42 | 37 |
|
43 | | - |
44 | 38 | export const RemixFormLabel = forwardRef<HTMLLabelElement, ComponentPropsWithoutRef<typeof FormLabel>>((props, ref) => ( |
45 | 39 | <FormLabel ref={ref} {...props} /> |
46 | 40 | )); |
47 | 41 | RemixFormLabel.displayName = 'RemixFormLabel'; |
48 | 42 |
|
49 | | -export const RemixFormControl = forwardRef<HTMLElement, ComponentPropsWithoutRef<typeof FormControl>>((props, ref) => { |
50 | | - const { error, formItemId, formDescriptionId, formMessageId } = useRemixFormField(); |
51 | | - return ( |
52 | | - <FormControl |
53 | | - ref={ref} |
54 | | - error={!!error} |
55 | | - formItemId={formItemId} |
56 | | - formDescriptionId={formDescriptionId} |
57 | | - formMessageId={formMessageId} |
58 | | - {...props} |
59 | | - /> |
60 | | - ); |
61 | | -}); |
| 43 | +export const RemixFormControl = forwardRef<HTMLDivElement, ComponentPropsWithoutRef<typeof FormControl>>( |
| 44 | + (props, ref) => { |
| 45 | + const { error, formItemId, formDescriptionId, formMessageId } = useRemixFormField(); |
| 46 | + return ( |
| 47 | + <FormControl |
| 48 | + ref={ref} |
| 49 | + error={!!error} |
| 50 | + formItemId={formItemId} |
| 51 | + formDescriptionId={formDescriptionId} |
| 52 | + formMessageId={formMessageId} |
| 53 | + {...props} |
| 54 | + /> |
| 55 | + ); |
| 56 | + }, |
| 57 | +); |
62 | 58 | RemixFormControl.displayName = 'RemixFormControl'; |
63 | 59 |
|
64 | | -export const RemixFormDescription = forwardRef<HTMLParagraphElement, ComponentPropsWithoutRef<typeof FormDescription>>((props, ref) => { |
65 | | - const { formDescriptionId } = useRemixFormField(); |
66 | | - return <FormDescription ref={ref} formDescriptionId={formDescriptionId} {...props} />; |
67 | | -}); |
| 60 | +export const RemixFormDescription = forwardRef<HTMLParagraphElement, ComponentPropsWithoutRef<typeof FormDescription>>( |
| 61 | + (props, ref) => { |
| 62 | + const { formDescriptionId } = useRemixFormField(); |
| 63 | + return <FormDescription ref={ref} formDescriptionId={formDescriptionId} {...props} />; |
| 64 | + }, |
| 65 | +); |
68 | 66 | RemixFormDescription.displayName = 'RemixFormDescription'; |
69 | 67 |
|
70 | | -export const RemixFormMessage = forwardRef<HTMLParagraphElement, ComponentPropsWithoutRef<typeof FormMessage>>((props, ref) => { |
71 | | - const { error, formMessageId } = useRemixFormField(); |
72 | | - return <FormMessage ref={ref} formMessageId={formMessageId} error={error?.message} {...props} />; |
73 | | -}); |
| 68 | +export const RemixFormMessage = forwardRef<HTMLParagraphElement, ComponentPropsWithoutRef<typeof FormMessage>>( |
| 69 | + (props, ref) => { |
| 70 | + const { error, formMessageId } = useRemixFormField(); |
| 71 | + return <FormMessage ref={ref} formMessageId={formMessageId} error={error?.message} {...props} />; |
| 72 | + }, |
| 73 | +); |
74 | 74 | RemixFormMessage.displayName = 'RemixFormMessage'; |
75 | | - |
0 commit comments