FIX: ensures preview is correctly computing timezone for current user (#9758)

This also fixes a related bug with timezones on displayed date when in calendar range.
This commit is contained in:
Joffrey JAFFEUX 2020-05-12 21:30:41 +02:00 committed by GitHub
parent d9f5499f3a
commit e990d8adce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 49 additions and 5 deletions

View File

@ -89,7 +89,14 @@ export default class LocalDateBuilder {
previewedTimezones.push({
timezone: this._zoneWithoutPrefix(this.localTimezone),
current: true,
formated: this._createDateTimeRange(localDate, this.time)
formated: this._createDateTimeRange(
DateWithZoneHelper.fromDatetime(
localDate.datetime,
localDate.timezone,
this.localTimezone
),
this.time
)
});
if (
@ -180,10 +187,12 @@ export default class LocalDateBuilder {
);
if (inCalendarRange && sameTimezone) {
return localDate.datetime.calendar(
moment.tz(this.localTimezone),
this._calendarFormats(this.time ? this.time : null)
);
return localDate
.datetimeWithZone(this.localTimezone)
.calendar(
moment.tz(localDate.timezone),
this._calendarFormats(this.time ? this.time : null)
);
}
}

View File

@ -298,6 +298,18 @@ QUnit.test("option[calendar]", assert => {
"it stops formating out of calendar range"
)
);
freezeTime({ date: "2020-05-12", timezone: LOS_ANGELES }, () => {
assert.buildsCorrectDate(
{
date: "2020-05-13",
time: "18:00",
localTimezone: LOS_ANGELES
},
{ formated: "Tomorrow 11:00 AM" },
"it correctly displays a different local timezone"
);
});
});
QUnit.test("previews", assert => {
@ -467,4 +479,27 @@ QUnit.test("previews", assert => {
}
);
});
freezeTime({ date: "2020-05-12", timezone: LOS_ANGELES }, () => {
assert.buildsCorrectDate(
{
date: "2020-05-13",
time: "18:00",
localTimezone: LOS_ANGELES
},
{
previews: [
{
current: true,
formated: "May 13, 2020 11:00 AM",
timezone: "Los Angeles"
},
{
formated: "May 13, 2020 6:00 PM",
timezone: "UTC"
}
]
}
);
});
});