diff options
| author | Steffen <steffen.ernst@mullvad.net> | 2025-07-01 13:14:43 +0200 |
|---|---|---|
| committer | Jon Petersson <jon.petersson@mullvad.net> | 2025-07-02 14:22:45 +0200 |
| commit | d5fd63f0d73953ead181e38ecb9bb05ab7a94e72 (patch) | |
| tree | 5746b5bdad81ab4f408901ebdf882936845bb3d7 /ios | |
| parent | 4348e9e439d5b7939708cda2eb1722fe2be6fc9a (diff) | |
| download | mullvadvpn-d5fd63f0d73953ead181e38ecb9bb05ab7a94e72.tar.xz mullvadvpn-d5fd63f0d73953ead181e38ecb9bb05ab7a94e72.zip | |
Fix too many devices showing success in the beginning
Diffstat (limited to 'ios')
| -rw-r--r-- | ios/MullvadVPN/View controllers/DeviceList/DeviceListView.swift | 4 | ||||
| -rw-r--r-- | ios/MullvadVPN/View controllers/DeviceList/DeviceManagementView.swift | 16 |
2 files changed, 13 insertions, 7 deletions
diff --git a/ios/MullvadVPN/View controllers/DeviceList/DeviceListView.swift b/ios/MullvadVPN/View controllers/DeviceList/DeviceListView.swift index bfcdb83d70..d699648eb3 100644 --- a/ios/MullvadVPN/View controllers/DeviceList/DeviceListView.swift +++ b/ios/MullvadVPN/View controllers/DeviceList/DeviceListView.swift @@ -1,7 +1,7 @@ import SwiftUI struct DeviceListView: View { - @Binding var devices: [Device] + @Binding var devices: [Device]? @Binding var loading: Bool var onRemoveDevice: ((Device) -> Void)? @@ -27,7 +27,7 @@ struct DeviceListView: View { Text("Fetching devices...") .padding(.top, 16) .foregroundColor(.mullvadTextPrimary.opacity(0.6)) - } else { + } else if let devices { MullvadList(devices) { device in MullvadListActionItemView( item: .init( diff --git a/ios/MullvadVPN/View controllers/DeviceList/DeviceManagementView.swift b/ios/MullvadVPN/View controllers/DeviceList/DeviceManagementView.swift index a7e05aa3f5..9094067a57 100644 --- a/ios/MullvadVPN/View controllers/DeviceList/DeviceManagementView.swift +++ b/ios/MullvadVPN/View controllers/DeviceList/DeviceManagementView.swift @@ -49,11 +49,14 @@ struct DeviceManagementView: View { let style: Style let onError: (String, Error) -> Void - @State private var loggedInDevices: [DeviceListView.Device] = [] + @State private var loggedInDevices: [DeviceListView.Device]? = nil @State private var loading = true var canLoginNewDevice: Bool { - loggedInDevices.count < ApplicationConfiguration.maxAllowedDevices + guard let loggedInDevices else { + return false + } + return loggedInDevices.count < ApplicationConfiguration.maxAllowedDevices } var bodyText: LocalizedStringKey { @@ -157,7 +160,10 @@ struct DeviceManagementView: View { identifier: AccessibilityIdentifier.logOutDeviceConfirmButton, handler: { await withCheckedContinuation { continuation in - loggedInDevices = loggedInDevices.map { + guard let loggedInDevices else { + return + } + self.loggedInDevices = loggedInDevices.map { $0.id == device.id ? $0.setIsBeingRemoved(true) : $0 } deviceManagementAlert = nil @@ -167,9 +173,9 @@ struct DeviceManagementView: View { Task { @MainActor in switch result { case .success: - loggedInDevices.removeAll(where: { $0.id == device.id }) + self.loggedInDevices?.removeAll(where: { $0.id == device.id }) case let .failure(error): - loggedInDevices = loggedInDevices.map { + self.loggedInDevices = loggedInDevices.map { $0.id == device .id ? $0.setIsBeingRemoved(false) : $0 } |
