Disable all inputs with disabled form prop
Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
@@ -4,6 +4,7 @@ import type { ArrayPath, Control, FieldValue, FieldValues, Path, UseFormRegister
|
|||||||
import { useFieldArray } from "react-hook-form";
|
import { useFieldArray } from "react-hook-form";
|
||||||
|
|
||||||
type Props<TFieldValues extends FieldValues = FieldValues> = {
|
type Props<TFieldValues extends FieldValues = FieldValues> = {
|
||||||
|
disabled: boolean;
|
||||||
control: Control<TFieldValues>;
|
control: Control<TFieldValues>;
|
||||||
register: UseFormRegister<TFieldValues>;
|
register: UseFormRegister<TFieldValues>;
|
||||||
};
|
};
|
||||||
@@ -13,7 +14,7 @@ type Props<TFieldValues extends FieldValues = FieldValues> = {
|
|||||||
*/
|
*/
|
||||||
export function EmailsField<
|
export function EmailsField<
|
||||||
TFieldValues extends FieldValues = FieldValues,
|
TFieldValues extends FieldValues = FieldValues,
|
||||||
>({ control, register }: Props<TFieldValues>) {
|
>({ control, register, disabled }: Props<TFieldValues>) {
|
||||||
const { __ } = useTranslate();
|
const { __ } = useTranslate();
|
||||||
const { fields, append, remove } = useFieldArray({
|
const { fields, append, remove } = useFieldArray({
|
||||||
name: "additionalEmailAddresses" as ArrayPath<TFieldValues>,
|
name: "additionalEmailAddresses" as ArrayPath<TFieldValues>,
|
||||||
@@ -29,11 +30,13 @@ export function EmailsField<
|
|||||||
className="w-full"
|
className="w-full"
|
||||||
{...register(`additionalEmailAddresses.${index}` as Path<TFieldValues>)}
|
{...register(`additionalEmailAddresses.${index}` as Path<TFieldValues>)}
|
||||||
type="email"
|
type="email"
|
||||||
|
disabled={disabled}
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
icon={IconTrashCan}
|
icon={IconTrashCan}
|
||||||
variant="tertiary"
|
variant="tertiary"
|
||||||
onClick={() => remove(index)}
|
onClick={() => remove(index)}
|
||||||
|
disabled={disabled}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
@@ -42,6 +45,7 @@ export function EmailsField<
|
|||||||
type="button"
|
type="button"
|
||||||
icon={IconPlusLarge}
|
icon={IconPlusLarge}
|
||||||
onClick={() => append("" as FieldValue<TFieldValues>)}
|
onClick={() => append("" as FieldValue<TFieldValues>)}
|
||||||
|
disabled={disabled}
|
||||||
>
|
>
|
||||||
{__("Add email")}
|
{__("Add email")}
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ export function PersonForm(props: {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<form onSubmit={e => void handleSubmit(e)} className="space-y-4">
|
<form onSubmit={e => void handleSubmit(e)} className="space-y-4">
|
||||||
<Field label={__("Full name *")} {...register("fullName")} type="text" />
|
<Field label={__("Full name *")} {...register("fullName")} type="text" disabled={disabled} />
|
||||||
{id
|
{id
|
||||||
? (
|
? (
|
||||||
<>
|
<>
|
||||||
@@ -235,7 +235,7 @@ export function PersonForm(props: {
|
|||||||
placeholder={__("e.g. CEO, CFO, etc.")}
|
placeholder={__("e.g. CEO, CFO, etc.")}
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
/>
|
/>
|
||||||
<EmailsField control={control} register={register} />
|
<EmailsField control={control} register={register} disabled={disabled} />
|
||||||
<Field label={__("Contract start date")}>
|
<Field label={__("Contract start date")}>
|
||||||
<Input
|
<Input
|
||||||
{...register("contractStartDate")}
|
{...register("contractStartDate")}
|
||||||
|
|||||||
Reference in New Issue
Block a user