From 91932212e37d90e904a3c4713634b46ae77f15ec Mon Sep 17 00:00:00 2001 From: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com> Date: Thu, 31 Jul 2025 16:34:02 -0400 Subject: [PATCH] fix: Cal Video sidebar not showing meeting time in timezone (#22821) * Pass params as object to `formatToLocalizedTime` * Refactor videos-single-view * Refactor bookings-single-view --- .../bookings/views/bookings-single-view.tsx | 47 ++++++++++++++----- .../videos/views/videos-single-view.tsx | 5 +- packages/lib/dayjs/index.ts | 20 +++++--- 3 files changed, 51 insertions(+), 21 deletions(-) diff --git a/apps/web/modules/bookings/views/bookings-single-view.tsx b/apps/web/modules/bookings/views/bookings-single-view.tsx index bf38a499e8..c1c8728f35 100644 --- a/apps/web/modules/bookings/views/bookings-single-view.tsx +++ b/apps/web/modules/bookings/views/bookings-single-view.tsx @@ -1229,8 +1229,21 @@ function RecurringBookings({
{formatToLocalizedDate(dayjs.tz(dateStr, tz), language, "full", tz)}
- {formatToLocalizedTime(dayjs(dateStr), language, undefined, !is24h, tz)} -{" "} - {formatToLocalizedTime(dayjs(dateStr).add(duration, "m"), language, undefined, !is24h, tz)}{" "} + {formatToLocalizedTime({ + date: dayjs(dateStr), + locale: language, + timeStyle: undefined, + hour12: !is24h, + timeZone: tz, + })}{" "} + -{" "} + {formatToLocalizedTime({ + date: dayjs(dateStr).add(duration, "m"), + locale: language, + timeStyle: undefined, + hour12: !is24h, + timeZone: tz, + })}{" "} ({formatToLocalizedTimezone(dayjs(dateStr), language, tz)}) @@ -1249,14 +1262,19 @@ function RecurringBookings({
{formatToLocalizedDate(dayjs.tz(dateStr, tz), language, "full", tz)}
- {formatToLocalizedTime(dayjs(dateStr), language, undefined, !is24h, tz)} -{" "} - {formatToLocalizedTime( - dayjs(dateStr).add(duration, "m"), - language, - undefined, - !is24h, - tz - )}{" "} + {formatToLocalizedTime({ + date: dayjs(dateStr), + locale: language, + hour12: !is24h, + timeZone: tz, + })}{" "} + -{" "} + {formatToLocalizedTime({ + date: dayjs(dateStr).add(duration, "m"), + locale: language, + hour12: !is24h, + timeZone: tz, + })}{" "} ({formatToLocalizedTimezone(dayjs(dateStr), language, tz)}) @@ -1273,8 +1291,13 @@ function RecurringBookings({
{formatToLocalizedDate(date, language, "full", tz)}
- {formatToLocalizedTime(date, language, undefined, !is24h, tz)} -{" "} - {formatToLocalizedTime(dayjs(date).add(duration, "m"), language, undefined, !is24h, tz)}{" "} + {formatToLocalizedTime({ date, locale: language, hour12: !is24h, timeZone: tz })} -{" "} + {formatToLocalizedTime({ + date: dayjs(date).add(duration, "m"), + locale: language, + hour12: !is24h, + timeZone: tz, + })}{" "} ({formatToLocalizedTimezone(date, language, tz)})
); diff --git a/apps/web/modules/videos/views/videos-single-view.tsx b/apps/web/modules/videos/views/videos-single-view.tsx index a7a67a1839..58d01e6d91 100644 --- a/apps/web/modules/videos/views/videos-single-view.tsx +++ b/apps/web/modules/videos/views/videos-single-view.tsx @@ -288,6 +288,7 @@ export function VideoMeetingInfo(props: VideoMeetingInfo) { const endTime = new Date(booking.endTime); const startTime = new Date(booking.startTime); + const timeZone = booking.user?.timeZone; useDailyEvent("left-meeting", () => { if (rediectAttendeeToOnExit) { @@ -306,11 +307,11 @@ export function VideoMeetingInfo(props: VideoMeetingInfo) {

{t("what")}:

{booking.title}

{t("invitee_timezone")}:

-

{booking.user?.timeZone}

+

{timeZone}

{t("when")}:

{formatToLocalizedDate(startTime)}
- {formatToLocalizedTime(startTime)} + {formatToLocalizedTime({ date: startTime, timeZone })}

{t("time_left")}

formatLocalizedDateTime(date, { timeStyle, hour12, timeZone }, locale); +export const formatToLocalizedTime = ({ + date, + locale = undefined, + timeStyle = "short", + hour12 = undefined, + timeZone, +}: { + date: Date | Dayjs; + locale?: string | undefined; + timeStyle?: Intl.DateTimeFormatOptions["timeStyle"]; + hour12?: Intl.DateTimeFormatOptions["hour12"]; + timeZone?: string; +}) => formatLocalizedDateTime(date, { timeStyle, hour12, timeZone }, locale); /** * Returns a translated timezone based on the given Date object and