diff options
| author | Emīls Piņķis <emils@mullvad.net> | 2019-03-18 15:52:04 +0000 |
|---|---|---|
| committer | Emīls Piņķis <emils@mullvad.net> | 2019-03-18 15:52:04 +0000 |
| commit | b3df605be7965b264a5b3f7f49988f3e100dac84 (patch) | |
| tree | bdc079f15cbc067e86f36624b7cff6afbe53e1db /gui/src | |
| parent | e2e46db34d2bd5262e30baadec3f984dfc2183ec (diff) | |
| parent | a5e93e5617839e5bceb2e4e8e20a7538710e48e5 (diff) | |
| download | mullvadvpn-b3df605be7965b264a5b3f7f49988f3e100dac84.tar.xz mullvadvpn-b3df605be7965b264a5b3f7f49988f3e100dac84.zip | |
Merge branch 'gui-sort-relay-list'
Diffstat (limited to 'gui/src')
| -rw-r--r-- | gui/src/renderer/app.tsx | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/gui/src/renderer/app.tsx b/gui/src/renderer/app.tsx index a6c92aa672..3d2c79230d 100644 --- a/gui/src/renderer/app.tsx +++ b/gui/src/renderer/app.tsx @@ -543,19 +543,31 @@ export default class AppRenderer { } private setRelays(relayList: IRelayList) { - const locations = relayList.countries.map((country) => ({ - name: country.name, - code: country.code, - hasActiveRelays: country.cities.some((city) => city.relays.length > 0), - cities: country.cities.map((city) => ({ - name: city.name, - code: city.code, - latitude: city.latitude, - longitude: city.longitude, - hasActiveRelays: city.relays.length > 0, - relays: city.relays, - })), - })); + const compareStrings = (strA: string, strB: string) => { + if (strA > strB) { + return 1; + } else if (strA < strB) { + return -1; + } + return 0; + }; + const locations = relayList.countries + .map((country) => ({ + name: country.name, + code: country.code, + hasActiveRelays: country.cities.some((city) => city.relays.length > 0), + cities: country.cities + .map((city) => ({ + name: city.name, + code: city.code, + latitude: city.latitude, + longitude: city.longitude, + hasActiveRelays: city.relays.length > 0, + relays: city.relays, + })) + .sort((cityA, cityB) => compareStrings(cityA.name, cityB.name)), + })) + .sort((countryA, countryB) => compareStrings(countryA.name, countryB.name)); this.reduxActions.settings.updateRelayLocations(locations); } |
