diff --git a/packages/medusa-forms/src/ui/CurrencyInput.tsx b/packages/medusa-forms/src/ui/CurrencyInput.tsx index fb16bfe1..c09ee934 100644 --- a/packages/medusa-forms/src/ui/CurrencyInput.tsx +++ b/packages/medusa-forms/src/ui/CurrencyInput.tsx @@ -1,12 +1,15 @@ import { CurrencyInput as MedusaCurrencyInput } from '@medusajs/ui'; -import { forwardRef } from 'react'; +import { type FC } from 'react'; import { FieldWrapper } from './FieldWrapper'; import type { BasicFieldProps, MedusaCurrencyInputProps } from './types'; -export type Props = MedusaCurrencyInputProps & BasicFieldProps; +export type Props = MedusaCurrencyInputProps & BasicFieldProps & { + ref?: React.Ref; +}; const Wrapper = FieldWrapper; -export const CurrencyInput: React.FC = forwardRef((props, ref) => ( +export const CurrencyInput: FC = ({ ref, ...props }) => ( {(inputProps) => } -)); +); + diff --git a/packages/medusa-forms/src/ui/DatePicker.tsx b/packages/medusa-forms/src/ui/DatePicker.tsx index b76a0594..252e2659 100644 --- a/packages/medusa-forms/src/ui/DatePicker.tsx +++ b/packages/medusa-forms/src/ui/DatePicker.tsx @@ -1,12 +1,15 @@ import { DatePicker } from '@medusajs/ui'; -import { forwardRef } from 'react'; +import { type FC } from 'react'; import { FieldWrapper } from './FieldWrapper'; import type { BasicFieldProps, DatePickerProps } from './types'; -export type Props = DatePickerProps & BasicFieldProps; +export type Props = DatePickerProps & BasicFieldProps & { + ref?: React.Ref; +}; const Wrapper = FieldWrapper; -export const DatePickerInput: React.FC = forwardRef((props, ref) => { +export const DatePickerInput: FC = ({ ref, ...props }) => { return {(inputProps) => }; -}); +}; + diff --git a/packages/medusa-forms/src/ui/FieldCheckbox.tsx b/packages/medusa-forms/src/ui/FieldCheckbox.tsx index 87a4872a..5cb0f3ad 100644 --- a/packages/medusa-forms/src/ui/FieldCheckbox.tsx +++ b/packages/medusa-forms/src/ui/FieldCheckbox.tsx @@ -1,6 +1,5 @@ import { Checkbox as MedusaCheckbox } from '@medusajs/ui'; import clsx from 'clsx'; -import { forwardRef } from 'react'; import { FieldWrapper } from './FieldWrapper'; import { Label } from './Label'; import type { BasicFieldProps } from './types'; @@ -9,43 +8,53 @@ export type CheckedState = boolean | 'indeterminate'; export type FieldCheckboxProps = BasicFieldProps & { checked?: CheckedState; onChange?: (checked: CheckedState) => void; + ref?: React.Ref; }; -export const FieldCheckbox: React.FC = forwardRef( - ({ label, labelClassName, labelTooltip, wrapperClassName, errorClassName, formErrors, onChange, ...props }, ref) => { - return ( - - wrapperClassName={wrapperClassName} - errorClassName={errorClassName} - formErrors={formErrors} - {...props} - > - {(fieldProps) => ( -
- {}} - onCheckedChange={(checked) => { - onChange?.(checked); +export const FieldCheckbox: React.FC = ({ + label, + labelClassName, + labelTooltip, + wrapperClassName, + errorClassName, + formErrors, + onChange, + ref, + ...props +}) => { + return ( + + wrapperClassName={wrapperClassName} + errorClassName={errorClassName} + formErrors={formErrors} + {...props} + > + {(fieldProps) => ( +
+ {}} + onCheckedChange={(checked) => { + onChange?.(checked); + }} + /> + + {label && ( + + )} +
+ )} + + ); +}; - {label && ( - - )} -
- )} - - ); - }, -); diff --git a/packages/medusa-forms/src/ui/Input.tsx b/packages/medusa-forms/src/ui/Input.tsx index 109ba631..3320fb0c 100644 --- a/packages/medusa-forms/src/ui/Input.tsx +++ b/packages/medusa-forms/src/ui/Input.tsx @@ -1,12 +1,14 @@ import { Input as MedusaInput } from '@medusajs/ui'; -import { forwardRef } from 'react'; import { FieldWrapper } from './FieldWrapper'; import type { BasicFieldProps, MedusaInputProps } from './types'; -export type Props = MedusaInputProps & BasicFieldProps; +export type Props = MedusaInputProps & BasicFieldProps & { + ref?: React.Ref; +}; const Wrapper = FieldWrapper; -export const Input: React.FC = forwardRef((props, ref) => ( +export const Input: React.FC = ({ ref, ...props }) => ( {(inputProps) => } -)); +); + diff --git a/packages/medusa-forms/src/ui/Select.tsx b/packages/medusa-forms/src/ui/Select.tsx index e9d39d34..6db930bb 100644 --- a/packages/medusa-forms/src/ui/Select.tsx +++ b/packages/medusa-forms/src/ui/Select.tsx @@ -1,19 +1,20 @@ import { Select as MedusaSelect } from '@medusajs/ui'; -import { forwardRef } from 'react'; import { FieldWrapper } from './FieldWrapper'; import type { BasicFieldProps, SelectProps } from './types'; -export type Props = SelectProps & BasicFieldProps; +export type Props = SelectProps & BasicFieldProps & { + ref?: React.Ref; +}; const Wrapper = FieldWrapper; -const SelectComponent = forwardRef((props, ref) => { +const SelectComponent: React.FC = ({ ref, ...props }) => { return ( {(inputProps) => {props.children}} ); -}); +}; type SelectComponent = typeof SelectComponent & { Trigger: typeof MedusaSelect.Trigger; @@ -28,3 +29,4 @@ export const Select: SelectComponent = Object.assign(SelectComponent, { Content: MedusaSelect.Content, Item: MedusaSelect.Item, }); + diff --git a/packages/medusa-forms/src/ui/TextArea.tsx b/packages/medusa-forms/src/ui/TextArea.tsx index 3ae63b13..620f37c1 100644 --- a/packages/medusa-forms/src/ui/TextArea.tsx +++ b/packages/medusa-forms/src/ui/TextArea.tsx @@ -1,12 +1,14 @@ import { Textarea } from '@medusajs/ui'; -import { forwardRef } from 'react'; import { FieldWrapper } from './FieldWrapper'; import type { BasicFieldProps, TextAreaProps } from './types'; -export type Props = TextAreaProps & BasicFieldProps; +export type Props = TextAreaProps & BasicFieldProps & { + ref?: React.Ref; +}; const Wrapper = FieldWrapper; -export const TextArea: React.FC = forwardRef((props, ref) => ( +export const TextArea: React.FC = ({ ref, ...props }) => ( {(inputProps) =>