diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2023-12-05 19:10:21 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2024-04-16 14:43:19 +0200 |
| commit | ee841c08bc6fa76e6147296ac43266aff963f5b8 (patch) | |
| tree | 62a0080f92d2374382327ec239c6ba54eca8cf31 /gui/src/renderer | |
| parent | f099a103565f04c18222a8d86025db4e4b2d777d (diff) | |
| download | mullvadvpn-ee841c08bc6fa76e6147296ac43266aff963f5b8.tar.xz mullvadvpn-ee841c08bc6fa76e6147296ac43266aff963f5b8.zip | |
Add daita filtering of relay list
Diffstat (limited to 'gui/src/renderer')
| -rw-r--r-- | gui/src/renderer/components/select-location/RelayListContext.tsx | 14 | ||||
| -rw-r--r-- | gui/src/renderer/lib/filter-locations.ts | 9 | ||||
| -rw-r--r-- | gui/src/renderer/redux/settings/reducers.ts | 1 |
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 { |
