Skip to content

Commit 2d4b02d

Browse files
committed
fix: Issue with empty validations
1 parent 7140eab commit 2d4b02d

7 files changed

Lines changed: 14 additions & 11 deletions

File tree

‎src/components/form-builder/dialogs/generate-code-dialog.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
} from "@/components/ui/dialog";
1010
import { Button } from "@/components/ui/button";
1111
import { Pre } from "@/components/ui/pre";
12-
import { Download, Copy, Check } from "lucide-react";
12+
import { Copy, Check } from "lucide-react";
1313
import { useEffect, useState } from "react";
1414
import * as prettier from "prettier/standalone";
1515
import * as parserTypescript from "prettier/parser-typescript";

‎src/components/form-builder/form-components/form-checkbox.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export function getReactCode(component: FormComponentModel): ReactCode {
4242
key="${component.id}"
4343
className="${escapeHtml(cn(asCardClasses, "flex items-start space-x-2"))}"
4444
>
45-
<Checkbox id="${escapeHtml(component.getField("attributes.id"))}" />
45+
<Checkbox id="${escapeHtml(component.getField("attributes.id"))}" {...field} />
4646
<div className="grid gap-1.5 leading-none">
4747
<Label htmlFor="${escapeHtml(component.getField("attributes.id"))}">
4848
${escapeHtml(component.getField("label"))}

‎src/components/form-builder/form-components/form-radio.tsx‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,8 @@ export function getReactCode(component: FormComponentModel): ReactCode {
4444
<RadioGroup
4545
key="${component.id}"
4646
id="${escapeHtml(component.getField("attributes.id"))}"
47-
name="${escapeHtml(component.getField("attributes.name"))}"
4847
className="${escapeHtml(component.getField("attributes.class"))}"
49-
value="${escapeHtml(String(component.value))}"
48+
{...field}
5049
>
5150
${component.options?.map((option) => `
5251
<div key="${escapeHtml(option.value)}" className="flex items-center space-x-2">

‎src/components/form-builder/form-components/form-select.tsx‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,9 @@ export function getReactCode(component: FormComponentModel): ReactCode {
4747
<Select
4848
key="${component.id}"
4949
id="${escapeHtml(component.getField("attributes.id"))}"
50-
name="${escapeHtml(component.getField("attributes.name"))}"
5150
className="${escapeHtml(component.getField("attributes.class"))}"
52-
value="${escapeHtml(component.value as string)}"
53-
>
51+
{...field}
52+
>
5453
<SelectTrigger>
5554
<SelectValue placeholder="${escapeHtml(component.getField("attributes.placeholder"))}" />
5655
</SelectTrigger>

‎src/components/form-builder/form-components/form-switch.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export function getReactCode(component: FormComponentModel): ReactCode {
5050
${escapeHtml(component.getField("label_description"))}
5151
</p>
5252
</div>
53-
<Switch id="${escapeHtml(component.getField("attributes.id"))}" />
53+
<Switch id="${escapeHtml(component.getField("attributes.id"))}" {...field} />
5454
</div>
5555
`,
5656
dependencies: {

‎src/components/form-builder/form-components/form-textarea.tsx‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,9 @@ export function getReactCode(component: FormComponentModel): ReactCode {
3434
<Textarea
3535
key="${component.id}"
3636
id="${escapeHtml(component.getField("attributes.id"))}"
37-
name="${escapeHtml(component.getField("attributes.name"))}"
3837
placeholder="${escapeHtml(component.getField("attributes.placeholder"))}"
3938
className="${escapeHtml(component.getField("attributes.class"))}"
40-
defaultValue="${escapeHtml(String(component.value))}"
39+
{...field}
4140
/>
4241
`,
4342
dependencies: {

‎src/components/form-builder/helpers/generate-react-code.tsx‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,13 @@ const generateZodSchemaForComponent = (
7474
const validations = component.getField("validations");
7575
const isRequired = shouldForceRequired(validations);
7676

77-
if (!validations) return "";
77+
if (!validations) {
78+
if (component.type === "number") {
79+
return `z.coerce.number()`;
80+
}
81+
82+
return `z.string()`;
83+
};
7884

7985
if (component.type === "number") {
8086
return `z.coerce.number()${isRequired ? '.min(1, { message: "This field is required" })' : ""}${validations.min ? `.min(${validations.min}, { message: "Must be at least ${validations.min}" })` : ""}${validations.max ? `.max(${validations.max}, { message: "Must be at most ${validations.max}" })` : ""}`;

0 commit comments

Comments
 (0)