Skip to content

Commit 018f58f

Browse files
committed
fix submit bug
1 parent dedb81d commit 018f58f

File tree

1 file changed

+35
-15
lines changed

1 file changed

+35
-15
lines changed

app/routes/create-testimonial.tsx

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,38 @@ function CreateTestimonial() {
9999
},
100100
});
101101

102+
const toggleEmoji = (emoji: string) => {
103+
let newEmojis: string[];
104+
if (selectedEmojis.includes(emoji)) {
105+
newEmojis = selectedEmojis.filter((e) => e !== emoji);
106+
} else if (selectedEmojis.length < 3) {
107+
newEmojis = [...selectedEmojis, emoji];
108+
} else {
109+
return; // Don't allow more than 3 emojis
110+
}
111+
setSelectedEmojis(newEmojis);
112+
form.setValue("emojis", newEmojis.join(""), {
113+
shouldValidate: true,
114+
shouldDirty: true,
115+
shouldTouch: true,
116+
});
117+
};
118+
102119
const onSubmit = async (values: TestimonialFormValues) => {
120+
if (selectedEmojis.length === 0) {
121+
form.setError("emojis", {
122+
type: "manual",
123+
message: "Please select at least one emoji",
124+
});
125+
return;
126+
}
127+
103128
try {
104129
setIsSubmitting(true);
105130
await createTestimonialFn({
106131
data: {
107-
...values,
132+
displayName: values.displayName,
133+
content: values.content,
108134
emojis: selectedEmojis.join(""),
109135
permissionGranted: values.permissionGranted,
110136
},
@@ -126,19 +152,6 @@ function CreateTestimonial() {
126152
return <SuccessMessage />;
127153
}
128154

129-
const toggleEmoji = (emoji: string) => {
130-
let newEmojis: string[];
131-
if (selectedEmojis.includes(emoji)) {
132-
newEmojis = selectedEmojis.filter((e) => e !== emoji);
133-
} else if (selectedEmojis.length < 3) {
134-
newEmojis = [...selectedEmojis, emoji];
135-
} else {
136-
return; // Don't allow more than 3 emojis
137-
}
138-
setSelectedEmojis(newEmojis);
139-
form.setValue("emojis", newEmojis.join(""), { shouldValidate: true });
140-
};
141-
142155
return (
143156
<div className="max-w-2xl mx-auto p-6 mt-12">
144157
<h1 className="text-3xl font-bold mb-8">Share Your Experience</h1>
@@ -221,7 +234,14 @@ function CreateTestimonial() {
221234
<div className="flex items-start space-x-2">
222235
<Checkbox
223236
id="permission"
224-
{...form.register("permissionGranted")}
237+
checked={form.watch("permissionGranted")}
238+
onCheckedChange={(checked) => {
239+
form.setValue("permissionGranted", checked === true, {
240+
shouldValidate: true,
241+
shouldDirty: true,
242+
shouldTouch: true,
243+
});
244+
}}
225245
className={cn(
226246
form.formState.errors.permissionGranted && "border-red-500"
227247
)}

0 commit comments

Comments
 (0)