From 8fadf280a64bb9867ecef7f6842919d73d5dcfe8 Mon Sep 17 00:00:00 2001 From: John Estropia Date: Wed, 12 Feb 2025 18:14:23 +0900 Subject: [PATCH 1/2] support trait changes in ShapeDrawingNode --- .../Compositions/ShapeDrawingNode.swift | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/Sources/Components/Compositions/ShapeDrawingNode.swift b/Sources/Components/Compositions/ShapeDrawingNode.swift index b6d8d93..48aa398 100644 --- a/Sources/Components/Compositions/ShapeDrawingNode.swift +++ b/Sources/Components/Compositions/ShapeDrawingNode.swift @@ -34,6 +34,7 @@ public final class ShapeDrawingNode: ASDisplayNode, ShapeDisplaying { var shapePath: UIBezierPath? var shapeLineWidth: CGFloat = 0 var shapeStrokeColor: UIColor? + var userInterfaceStyle: UIUserInterfaceStyle = .light } private final class ParameterBox: NSObject { @@ -104,17 +105,38 @@ public final class ShapeDrawingNode: ASDisplayNode, ShapeDisplaying { let backing = parameter.backing guard let path = backing.shapePath else { return } - + + let userInterfaceStyle = backing.userInterfaceStyle + path.lineWidth = backing.shapeLineWidth - backing.shapeFillColor?.setFill() + backing.shapeFillColor? + .resolvedColor(with: .init(userInterfaceStyle: userInterfaceStyle)) + .setFill() + path.fill() - backing.shapeStrokeColor?.setStroke() + backing.shapeStrokeColor? + .resolvedColor(with: .init(userInterfaceStyle: userInterfaceStyle)) + .setStroke() path.stroke() } - + + public override func asyncTraitCollectionDidChange( + withPreviousTraitCollection previousTraitCollection: ASPrimitiveTraitCollection + ) { + super.asyncTraitCollectionDidChange(withPreviousTraitCollection: previousTraitCollection) + let userInterfaceStyle = asyncTraitCollection().userInterfaceStyle + guard + self.backing.userInterfaceStyle != userInterfaceStyle + else { + return + } + self.backing.userInterfaceStyle = userInterfaceStyle + } + + } From 1cba5e36e0d67a8ea505b0f8854f81e364759178 Mon Sep 17 00:00:00 2001 From: John Estropia Date: Wed, 12 Feb 2025 18:15:42 +0900 Subject: [PATCH 2/2] make default unspecified --- Sources/Components/Compositions/ShapeDrawingNode.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Components/Compositions/ShapeDrawingNode.swift b/Sources/Components/Compositions/ShapeDrawingNode.swift index 48aa398..48936b0 100644 --- a/Sources/Components/Compositions/ShapeDrawingNode.swift +++ b/Sources/Components/Compositions/ShapeDrawingNode.swift @@ -34,7 +34,7 @@ public final class ShapeDrawingNode: ASDisplayNode, ShapeDisplaying { var shapePath: UIBezierPath? var shapeLineWidth: CGFloat = 0 var shapeStrokeColor: UIColor? - var userInterfaceStyle: UIUserInterfaceStyle = .light + var userInterfaceStyle: UIUserInterfaceStyle = .unspecified } private final class ParameterBox: NSObject {