summaryrefslogtreecommitdiffhomepage
path: root/gui/src
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2023-12-05 19:10:21 +0100
committerDavid Lönnhager <david.l@mullvad.net>2024-04-16 14:43:19 +0200
commitee841c08bc6fa76e6147296ac43266aff963f5b8 (patch)
tree62a0080f92d2374382327ec239c6ba54eca8cf31 /gui/src
parentf099a103565f04c18222a8d86025db4e4b2d777d (diff)
downloadmullvadvpn-ee841c08bc6fa76e6147296ac43266aff963f5b8.tar.xz
mullvadvpn-ee841c08bc6fa76e6147296ac43266aff963f5b8.zip
Add daita filtering of relay list
Diffstat (limited to 'gui/src')
-rw-r--r--gui/src/renderer/components/select-location/RelayListContext.tsx14
-rw-r--r--gui/src/renderer/lib/filter-locations.ts9
-rw-r--r--gui/src/renderer/redux/settings/reducers.ts1
3 files changed, 18 insertions, 6 deletions
diff --git a/gui/src/renderer/components/select-location/RelayListContext.tsx b/gui/src/renderer/components/select-location/RelayListContext.tsx
index 86dd7e5467..2341932f2d 100644
--- a/gui/src/renderer/components/select-location/RelayListContext.tsx
+++ b/gui/src/renderer/components/select-location/RelayListContext.tsx
@@ -4,6 +4,7 @@ import { compareRelayLocation, RelayLocation } from '../../../shared/daemon-rpc-
import {
EndpointType,
filterLocations,
+ filterLocationsByDaita,
filterLocationsByEndPointType,
getLocationsExpandedBySearch,
searchForLocations,
@@ -60,6 +61,7 @@ interface RelayListContextProviderProps {
export function RelayListContextProvider(props: RelayListContextProviderProps) {
const { locationType, searchTerm } = useSelectLocationContext();
+ const daita = useSelector((state) => state.settings.wireguard.daita?.enabled ?? false);
const fullRelayList = useSelector((state) => state.settings.relayLocations);
const relaySettings = useNormalRelaySettings();
@@ -71,15 +73,15 @@ export function RelayListContextProvider(props: RelayListContextProviderProps) {
return filterLocationsByEndPointType(fullRelayList, endpointType, relaySettings);
}, [fullRelayList, locationType, relaySettings?.tunnelProtocol]);
+ const relayListForDaita = useMemo(() => {
+ return filterLocationsByDaita(relayListForEndpointType, daita);
+ }, [daita, relayListForEndpointType]);
+
// Filters the relays to only keep the relays matching the currently selected filters, e.g.
// ownership and providers
const relayListForFilters = useMemo(() => {
- return filterLocations(
- relayListForEndpointType,
- relaySettings?.ownership,
- relaySettings?.providers,
- );
- }, [relaySettings?.ownership, relaySettings?.providers, relayListForEndpointType]);
+ return filterLocations(relayListForDaita, relaySettings?.ownership, relaySettings?.providers);
+ }, [relaySettings?.ownership, relaySettings?.providers, relayListForDaita]);
// Filters the relays based on the provided search term
const relayListForSearch = useMemo(() => {
diff --git a/gui/src/renderer/lib/filter-locations.ts b/gui/src/renderer/lib/filter-locations.ts
index 63ca56cbf2..802748680a 100644
--- a/gui/src/renderer/lib/filter-locations.ts
+++ b/gui/src/renderer/lib/filter-locations.ts
@@ -27,6 +27,15 @@ export function filterLocationsByEndPointType(
return filterLocationsImpl(locations, getTunnelProtocolFilter(endpointType, relaySettings));
}
+export function filterLocationsByDaita(
+ locations: IRelayLocationCountryRedux[],
+ daita: boolean,
+): IRelayLocationCountryRedux[] {
+ return daita
+ ? filterLocationsImpl(locations, (relay: IRelayLocationRelayRedux) => relay.daita)
+ : locations;
+}
+
export function filterLocations(
locations: IRelayLocationCountryRedux[],
ownership?: Ownership,
diff --git a/gui/src/renderer/redux/settings/reducers.ts b/gui/src/renderer/redux/settings/reducers.ts
index 2f8020ebf7..18873eea20 100644
--- a/gui/src/renderer/redux/settings/reducers.ts
+++ b/gui/src/renderer/redux/settings/reducers.ts
@@ -76,6 +76,7 @@ export interface IRelayLocationRelayRedux {
owned: boolean;
weight: number;
endpointType: RelayEndpointType;
+ daita: boolean;
}
export interface IRelayLocationCityRedux {