fix: timezone labels
This commit is contained in:
parent
b1fa5619a7
commit
ea1aafa3e9
2 changed files with 33 additions and 8 deletions
|
|
@ -14,7 +14,7 @@ const getPossibleUTCDSTPairs = timezones =>
|
|||
)
|
||||
)
|
||||
|
||||
const finalTimezones = timezones =>
|
||||
const getFormattedTimezones = timezones =>
|
||||
R.sort(
|
||||
R.ascend(R.prop('utcOffset')),
|
||||
R.map(
|
||||
|
|
@ -26,12 +26,18 @@ const finalTimezones = timezones =>
|
|||
cities: R.map(
|
||||
ite => {
|
||||
const regionCityPair = R.split('/', ite.name)
|
||||
return { region: regionCityPair[0], city: regionCityPair[1] }
|
||||
return {
|
||||
region: regionCityPair[0],
|
||||
city: R.replace(/_/g, ' ', regionCityPair[1]),
|
||||
country: ite.country
|
||||
}
|
||||
},
|
||||
R.filter(
|
||||
itx =>
|
||||
R.eqProps('utcOffset', it, itx) &&
|
||||
R.eqProps('dstOffset', it, itx) &&
|
||||
!R.isNil(itx.country) &&
|
||||
!R.includes('Etc', itx.name) &&
|
||||
R.includes('/', itx.name),
|
||||
timezones
|
||||
)
|
||||
|
|
@ -41,13 +47,30 @@ const finalTimezones = timezones =>
|
|||
)
|
||||
)
|
||||
|
||||
const getFinalTimezones = timezones => {
|
||||
const formattedTimezones = getFormattedTimezones(timezones)
|
||||
const nonEmptyTimezones = R.filter(
|
||||
it => !R.isEmpty(it.cities),
|
||||
formattedTimezones
|
||||
)
|
||||
const nonDuplicateCities = R.map(
|
||||
it => ({
|
||||
...it,
|
||||
cities: R.uniqBy(R.prop('country'), R.uniqBy(R.prop('city'), it.cities))
|
||||
}),
|
||||
nonEmptyTimezones
|
||||
)
|
||||
return nonDuplicateCities
|
||||
}
|
||||
|
||||
const buildLabel = tz => {
|
||||
return `UTC${tz.utcOffsetStr}${
|
||||
tz.utcOffset !== tz.dstOffset ? ' (Daylight Saving Time)' : ''
|
||||
}`
|
||||
return `(UTC${tz.utcOffsetStr}) ${R.map(it => it.city, tz.cities).join(', ')}`
|
||||
}
|
||||
|
||||
const getTzLabels = timezones =>
|
||||
R.map(it => ({ label: buildLabel(it), code: it }), finalTimezones(timezones))
|
||||
R.map(
|
||||
it => ({ label: buildLabel(it), code: it }),
|
||||
getFinalTimezones(timezones)
|
||||
)
|
||||
|
||||
export { getTzLabels }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue