diff --git a/new-lamassu-admin/src/pages/Locales/helper.js b/new-lamassu-admin/src/pages/Locales/helper.js index f26f8f2f..73016b58 100644 --- a/new-lamassu-admin/src/pages/Locales/helper.js +++ b/new-lamassu-admin/src/pages/Locales/helper.js @@ -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, diff --git a/new-lamassu-admin/src/utils/timezones.js b/new-lamassu-admin/src/utils/timezones.js index f148320b..b462bcb7 100644 --- a/new-lamassu-admin/src/utils/timezones.js +++ b/new-lamassu-admin/src/utils/timezones.js @@ -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 }