From 52d62f831f1ce810b55ba656e0fe4c6e2c22106b Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Thu, 3 Oct 2024 22:05:55 +0200 Subject: [PATCH] feat(ui): add form components --- bun.lockb | Bin 420840 -> 422240 bytes packages/ui/package.json | 6 +- packages/ui/src/form.tsx | 176 ++++++++++++++++++++++++++++++++++++++ packages/ui/src/index.ts | 2 + packages/ui/src/label.tsx | 24 ++++++ 5 files changed, 207 insertions(+), 1 deletion(-) create mode 100644 packages/ui/src/form.tsx create mode 100644 packages/ui/src/label.tsx diff --git a/bun.lockb b/bun.lockb index 8668a7315fccd4e9005bb299cba1bdab21076497..7fb2585dcf921df3b1569693d24f9d68f230fb77 100755 GIT binary patch delta 30727 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 delta 30231 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 = FieldPath, +> = { + name: TName +} + +const FormFieldContext = React.createContext( + {} as FormFieldContextValue, +) + +const FormField = < + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +>({ + ...props +}: ControllerProps) => { + return ( + + + + ) +} + +const useFormField = () => { + const fieldContext = React.useContext(FormFieldContext) + const itemContext = React.useContext(FormItemContext) + const { getFieldState, formState } = useFormContext() + + const fieldState = getFieldState(fieldContext.name, formState) + + if (!fieldContext) { + throw new Error('useFormField should be used within ') + } + + const { id } = itemContext + + return { + id, + name: fieldContext.name, + formItemId: `${id}-form-item`, + formDescriptionId: `${id}-form-item-description`, + formMessageId: `${id}-form-item-message`, + ...fieldState, + } +} + +type FormItemContextValue = { + id: string +} + +const FormItemContext = React.createContext( + {} as FormItemContextValue, +) + +const FormItem = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => { + const id = React.useId() + + return ( + +
+ + ) +}) +FormItem.displayName = 'FormItem' + +const FormLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => { + const { error, formItemId } = useFormField() + + return ( +