Skip to content

Commit f002012

Browse files
committed
chore: use Binding.isNotNil everywhere
1 parent 548fe4a commit f002012

12 files changed

+84
-123
lines changed

Sushitrain/BrowserListView.swift

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -361,30 +361,30 @@ private struct ItemSelectSwipeView<Content: View>: View {
361361

362362
var body: some View {
363363
if self.file.isSelectionToggleAvailable {
364-
self.content.alert(
365-
isPresented: Binding(get: { errorMessage != nil }, set: { s in errorMessage = s ? errorMessage : nil })
366-
) {
367-
Alert(
368-
title: Text("Could not change synchronization setting"), message: Text(errorMessage ?? ""),
369-
dismissButton: .default(Text("OK")))
370-
}.swipeActions(allowsFullSwipe: false) {
371-
if file.isExplicitlySelected() || file.isSelected() {
372-
// Unselect button
373-
Button {
374-
Task { self.errorMessage = await self.file.setSelectedFromToggle(s: false) }
375-
} label: {
376-
Label("Do not synchronize with this device", systemImage: "pin.slash")
377-
}.tint(.red)
364+
self.content
365+
.alert(isPresented: Binding.isNotNil($errorMessage)) {
366+
Alert(
367+
title: Text("Could not change synchronization setting"), message: Text(errorMessage ?? ""),
368+
dismissButton: .default(Text("OK")))
378369
}
379-
else {
380-
// Select button
381-
Button {
382-
Task { self.errorMessage = await self.file.setSelectedFromToggle(s: true) }
383-
} label: {
384-
Label("Synchronize with this device", systemImage: "pin")
370+
.swipeActions(allowsFullSwipe: false) {
371+
if file.isExplicitlySelected() || file.isSelected() {
372+
// Unselect button
373+
Button {
374+
Task { self.errorMessage = await self.file.setSelectedFromToggle(s: false) }
375+
} label: {
376+
Label("Do not synchronize with this device", systemImage: "pin.slash")
377+
}.tint(.red)
378+
}
379+
else {
380+
// Select button
381+
Button {
382+
Task { self.errorMessage = await self.file.setSelectedFromToggle(s: true) }
383+
} label: {
384+
Label("Synchronize with this device", systemImage: "pin")
385+
}
385386
}
386387
}
387-
}
388388
}
389389
else {
390390
self.content

Sushitrain/BrowserTableView.swift

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -188,13 +188,9 @@ struct BrowserTableView: View {
188188
},
189189
primaryAction: self.doubleClick
190190
)
191-
.navigationDestination(
192-
isPresented: Binding(
193-
get: { self.openedEntry != nil },
194-
set: { self.openedEntry = $0 ? self.openedEntry : nil }),
195-
destination: {
196-
self.nextView()
197-
})
191+
.navigationDestination(isPresented: Binding.isNotNil($openedEntry)) {
192+
self.nextView()
193+
}
198194
}
199195

200196
@ViewBuilder private func nextView() -> some View {

Sushitrain/BrowserView.swift

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -248,15 +248,7 @@ struct BrowserView: View {
248248
return true
249249
})
250250
#endif
251-
.alert(
252-
isPresented: Binding(
253-
get: { return self.error != nil },
254-
set: { nv in
255-
if !nv {
256-
self.error = nil
257-
}
258-
})
259-
) {
251+
.alert(isPresented: Binding.isNotNil($error)) {
260252
Alert(
261253
title: Text("An error occurred"),
262254
message: self.error == nil ? nil : Text(self.error!.localizedDescription),

Sushitrain/ContentView.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,12 @@ private struct ContentView: View {
4242
@Environment(AppState.self) private var appState
4343
@Environment(\.scenePhase) var scenePhase
4444
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
45+
4546
@State private var showCustomConfigWarning = false
4647
@State var route: Route? = .start
4748
@State private var columnVisibility = NavigationSplitViewVisibility.doubleColumn
48-
49-
#if os(iOS)
50-
@State private var showSearchSheet = false
51-
@State private var searchSheetSearchTerm: String = ""
52-
#endif
49+
@State private var showSearchSheet = false
50+
@State private var searchSheetSearchTerm: String = ""
5351

5452
@ViewBuilder private func foldersTab() -> some View {
5553
NavigationStack {
@@ -268,7 +266,9 @@ private struct ContentView: View {
268266
initialSearchText: self.searchSheetSearchTerm
269267
)
270268
.navigationTitle("Search")
271-
.navigationBarTitleDisplayMode(.inline)
269+
#if os(iOS)
270+
.navigationBarTitleDisplayMode(.inline)
271+
#endif
272272
.toolbar {
273273
SheetButton(role: .done) {
274274
showSearchSheet = false

Sushitrain/DecrypterView.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,7 @@ import SwiftUI
110110
}.frame(minWidth: 400, maxWidth: .infinity, maxHeight: .infinity)
111111
}
112112
.frame(maxWidth: .infinity, maxHeight: .infinity)
113-
.fileImporter(
114-
isPresented: Binding(get: { self.showPickerFor != nil }, set: { _ in return }),
115-
allowedContentTypes: [.directory]
116-
) { (result) in
113+
.fileImporter(isPresented: Binding.isNotNil($showPickerFor), allowedContentTypes: [.directory]) { (result) in
117114
switch (result, showPickerFor) {
118115
case (.success(let url), .source):
119116
self.sourceURL = url

Sushitrain/DeviceView.swift

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,11 @@ private struct DeviceAddressesView: View {
2727
.onDisappear {
2828
self.write()
2929
}
30-
.alert(
31-
isPresented: Binding(get: { self.error != nil }, set: { show in self.error = show ? self.error : nil }),
32-
content: {
33-
Alert(
34-
title: Text("Could not change addresses"), message: Text(self.error ?? ""),
35-
dismissButton: .default(Text("OK")))
36-
})
30+
.alert(isPresented: Binding.isNotNil($error)) {
31+
Alert(
32+
title: Text("Could not change addresses"), message: Text(self.error ?? ""),
33+
dismissButton: .default(Text("OK")))
34+
}
3735
}
3836

3937
private func update() async {

Sushitrain/DevicesView.swift

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -613,11 +613,7 @@ struct LatencyView: View {
613613
.task {
614614
await self.update()
615615
}
616-
.navigationDestination(
617-
isPresented: Binding(
618-
get: { self.openedDevice != nil },
619-
set: { self.openedDevice = $0 ? self.openedDevice : nil })
620-
) {
616+
.navigationDestination(isPresented: Binding.isNotNil($openedDevice)) {
621617
self.nextView()
622618
}
623619
.toolbar {

Sushitrain/ExtraFilesView.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,9 @@ struct ExtraFilesView: View {
134134
}
135135
}
136136
})
137-
}.quickLookPreview(self.$localItemURL).alert(isPresented: Binding.constant(errorMessage != nil)) {
137+
}
138+
.quickLookPreview(self.$localItemURL)
139+
.alert(isPresented: Binding.isNotNil($errorMessage)) {
138140
Alert(
139141
title: Text("An error occurred"), message: Text(errorMessage ?? ""),
140142
dismissButton: .default(Text("OK")) { errorMessage = nil })

Sushitrain/FolderView.swift

Lines changed: 13 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,7 @@ struct ShareFolderWithDeviceDetailsView: View {
8686
}
8787
}
8888
}
89-
.alert(
90-
isPresented: Binding(
91-
get: { self.error != nil }, set: { nv in self.error = nv ? self.error : nil })
92-
) {
89+
.alert(isPresented: Binding.isNotNil($error)) {
9390
Alert(title: Text("Could not set encryption key"), message: Text(self.error!))
9491
}
9592
}
@@ -439,12 +436,9 @@ private struct ExternalFolderSectionView: View {
439436
}
440437
}
441438
)
442-
.alert(
443-
isPresented: .constant(self.errorText != nil),
444-
content: {
445-
Alert(title: Text("Could not relink folder"), message: Text(errorText ?? ""), dismissButton: .default(Text("OK")))
446-
}
447-
)
439+
.alert(isPresented: Binding.isNotNil($errorText)) {
440+
Alert(title: Text("Could not relink folder"), message: Text(errorText ?? ""), dismissButton: .default(Text("OK")))
441+
}
448442
} footer: {
449443
if isAccessible {
450444
Text("This folder is not in the default location, and may belong to another app.")
@@ -549,12 +543,9 @@ struct ExternalFolderInaccessibleView: View {
549543
}
550544
}
551545
)
552-
.alert(
553-
isPresented: .constant(self.errorText != nil),
554-
content: {
555-
Alert(title: Text("Could not relink folder"), message: Text(errorText ?? ""), dismissButton: .default(Text("OK")))
556-
}
557-
)
546+
.alert(isPresented: Binding.isNotNil($errorText)) {
547+
Alert(title: Text("Could not relink folder"), message: Text(errorText ?? ""), dismissButton: .default(Text("OK")))
548+
}
558549
}
559550
}
560551

@@ -587,13 +578,11 @@ struct ExternalFolderInaccessibleView: View {
587578

588579
struct FolderView: View {
589580
private enum ConfirmableAction {
590-
case none
591581
case unlinkFolder
592582
case removeFolder
593583

594584
var message: String {
595585
switch self {
596-
case .none: return ""
597586
case .removeFolder:
598587
return String(
599588
localized:
@@ -609,7 +598,6 @@ struct FolderView: View {
609598

610599
var buttonTitle: String {
611600
switch self {
612-
case .none: return ""
613601
case .removeFolder: return String(localized: "Remove the folder and all files")
614602
case .unlinkFolder: return String(localized: "Unlink the folder")
615603
}
@@ -621,7 +609,7 @@ struct FolderView: View {
621609
@Environment(\.dismiss) private var dismiss
622610
@State private var isWorking = false
623611
@State private var showAlert: ShowAlert? = nil
624-
@State private var showConfirmable: ConfirmableAction = .none
612+
@State private var showConfirmable: ConfirmableAction? = nil
625613
@State private var advancedExpanded = false
626614
@State private var possiblePeers: [SushitrainPeer] = []
627615
@State private var unsupportedDataProtection = false
@@ -758,14 +746,11 @@ struct FolderView: View {
758746
#endif
759747
}
760748
.confirmationDialog(
761-
showConfirmable.message,
762-
isPresented: Binding(
763-
get: { self.showConfirmable != .none },
764-
set: { self.showConfirmable = $0 ? self.showConfirmable : .none }
765-
),
766-
titleVisibility: .visible
749+
showConfirmable?.message ?? "", isPresented: Binding.isNotNil($showConfirmable), titleVisibility: .visible
767750
) {
768-
Button(showConfirmable.buttonTitle, role: .destructive, action: self.confirmedAction)
751+
if let sc = showConfirmable {
752+
Button(sc.buttonTitle, role: .destructive, action: self.confirmedAction)
753+
}
769754
}
770755
}
771756

@@ -1296,7 +1281,7 @@ private struct FolderGenerateThumbnailsView: View {
12961281
}
12971282
}
12981283
.padding(30)
1299-
.alert(isPresented: Binding.constant(error != nil)) {
1284+
.alert(isPresented: Binding.isNotNil($error)) {
13001285
Alert(
13011286
title: Text("An error occurred"), message: Text(error!),
13021287
dismissButton: .default(Text("OK")) {

Sushitrain/IgnoresView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ struct IgnoresView: View {
120120
.onDisappear {
121121
self.write()
122122
}
123-
.alert(isPresented: Binding.constant(error != nil)) {
123+
.alert(isPresented: Binding.isNotNil($error)) {
124124
Alert(
125125
title: Text("Error loading ignore settings"),
126126
message: error != nil ? Text(error!.localizedDescription) : nil,

0 commit comments

Comments
 (0)