From e25f1619805cd5a2db44cf62fc2ad9b0eab5f498 Mon Sep 17 00:00:00 2001 From: Ejaaz Khan Date: Sun, 10 Nov 2024 17:48:26 +0530 Subject: [PATCH 1/2] feat: allow same date live class creation --- .../src/components/Modals/LiveClassModal.vue | 21 +++++++++++++------ frontend/src/utils/dayjs.js | 4 ++++ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/Modals/LiveClassModal.vue b/frontend/src/components/Modals/LiveClassModal.vue index 71f5e9ab..05918851 100644 --- a/frontend/src/components/Modals/LiveClassModal.vue +++ b/frontend/src/components/Modals/LiveClassModal.vue @@ -161,21 +161,30 @@ const submitLiveClass = (close) => { if (!liveClass.date) { return 'Please select a date.' } - if (dayjs(liveClass.date).isSameOrBefore(dayjs(), 'day')) { - return 'Please select a future date.' - } if (!liveClass.time) { return 'Please select a time.' } + if (!liveClass.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.' } - if (!liveClass.timezone) { - return 'Please select a timezone.' - } }, onSuccess() { liveClasses.value.reload() 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 From be49ba6d04de8e5ccd5967b98c89de4e8f475302 Mon Sep 17 00:00:00 2001 From: Ejaaz Khan Date: Wed, 13 Nov 2024 00:37:15 +0530 Subject: [PATCH 2/2] refactor: add translate in all error messages --- frontend/src/components/Modals/LiveClassModal.vue | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/frontend/src/components/Modals/LiveClassModal.vue b/frontend/src/components/Modals/LiveClassModal.vue index 05918851..d5a6bb29 100644 --- a/frontend/src/components/Modals/LiveClassModal.vue +++ b/frontend/src/components/Modals/LiveClassModal.vue @@ -156,19 +156,19 @@ 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.' + return __('Please select a date.') } if (!liveClass.time) { - return 'Please select a time.' + 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.' + return __('Please enter a valid time in the format HH:mm.') } const liveClassDateTime = dayjs(`${liveClass.date}T${liveClass.time}`).tz( liveClass.timezone, @@ -180,10 +180,10 @@ const submitLiveClass = (close) => { 'minute' ) ) { - return 'Please select a future date and time.' + return __('Please select a future date and time.') } if (!liveClass.duration) { - return 'Please select a duration.' + return __('Please select a duration.') } }, onSuccess() {