Skip to content

Commit c88613f

Browse files
authored
Simplify NSViewRepresentables (#19)
* Simplify NSViewRepresentables * Lints and formatting
1 parent d371f1e commit c88613f

3 files changed

Lines changed: 168 additions & 237 deletions

File tree

Snap-O/CaptureWindow/WindowLevelController.swift

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,34 +8,20 @@ import SwiftUI
88
struct WindowLevelController: NSViewRepresentable {
99
let shouldFloat: Bool
1010

11-
func makeCoordinator() -> Coordinator {
12-
Coordinator()
13-
}
14-
1511
func makeNSView(context: Context) -> NSView {
1612
let view = NSView()
1713
DispatchQueue.main.async {
18-
context.coordinator.updateWindowLevel(shouldFloat: shouldFloat, for: view.window)
14+
configure(window: view.window)
1915
}
2016
return view
2117
}
2218

2319
func updateNSView(_ nsView: NSView, context: Context) {
24-
DispatchQueue.main.async {
25-
context.coordinator.updateWindowLevel(shouldFloat: shouldFloat, for: nsView.window)
26-
}
20+
configure(window: nsView.window)
2721
}
2822

29-
// MARK: - Coordinator
30-
31-
final class Coordinator {
32-
private var lastAppliedLevel: NSWindow.Level?
33-
34-
func updateWindowLevel(shouldFloat: Bool, for window: NSWindow?) {
35-
guard let window else { return }
36-
DispatchQueue.main.async {
37-
window.level = shouldFloat ? .floating : .normal
38-
}
39-
}
23+
private func configure(window: NSWindow?) {
24+
guard let window else { return }
25+
window.level = shouldFloat ? .floating : .normal
4026
}
4127
}

Snap-O/CaptureWindow/WindowTitleVisibilityController.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@ struct WindowTitleVisibilityController: NSViewRepresentable {
77
func makeNSView(context: Context) -> NSView {
88
let view = NSView()
99
DispatchQueue.main.async {
10-
guard let window = view.window else { return }
11-
configure(window: window)
10+
configure(window: view.window)
1211
}
1312
return view
1413
}
1514

1615
func updateNSView(_ nsView: NSView, context: Context) {
17-
if let window = nsView.window { configure(window: window) }
16+
configure(window: nsView.window)
1817
}
1918

20-
private func configure(window: NSWindow) {
19+
private func configure(window: NSWindow?) {
20+
guard let window else { return }
2121
window.titleVisibility = .hidden
2222
window.title = ""
2323
}

0 commit comments

Comments
 (0)