Skip to content

Commit 5659602

Browse files
authored
feat(event): implement PlatformUnaryViewResponder (#1120)
1 parent 62528b0 commit 5659602

1 file changed

Lines changed: 48 additions & 0 deletions

File tree

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
//
2+
// PlatformUnaryViewResponder.swift
3+
// OpenSwiftUI
4+
//
5+
// Audited for 6.5.4
6+
// Status: Complete
7+
8+
#if os(iOS) || os(visionOS) || os(macOS)
9+
@_spi(ForOpenSwiftUIOnly)
10+
import OpenSwiftUICore
11+
12+
class PlatformUnaryViewResponder: PlatformViewResponder {
13+
var layoutResponder: DefaultLayoutViewResponder
14+
15+
init(layoutResponder: DefaultLayoutViewResponder) {
16+
self.layoutResponder = layoutResponder
17+
super.init()
18+
layoutResponder.parent = self
19+
}
20+
21+
override func bindEvent(_ event: any EventType) -> ResponderNode? {
22+
layoutResponder.bindEvent(event)
23+
}
24+
25+
override func makeGesture(inputs: _GestureInputs) -> _GestureOutputs<Void> {
26+
layoutResponder.makeGesture(inputs: inputs)
27+
}
28+
29+
override func resetGesture() {
30+
layoutResponder.resetGesture()
31+
}
32+
33+
override var children: [ViewResponder] {
34+
[layoutResponder]
35+
}
36+
37+
@discardableResult
38+
override func visit(
39+
applying visitor: (ResponderNode) -> ResponderVisitorResult
40+
) -> ResponderVisitorResult {
41+
let result = visitor(self)
42+
guard result == .next else {
43+
return result
44+
}
45+
return layoutResponder.visit(applying: visitor)
46+
}
47+
}
48+
#endif

0 commit comments

Comments
 (0)