From df8b615d35bd028bc354e1dd42aa809c9f58b78c Mon Sep 17 00:00:00 2001 From: Jamil Date: Fri, 14 Feb 2025 13:50:35 -0800 Subject: [PATCH] fix(apple/macOS): Don't force unwrap for menubar items (#8135) We can elegantly handle nil items in places where we currently don't. This PR updates all cases in MenuBar.swift to gracefully handle nil items like the menubar icons which can, in rare circumstances, be `nil` if they haven't yet loaded. --- .../apple/FirezoneKit/Sources/FirezoneKit/Views/MenuBar.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swift/apple/FirezoneKit/Sources/FirezoneKit/Views/MenuBar.swift b/swift/apple/FirezoneKit/Sources/FirezoneKit/Views/MenuBar.swift index bddc420bf..d69d43d9b 100644 --- a/swift/apple/FirezoneKit/Sources/FirezoneKit/Views/MenuBar.swift +++ b/swift/apple/FirezoneKit/Sources/FirezoneKit/Views/MenuBar.swift @@ -384,7 +384,7 @@ public final class MenuBar: NSObject, ObservableObject { private func getStatusIcon(status: NEVPNStatus?, notification: Bool) -> NSImage? { if status == .connecting || status == .disconnecting || status == .reasserting { - return self.connectingAnimationImages.last! + return self.connectingAnimationImages.last ?? nil } switch status { @@ -696,7 +696,7 @@ public final class MenuBar: NSObject, ObservableObject { } } else { // Show Address first if addressDescription is missing - resourceAddressDescriptionItem.title = resource.address! // Address is none only for non-internet resource + resourceAddressDescriptionItem.title = resource.address ?? "" // Address is none only for internet resource resourceAddressDescriptionItem.action = #selector(resourceValueTapped(_:)) } resourceAddressDescriptionItem.isEnabled = true