From 13c7f0af7b7223d68999054d78cd48a9f66dabb7 Mon Sep 17 00:00:00 2001 From: Kyle Date: Mon, 5 Oct 2026 23:19:27 +0800 Subject: [PATCH] feat(event): implement PlatformUnaryViewResponder --- .../PlatformUnaryViewResponder.swift | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 Sources/OpenSwiftUI/Event/Responder/PlatformUnaryViewResponder.swift diff --git a/Sources/OpenSwiftUI/Event/Responder/PlatformUnaryViewResponder.swift b/Sources/OpenSwiftUI/Event/Responder/PlatformUnaryViewResponder.swift new file mode 100644 index 000000000..469e4849e --- /dev/null +++ b/Sources/OpenSwiftUI/Event/Responder/PlatformUnaryViewResponder.swift @@ -0,0 +1,48 @@ +// +// PlatformUnaryViewResponder.swift +// OpenSwiftUI +// +// Audited for 6.5.4 +// Status: Complete + +#if os(iOS) || os(visionOS) || os(macOS) +@_spi(ForOpenSwiftUIOnly) +import OpenSwiftUICore + +class PlatformUnaryViewResponder: PlatformViewResponder { + var layoutResponder: DefaultLayoutViewResponder + + init(layoutResponder: DefaultLayoutViewResponder) { + self.layoutResponder = layoutResponder + super.init() + layoutResponder.parent = self + } + + override func bindEvent(_ event: any EventType) -> ResponderNode? { + layoutResponder.bindEvent(event) + } + + override func makeGesture(inputs: _GestureInputs) -> _GestureOutputs { + layoutResponder.makeGesture(inputs: inputs) + } + + override func resetGesture() { + layoutResponder.resetGesture() + } + + override var children: [ViewResponder] { + [layoutResponder] + } + + @discardableResult + override func visit( + applying visitor: (ResponderNode) -> ResponderVisitorResult + ) -> ResponderVisitorResult { + let result = visitor(self) + guard result == .next else { + return result + } + return layoutResponder.visit(applying: visitor) + } +} +#endif