mirror of
https://github.com/discourse/discourse.git
synced 2025-06-06 23:07:28 +08:00
FIX: prevents timezone to show duplicated zones in preview
It could happen if you have Etc/UTC in default settings, and timezone="UTC" on date, the equality check is now more strict.
This commit is contained in:
@ -125,6 +125,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function _isEqualZones(timezoneA, timezoneB) {
|
function _isEqualZones(timezoneA, timezoneB) {
|
||||||
|
if (timezoneA.includes(timezoneB) || timezoneB.includes(timezoneA)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
moment.tz(timezoneA).utcOffset() === moment.tz(timezoneB).utcOffset()
|
moment.tz(timezoneA).utcOffset() === moment.tz(timezoneB).utcOffset()
|
||||||
);
|
);
|
||||||
@ -222,7 +226,9 @@
|
|||||||
const previewedTimezones = [];
|
const previewedTimezones = [];
|
||||||
const watchingUserTimezone = moment.tz.guess();
|
const watchingUserTimezone = moment.tz.guess();
|
||||||
const timezones = options.timezones.filter(
|
const timezones = options.timezones.filter(
|
||||||
timezone => timezone !== watchingUserTimezone
|
timezone =>
|
||||||
|
!_isEqualZones(timezone, watchingUserTimezone) &&
|
||||||
|
!_isEqualZones(timezone, options.timezone)
|
||||||
);
|
);
|
||||||
|
|
||||||
previewedTimezones.push({
|
previewedTimezones.push({
|
||||||
@ -244,26 +250,24 @@
|
|||||||
timezones.unshift(options.timezone);
|
timezones.unshift(options.timezone);
|
||||||
}
|
}
|
||||||
|
|
||||||
timezones
|
timezones.filter(Boolean).forEach(timezone => {
|
||||||
.filter(z => z)
|
if (_isEqualZones(timezone, displayedTimezone)) {
|
||||||
.forEach(timezone => {
|
return;
|
||||||
if (_isEqualZones(timezone, displayedTimezone)) {
|
}
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_isEqualZones(timezone, watchingUserTimezone)) {
|
if (_isEqualZones(timezone, watchingUserTimezone)) {
|
||||||
timezone = watchingUserTimezone;
|
timezone = watchingUserTimezone;
|
||||||
}
|
}
|
||||||
|
|
||||||
previewedTimezones.push({
|
previewedTimezones.push({
|
||||||
timezone,
|
timezone,
|
||||||
dateTime: options.time
|
dateTime: options.time
|
||||||
? moment(dateTime)
|
? moment(dateTime)
|
||||||
.tz(timezone)
|
.tz(timezone)
|
||||||
.format("LLL")
|
.format("LLL")
|
||||||
: _createDateTimeRange(dateTime, timezone)
|
: _createDateTimeRange(dateTime, timezone)
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
if (!previewedTimezones.length) {
|
if (!previewedTimezones.length) {
|
||||||
previewedTimezones.push({
|
previewedTimezones.push({
|
||||||
|
Reference in New Issue
Block a user