Skip to content

Commit 25f8a9a

Browse files
committed
Make confirm Button more consitent and add children validator to shadcnhasmany forms
1 parent 7c9bfb5 commit 25f8a9a

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

packages/react/src/auto/shadcn/inputs/relationships/ShadcnAutoHasManyForm.tsx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { autoRelationshipForm } from "../../../AutoInput.js";
55
import { RelationshipContext, useAutoRelationship, useRelationshipContext } from "../../../hooks/useAutoRelationship.js";
66
import { useHasManyController } from "../../../hooks/useHasManyController.js";
77
import { getRecordAsOption, useOptionLabelForField } from "../../../hooks/useRelatedModel.js";
8+
import { useRequiredChildComponentsValidator } from "../../../hooks/useRequiredChildComponentsValidator.js";
89
import type { OptionLabel } from "../../../interfaces/AutoRelationshipInputProps.js";
910
import type { ShadcnElements } from "../../elements.js";
1011
import { makeShadcnRenderOptionLabel } from "../../utils.js";
@@ -28,6 +29,7 @@ export const makeShadcnAutoHasManyForm = ({
2829
secondaryLabel?: OptionLabel;
2930
tertiaryLabel?: OptionLabel;
3031
}) {
32+
useRequiredChildComponentsValidator(props, "AutoHasManyForm");
3133
const { metadata } = useAutoRelationship({ field: props.field });
3234
const { getValues } = useFormContext();
3335

@@ -90,7 +92,16 @@ export const makeShadcnAutoHasManyForm = ({
9092
<Button variant="destructive" id={`deleteButton_${metadataPathPrefix}.${idx}`} onClick={() => remove(idx)}>
9193
Delete
9294
</Button>
93-
<Button variant="default" id={`confirmButton_${metadataPathPrefix}.${idx}`} onClick={() => setEditingIndex(null)}>
95+
<Button
96+
variant="default"
97+
type="button"
98+
id={`confirmButton_${metadataPathPrefix}.${idx}`}
99+
onClick={(e) => {
100+
e.preventDefault();
101+
e.stopPropagation();
102+
setEditingIndex(null);
103+
}}
104+
>
94105
Confirm
95106
</Button>
96107
</div>
@@ -107,7 +118,7 @@ export const makeShadcnAutoHasManyForm = ({
107118
onClick={() => setEditingIndex(idx)}
108119
className=""
109120
>
110-
<AccordionTrigger>
121+
<AccordionTrigger onClick={(e) => e.preventDefault()}>
111122
{option.label ? (
112123
<div className="flex justify-between">
113124
<div className="flex flex-col gap-2">

0 commit comments

Comments
 (0)