Skip to content

Commit b26f794

Browse files
authored
Improve internal representation of default transition (#36)
1 parent 7df15fd commit b26f794

File tree

3 files changed

+8
-20
lines changed

3 files changed

+8
-20
lines changed

Sources/NavigationTransition/AnyNavigationTransition.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,17 @@ public struct AnyNavigationTransition {
2020
case primitive(PrimitiveHandler)
2121
}
2222

23-
@_spi(package)public let type: Any.Type
23+
@_spi(package)public let isDefault: Bool
2424
@_spi(package)public let handler: Handler
2525
@_spi(package)public var animation: Animation = .default
2626

2727
public init<T: NavigationTransition>(_ transition: T) {
28-
self.type = Swift.type(of: transition)
28+
self.isDefault = false
2929
self.handler = .transient(transition.transition(from:to:for:in:))
3030
}
3131

3232
public init<T: PrimitiveNavigationTransition>(_ transition: T) {
33-
self.type = Swift.type(of: transition)
33+
self.isDefault = transition is Default
3434
self.handler = .primitive(transition.transition(with:for:in:))
3535
}
3636
}

Sources/NavigationTransition/Default.swift

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,10 @@ extension AnyNavigationTransition {
1717
}
1818
}
1919

20-
@_spi(package)public struct Default: NavigationTransition {
20+
@_spi(package)public struct Default: PrimitiveNavigationTransition {
2121
init() {}
2222

23-
public func transition(
24-
from fromView: TransientView,
25-
to toView: TransientView,
26-
for operation: TransitionOperation,
27-
in container: Container
28-
) {
29-
runtimeWarn(
30-
"""
31-
'Default' transition was used in conjunction with another transition.
32-
This won't produce the expected outcome, as 'Default' is a special-cased transition only used
33-
as a reference to the system default navigation transition and doesn't actually contain information
34-
about how the transition is performed.
35-
"""
36-
)
23+
public func transition(with animator: Animator, for operation: TransitionOperation, in context: Context) {
24+
// NO-OP
3725
}
3826
}

Sources/NavigationTransitions/NavigationTransition+UIKit.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ extension UINavigationController {
142142
defaultDelegate = delegate
143143
}
144144

145-
if transition.type == Default.self {
145+
if transition.isDefault {
146146
delegate = defaultDelegate
147147
} else {
148148
customDelegate = NavigationTransitionDelegate(transition: transition, baseDelegate: defaultDelegate)
@@ -171,7 +171,7 @@ extension UINavigationController {
171171
view.addGestureRecognizer(panRecognizer)
172172
}
173173

174-
if transition.type == Default.self {
174+
if transition.isDefault {
175175
switch interactivity {
176176
case .disabled:
177177
exclusivelyEnableGestureRecognizer(.none)

0 commit comments

Comments
 (0)