diff --git a/frontend/src/PagesAdmin/EventCreatorAdminPage/EventCreatorAdminPage.tsx b/frontend/src/PagesAdmin/EventCreatorAdminPage/EventCreatorAdminPage.tsx index f95eb2c30..ff30ed73f 100644 --- a/frontend/src/PagesAdmin/EventCreatorAdminPage/EventCreatorAdminPage.tsx +++ b/frontend/src/PagesAdmin/EventCreatorAdminPage/EventCreatorAdminPage.tsx @@ -148,6 +148,14 @@ export function EventCreatorAdminPage() { setShowSpinner(false); } }, [id, t, form]); + const startDt = form.watch('start_dt'); + const visibilityFromDt = form.watch('visibility_from_dt'); + + useEffect(() => { + if (startDt && visibilityFromDt) { + form.trigger('visibility_from_dt'); + } + }, [startDt, visibilityFromDt, form]); // ================================== // // Creation Steps // @@ -475,7 +483,13 @@ export function EventCreatorAdminPage() { title_en: 'Summary', customIcon: 'ic:outline-remove-red-eye', validate: (data) => { - return !!data.visibility_from_dt; + if (!data.visibility_from_dt) { + return false; + } + if (data.start_dt && new Date(data.visibility_from_dt) > new Date(data.start_dt)) { + return false; + } + return true; }, template: ( { + if (data.visibility_from_dt && data.start_dt) { + return new Date(data.visibility_from_dt) <= new Date(data.start_dt); + } + return true; + }, + { + message: 'Publication date must be before event start date!', + path: ['visibility_from_dt'], // Show error on the publication date field + }, + ); export type EventFormType = z.infer;