diff --git a/frontend/src/components/Modals/LiveClassModal.vue b/frontend/src/components/Modals/LiveClassModal.vue index e6a56a9f..3848ce44 100644 --- a/frontend/src/components/Modals/LiveClassModal.vue +++ b/frontend/src/components/Modals/LiveClassModal.vue @@ -161,25 +161,34 @@ const submitLiveClass = (close) => { return createLiveClass.submit(liveClass, { validate() { if (!liveClass.title) { - return 'Please enter a title.' + return __('Please enter a title.') } if (!liveClass.date) { - return 'Please select a date.' - } - if (dayjs(liveClass.date).isSameOrBefore(dayjs(), 'day')) { - return 'Please select a future date.' + return __('Please select a date.') } if (!liveClass.time) { - return 'Please select a time.' - } - if (!valideTime()) { - return 'Please enter a valid time in the format HH:mm.' - } - if (!liveClass.duration) { - return 'Please select a duration.' + return __('Please select a time.') } if (!liveClass.timezone) { - return 'Please select a timezone.' + return __('Please select a timezone.') + } + if (!valideTime()) { + return __('Please enter a valid time in the format HH:mm.') + } + const liveClassDateTime = dayjs(`${liveClass.date}T${liveClass.time}`).tz( + liveClass.timezone, + true + ) + if ( + liveClassDateTime.isSameOrBefore( + dayjs().tz(liveClass.timezone, false), + 'minute' + ) + ) { + return __('Please select a future date and time.') + } + if (!liveClass.duration) { + return __('Please select a duration.') } }, onSuccess() { diff --git a/frontend/src/utils/dayjs.js b/frontend/src/utils/dayjs.js index b5cecdc0..d7057b12 100644 --- a/frontend/src/utils/dayjs.js +++ b/frontend/src/utils/dayjs.js @@ -5,6 +5,8 @@ import updateLocale from 'dayjs/esm/plugin/updateLocale' import isToday from 'dayjs/esm/plugin/isToday' import isSameOrBefore from 'dayjs/esm/plugin/isSameOrBefore' import isSameOrAfter from 'dayjs/esm/plugin/isSameOrAfter' +import utc from 'dayjs/esm/plugin/utc' +import timezone from 'dayjs/esm/plugin/timezone' dayjs.extend(updateLocale) dayjs.extend(relativeTime) @@ -12,5 +14,7 @@ dayjs.extend(localizedFormat) dayjs.extend(isToday) dayjs.extend(isSameOrBefore) dayjs.extend(isSameOrAfter) +dayjs.extend(utc) +dayjs.extend(timezone) export default dayjs