fix: timezone labels
This commit is contained in:
parent
b1fa5619a7
commit
ea1aafa3e9
2 changed files with 33 additions and 8 deletions
|
|
@ -42,6 +42,8 @@ const allFields = (getData, onChange, auxElements = []) => {
|
|||
|
||||
const tzLabels = getTzLabels(timezonesData)
|
||||
|
||||
console.log(tzLabels)
|
||||
|
||||
const findSuggestion = it => {
|
||||
const machine = R.find(R.propEq('deviceId', it.machine))(machineData)
|
||||
return machine ? [machine] : []
|
||||
|
|
@ -100,7 +102,7 @@ const allFields = (getData, onChange, auxElements = []) => {
|
|||
},
|
||||
{
|
||||
name: 'cryptoCurrencies',
|
||||
width: 220,
|
||||
width: 170,
|
||||
size: 'sm',
|
||||
view: displayCodeArray(cryptoData),
|
||||
input: Autocomplete,
|
||||
|
|
@ -115,7 +117,7 @@ const allFields = (getData, onChange, auxElements = []) => {
|
|||
},
|
||||
{
|
||||
name: 'timezone',
|
||||
width: 220,
|
||||
width: 320,
|
||||
size: 'sm',
|
||||
view: getView(tzLabels, 'label'),
|
||||
input: Autocomplete,
|
||||
|
|
|
|||
|
|
@ -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