summaryrefslogtreecommitdiffhomepage
path: root/gui/src/renderer
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2019-09-13 13:24:07 +0200
committerLinus Färnstrand <linus@mullvad.net>2019-09-13 13:24:07 +0200
commitf664e5e245804754b15a086d810c81a2f376da0d (patch)
tree814428191d3776033c87f449030359e8cb1666eb /gui/src/renderer
parent40de3386b2c98369d76cbd12e194c931bc17bd87 (diff)
parente5511a373c937b28009e7cebada3249af2e820ed (diff)
downloadmullvadvpn-f664e5e245804754b15a086d810c81a2f376da0d.tar.xz
mullvadvpn-f664e5e245804754b15a086d810c81a2f376da0d.zip
Merge branch 'relay-list-v3'
Diffstat (limited to 'gui/src/renderer')
-rw-r--r--gui/src/renderer/app.tsx4
-rw-r--r--gui/src/renderer/components/LocationList.tsx1
-rw-r--r--gui/src/renderer/components/RelayRow.tsx5
-rw-r--r--gui/src/renderer/redux/settings/reducers.ts1
4 files changed, 8 insertions, 3 deletions
diff --git a/gui/src/renderer/app.tsx b/gui/src/renderer/app.tsx
index 6f54281f3c..c8027223a0 100644
--- a/gui/src/renderer/app.tsx
+++ b/gui/src/renderer/app.tsx
@@ -555,14 +555,14 @@ export default class AppRenderer {
.map((country) => ({
name: country.name,
code: country.code,
- hasActiveRelays: country.cities.some((city) => city.relays.length > 0),
+ hasActiveRelays: country.cities.some((city) => city.relays.some((relay) => relay.active)),
cities: country.cities
.map((city) => ({
name: city.name,
code: city.code,
latitude: city.latitude,
longitude: city.longitude,
- hasActiveRelays: city.relays.length > 0,
+ hasActiveRelays: city.relays.some((relay) => relay.active),
relays: city.relays,
}))
.sort((cityA, cityB) => cityA.name.localeCompare(cityB.name)),
diff --git a/gui/src/renderer/components/LocationList.tsx b/gui/src/renderer/components/LocationList.tsx
index 418da66e94..72a3b64f75 100644
--- a/gui/src/renderer/components/LocationList.tsx
+++ b/gui/src/renderer/components/LocationList.tsx
@@ -84,6 +84,7 @@ export default class LocationList extends Component<IProps, IState> {
return (
<RelayRow
key={getLocationKey(relayLocation)}
+ active={relay.active}
hostname={relay.hostname}
onSelect={this.handleSelection}
{...this.getCommonCellProps(relayLocation)}
diff --git a/gui/src/renderer/components/RelayRow.tsx b/gui/src/renderer/components/RelayRow.tsx
index 69f632e04e..5dff0a33f1 100644
--- a/gui/src/renderer/components/RelayRow.tsx
+++ b/gui/src/renderer/components/RelayRow.tsx
@@ -7,6 +7,7 @@ import RelayStatusIndicator from './RelayStatusIndicator';
interface IProps {
location: RelayLocation;
+ active: boolean;
hostname: string;
selected: boolean;
onSelect?: (location: RelayLocation) => void;
@@ -30,6 +31,7 @@ export default class RelayRow extends Component<IProps> {
return (
oldProps.hostname === nextProps.hostname &&
oldProps.selected === nextProps.selected &&
+ oldProps.active === nextProps.active &&
compareRelayLocation(oldProps.location, nextProps.location)
);
}
@@ -43,8 +45,9 @@ export default class RelayRow extends Component<IProps> {
<Cell.CellButton
onPress={this.handlePress}
cellHoverStyle={this.props.selected ? styles.selected : undefined}
+ disabled={!this.props.active}
style={[styles.base, this.props.selected ? styles.selected : undefined]}>
- <RelayStatusIndicator isActive={true} isSelected={this.props.selected} />
+ <RelayStatusIndicator isActive={this.props.active} isSelected={this.props.selected} />
<Cell.Label>{this.props.hostname}</Cell.Label>
</Cell.CellButton>
diff --git a/gui/src/renderer/redux/settings/reducers.ts b/gui/src/renderer/redux/settings/reducers.ts
index 80cc2ee5c9..fed04b38e4 100644
--- a/gui/src/renderer/redux/settings/reducers.ts
+++ b/gui/src/renderer/redux/settings/reducers.ts
@@ -47,6 +47,7 @@ export interface IRelayLocationRelayRedux {
hostname: string;
ipv4AddrIn: string;
includeInCountry: boolean;
+ active: boolean;
weight: number;
}