From ab3b32f419e6e4344cfe5c8881f98663eddc9916 Mon Sep 17 00:00:00 2001 From: Dmytro Stanchiev Date: Sun, 24 May 2026 22:42:50 -0400 Subject: [PATCH] fix: address code review issues from Task 4 (onSubmit, AiDraftBanner, STEP_FIELDS) --- src/components/event-dialog.tsx | 113 +++++++++++--------------------- 1 file changed, 40 insertions(+), 73 deletions(-) diff --git a/src/components/event-dialog.tsx b/src/components/event-dialog.tsx index d8634d6..6d00141 100644 --- a/src/components/event-dialog.tsx +++ b/src/components/event-dialog.tsx @@ -36,6 +36,12 @@ import { } from "@/lib/event-form"; import { parseRecurrenceRule, validateRecurrence } from "@/lib/recurrence"; +const STEP_FIELDS: Record<1 | 2 | 3, (keyof EventFormValues)[]> = { + 1: ["title", "url"], + 2: ["start", "end"], + 3: ["recurrenceRule"], +}; + interface EventDialogProps { open: boolean; onOpenChange: (open: boolean) => void; @@ -96,12 +102,6 @@ export const EventDialog = ({ onOpenChange(nextOpen); }; - const STEP_FIELDS: Record<1 | 2 | 3, (keyof EventFormValues)[]> = { - 1: ["title", "url"], - 2: ["start", "end"], - 3: ["recurrenceRule"], - }; - const handleNext = async () => { const valid = await trigger(STEP_FIELDS[step]); if (valid) advanceStep(); @@ -148,41 +148,42 @@ export const EventDialog = ({ reset(getDefaultEventFormValues()); }); - const onSubmit = handleSubmit((values) => { - const result = validateEventFormValues(values); - if (!result.success) { - const fieldErrors = result.error.flatten().fieldErrors; - for (const [fieldName, messages] of Object.entries(fieldErrors)) { - const firstMessage = messages?.[0]; - if (firstMessage) { - setError(fieldName as keyof EventFormValues, { - message: firstMessage, - }); - } - } - return; - } - - if (values.recurrenceRule) { - const recurrenceValidation = validateRecurrence(parseRecurrenceRule(values.recurrenceRule)); - if (!recurrenceValidation.isValid) { - setError("recurrenceRule", { - message: - recurrenceValidation.errors.rule || - recurrenceValidation.errors.count || - recurrenceValidation.errors.until || - "Invalid recurrence.", - }); - return; - } - } - - onSave(result.data); - reset(getDefaultEventFormValues()); - }); - const stepProps = { control, register, errors, watch, setValue, isAiDraft }; + if (!isMobile) { + return ( + + + + {titleText} + {descriptionText} + +
+ {isAiDraft && } +
+

Event details

+ +
+
+

Schedule

+ +
+
+

Recurrence

+ +
+ + + + + +
+
+ ); + } + const progressBars = (
{([1, 2, 3] as const).map((n) => ( @@ -203,40 +204,6 @@ export const EventDialog = ({ 3: "Recurrence", }; - if (!isMobile) { - return ( - - - - {titleText} - {descriptionText} - -
- {isAiDraft && } -
-

Event details

- -
-
-

Schedule

- -
-
-

Recurrence

- -
- - - - - -
-
- ); - } - return (