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:
Joffrey JAFFEUX
2019-11-22 17:14:27 +01:00
committed by GitHub
parent 2c335efd1e
commit a40bc1e92b

View File

@ -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,9 +250,7 @@
timezones.unshift(options.timezone); timezones.unshift(options.timezone);
} }
timezones timezones.filter(Boolean).forEach(timezone => {
.filter(z => z)
.forEach(timezone => {
if (_isEqualZones(timezone, displayedTimezone)) { if (_isEqualZones(timezone, displayedTimezone)) {
return; return;
} }