From cb49740f43783ec730e3df6c1504a46516ae53d9 Mon Sep 17 00:00:00 2001 From: ryder777777 Date: Tue, 20 Oct 2026 15:05:34 +0000 Subject: [PATCH] fix(frontend): enforce start > now and start < end client-side validation in CreateCampaign (#1474) --- frontend/src/lib/validateCampaignForm.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/frontend/src/lib/validateCampaignForm.js b/frontend/src/lib/validateCampaignForm.js index 2faaf973..4a1b462d 100644 --- a/frontend/src/lib/validateCampaignForm.js +++ b/frontend/src/lib/validateCampaignForm.js @@ -48,13 +48,17 @@ export function validateCampaignForm(values, { isEditMode = false, now = new Dat const start = values.startDate ? new Date(values.startDate) : null; const end = values.endDate ? new Date(values.endDate) : null; - if (start && Number.isNaN(start.getTime())) errors.startDate = 'Start date is invalid.'; + if (start && Number.isNaN(start.getTime())) { + errors.startDate = 'Start date is invalid.'; + } else if (start && !isEditMode && start.getTime() <= now.getTime()) { + errors.startDate = 'Start date must be in the future.'; + } if (end && Number.isNaN(end.getTime())) { errors.endDate = 'End date is invalid.'; } else if (end) { if (!isEditMode && end.getTime() <= now.getTime()) { errors.endDate = 'End date must be in the future.'; - } else if (start && !errors.startDate && end.getTime() <= start.getTime()) { + } else if (start && !Number.isNaN(start.getTime()) && end.getTime() <= start.getTime()) { errors.endDate = 'End date must be after the start date.'; } }