Skip to content

Commit 76ae9c6

Browse files
Rename NavigationTransition to NavigationTransitionProtocol (#142)
Due to the recent iOS 18 update introducing a protocol named `NavigationTransition`, there was a naming conflict with our existing protocol used for smooth animation navigation in SwiftUI. To resolve this, I renamed our protocol to `NavigationTransitionProtocol` and updated all references accordingly. This change ensures compatibility with iOS 18 and avoids potential issues or confusion in the codebase. Merging this update will maintain seamless functionality across all SwiftUI navigation animations.
1 parent ddc7d42 commit 76ae9c6

File tree

16 files changed

+76
-76
lines changed

16 files changed

+76
-76
lines changed

Examples/Demo/Demo/Custom Transitions/Flip.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ extension AnyNavigationTransition {
1111
}
1212
}
1313

14-
struct Flip: NavigationTransition {
14+
struct Flip: NavigationTransitionProtocol {
1515
var axis: Axis
1616

17-
var body: some NavigationTransition {
17+
var body: some NavigationTransitionProtocol {
1818
MirrorPush {
1919
Rotate3D(.degrees(180), axis: axis == .horizontal ? (x: 1, y: 0, z: 0) : (x: 0, y: 1, z: 0))
2020
}

Examples/Demo/Demo/Custom Transitions/Swing.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ extension AnyNavigationTransition {
77
}
88
}
99

10-
struct Swing: NavigationTransition {
11-
var body: some NavigationTransition {
10+
struct Swing: NavigationTransitionProtocol {
11+
var body: some NavigationTransitionProtocol {
1212
Slide(axis: .horizontal)
1313
MirrorPush {
1414
let angle = 70.0

Examples/Demo/Demo/Custom Transitions/Zoom.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ extension AnyNavigationTransition {
77
}
88
}
99

10-
struct Zoom: NavigationTransition {
11-
var body: some NavigationTransition {
10+
struct Zoom: NavigationTransitionProtocol {
11+
var body: some NavigationTransitionProtocol {
1212
MirrorPush {
1313
Scale(0.5)
1414
OnInsertion {

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ The library ships with some **standard transitions** out of the box:
7777
In addition to these, you can create fully [**custom transitions**](https://davdroman.github.io/swiftui-navigation-transitions/main/documentation/navigationtransitions/custom-transitions/) in just a few lines of SwiftUI-like code!
7878

7979
```swift
80-
struct Swing: NavigationTransition {
81-
var body: some NavigationTransition {
80+
struct Swing: NavigationTransitionProtocol {
81+
var body: some NavigationTransitionProtocol {
8282
Slide(axis: .horizontal)
8383
MirrorPush {
8484
let angle = 70.0

Sources/NavigationTransition/AnyNavigationTransition.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public struct AnyNavigationTransition {
2424
package let handler: Handler
2525
package var animation: Animation? = .default
2626

27-
public init(_ transition: some NavigationTransition) {
27+
public init(_ transition: some NavigationTransitionProtocol) {
2828
self.isDefault = false
2929
self.handler = .transient(transition.transition(from:to:for:in:))
3030
}

Sources/NavigationTransition/Combined.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ extension AnyNavigationTransition {
44
public func combined(with other: Self) -> Self {
55
switch (self.handler, other.handler) {
66
case (.transient(let lhsHandler), .transient(let rhsHandler)):
7-
struct Erased: NavigationTransition {
7+
struct Erased: NavigationTransitionProtocol {
88
let handler: AnyNavigationTransition.TransientHandler
99

1010
@inlinable
@@ -30,7 +30,7 @@ extension AnyNavigationTransition {
3030
}
3131
}
3232

33-
public struct Combined<TransitionA: NavigationTransition, TransitionB: NavigationTransition>: NavigationTransition {
33+
public struct Combined<TransitionA: NavigationTransitionProtocol, TransitionB: NavigationTransitionProtocol>: NavigationTransitionProtocol {
3434
private let transitionA: TransitionA
3535
private let transitionB: TransitionB
3636

Sources/NavigationTransition/Fade.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ extension AnyNavigationTransition {
88
}
99

1010
/// A transition that fades the pushed view in, fades the popped view out, or cross-fades both views.
11-
public struct Fade: NavigationTransition {
11+
public struct Fade: NavigationTransitionProtocol {
1212
public enum Style {
1313
case `in`
1414
case out
@@ -21,7 +21,7 @@ public struct Fade: NavigationTransition {
2121
self.style = style
2222
}
2323

24-
public var body: some NavigationTransition {
24+
public var body: some NavigationTransitionProtocol {
2525
switch style {
2626
case .in:
2727
MirrorPush {

Sources/NavigationTransition/Identity.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// For internal use only.
2-
struct Identity: NavigationTransition {
2+
struct Identity: NavigationTransitionProtocol {
33
init() {}
44

55
func transition(

Sources/NavigationTransition/Mirror.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import AtomicTransition
22

33
/// Used to define a transition that executes on push, and executes the mirrored version of said transition on pop.
4-
public struct MirrorPush<Transition: MirrorableAtomicTransition>: NavigationTransition {
4+
public struct MirrorPush<Transition: MirrorableAtomicTransition>: NavigationTransitionProtocol {
55
private let transition: Transition
66

77
public init(@AtomicTransitionBuilder transition: () -> Transition) {
88
self.transition = transition()
99
}
1010

11-
public var body: some NavigationTransition {
11+
public var body: some NavigationTransitionProtocol {
1212
OnPush {
1313
transition
1414
}
@@ -22,14 +22,14 @@ extension MirrorPush: Equatable where Transition: Equatable {}
2222
extension MirrorPush: Hashable where Transition: Hashable {}
2323

2424
/// Used to define a transition that executes on pop, and executes the mirrored version of said transition on push.
25-
public struct MirrorPop<Transition: MirrorableAtomicTransition>: NavigationTransition {
25+
public struct MirrorPop<Transition: MirrorableAtomicTransition>: NavigationTransitionProtocol {
2626
private let transition: Transition
2727

2828
public init(@AtomicTransitionBuilder transition: () -> Transition) {
2929
self.transition = transition()
3030
}
3131

32-
public var body: some NavigationTransition {
32+
public var body: some NavigationTransitionProtocol {
3333
OnPush {
3434
transition.mirrored()
3535
}

Sources/NavigationTransition/NavigationTransitionBuilder.swift

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
@resultBuilder
22
public enum NavigationTransitionBuilder {
33
#if compiler(>=5.7)
4-
public static func buildPartialBlock<T1: NavigationTransition>(first: T1) -> T1 {
4+
public static func buildPartialBlock<T1: NavigationTransitionProtocol>(first: T1) -> T1 {
55
first
66
}
77

8-
public static func buildPartialBlock<T1: NavigationTransition, T2: NavigationTransition>(accumulated: T1, next: T2) -> Combined<T1, T2> {
8+
public static func buildPartialBlock<T1: NavigationTransitionProtocol, T2: NavigationTransitionProtocol>(accumulated: T1, next: T2) -> Combined<T1, T2> {
99
Combined(accumulated, next)
1010
}
1111
#else
1212
public static func buildBlock<
13-
T1: NavigationTransition
13+
T1: NavigationTransitionProtocol
1414
>(
1515
_ t1: T1
1616
) -> T1 {
1717
t1
1818
}
1919

2020
public static func buildBlock<
21-
T1: NavigationTransition,
22-
T2: NavigationTransition
21+
T1: NavigationTransitionProtocol,
22+
T2: NavigationTransitionProtocol
2323
>(
2424
_ t1: T1,
2525
_ t2: T2
@@ -28,9 +28,9 @@ public enum NavigationTransitionBuilder {
2828
}
2929

3030
public static func buildBlock<
31-
T1: NavigationTransition,
32-
T2: NavigationTransition,
33-
T3: NavigationTransition
31+
T1: NavigationTransitionProtocol,
32+
T2: NavigationTransitionProtocol,
33+
T3: NavigationTransitionProtocol
3434
>(
3535
_ t1: T1,
3636
_ t2: T2,
@@ -40,10 +40,10 @@ public enum NavigationTransitionBuilder {
4040
}
4141

4242
public static func buildBlock<
43-
T1: NavigationTransition,
44-
T2: NavigationTransition,
45-
T3: NavigationTransition,
46-
T4: NavigationTransition
43+
T1: NavigationTransitionProtocol,
44+
T2: NavigationTransitionProtocol,
45+
T3: NavigationTransitionProtocol,
46+
T4: NavigationTransitionProtocol
4747
>(
4848
_ t1: T1,
4949
_ t2: T2,
@@ -54,11 +54,11 @@ public enum NavigationTransitionBuilder {
5454
}
5555

5656
public static func buildBlock<
57-
T1: NavigationTransition,
58-
T2: NavigationTransition,
59-
T3: NavigationTransition,
60-
T4: NavigationTransition,
61-
T5: NavigationTransition
57+
T1: NavigationTransitionProtocol,
58+
T2: NavigationTransitionProtocol,
59+
T3: NavigationTransitionProtocol,
60+
T4: NavigationTransitionProtocol,
61+
T5: NavigationTransitionProtocol
6262
>(
6363
_ t1: T1,
6464
_ t2: T2,
@@ -70,12 +70,12 @@ public enum NavigationTransitionBuilder {
7070
}
7171

7272
public static func buildBlock<
73-
T1: NavigationTransition,
74-
T2: NavigationTransition,
75-
T3: NavigationTransition,
76-
T4: NavigationTransition,
77-
T5: NavigationTransition,
78-
T6: NavigationTransition
73+
T1: NavigationTransitionProtocol,
74+
T2: NavigationTransitionProtocol,
75+
T3: NavigationTransitionProtocol,
76+
T4: NavigationTransitionProtocol,
77+
T5: NavigationTransitionProtocol,
78+
T6: NavigationTransitionProtocol
7979
>(
8080
_ t1: T1,
8181
_ t2: T2,
@@ -88,13 +88,13 @@ public enum NavigationTransitionBuilder {
8888
}
8989

9090
public static func buildBlock<
91-
T1: NavigationTransition,
92-
T2: NavigationTransition,
93-
T3: NavigationTransition,
94-
T4: NavigationTransition,
95-
T5: NavigationTransition,
96-
T6: NavigationTransition,
97-
T7: NavigationTransition
91+
T1: NavigationTransitionProtocol,
92+
T2: NavigationTransitionProtocol,
93+
T3: NavigationTransitionProtocol,
94+
T4: NavigationTransitionProtocol,
95+
T5: NavigationTransitionProtocol,
96+
T6: NavigationTransitionProtocol,
97+
T7: NavigationTransitionProtocol
9898
>(
9999
_ t1: T1,
100100
_ t2: T2,
@@ -108,24 +108,24 @@ public enum NavigationTransitionBuilder {
108108
}
109109
#endif
110110

111-
public static func buildOptional<T: NavigationTransition>(_ component: T?) -> _OptionalTransition<T> {
111+
public static func buildOptional<T: NavigationTransitionProtocol>(_ component: T?) -> _OptionalTransition<T> {
112112
if let component {
113113
return _OptionalTransition(component)
114114
} else {
115115
return _OptionalTransition(nil)
116116
}
117117
}
118118

119-
public static func buildEither<TrueTransition: NavigationTransition, FalseTransition: NavigationTransition>(first component: TrueTransition) -> _ConditionalTransition<TrueTransition, FalseTransition> {
119+
public static func buildEither<TrueTransition: NavigationTransitionProtocol, FalseTransition: NavigationTransitionProtocol>(first component: TrueTransition) -> _ConditionalTransition<TrueTransition, FalseTransition> {
120120
_ConditionalTransition(trueTransition: component)
121121
}
122122

123-
public static func buildEither<TrueTransition: NavigationTransition, FalseTransition: NavigationTransition>(second component: FalseTransition) -> _ConditionalTransition<TrueTransition, FalseTransition> {
123+
public static func buildEither<TrueTransition: NavigationTransitionProtocol, FalseTransition: NavigationTransitionProtocol>(second component: FalseTransition) -> _ConditionalTransition<TrueTransition, FalseTransition> {
124124
_ConditionalTransition(falseTransition: component)
125125
}
126126
}
127127

128-
public struct _OptionalTransition<Transition: NavigationTransition>: NavigationTransition {
128+
public struct _OptionalTransition<Transition: NavigationTransitionProtocol>: NavigationTransitionProtocol {
129129
private let transition: Transition?
130130

131131
init(_ transition: Transition?) {
@@ -142,7 +142,7 @@ public struct _OptionalTransition<Transition: NavigationTransition>: NavigationT
142142
}
143143
}
144144

145-
public struct _ConditionalTransition<TrueTransition: NavigationTransition, FalseTransition: NavigationTransition>: NavigationTransition {
145+
public struct _ConditionalTransition<TrueTransition: NavigationTransitionProtocol, FalseTransition: NavigationTransitionProtocol>: NavigationTransitionProtocol {
146146
private typealias Transition = _Either<TrueTransition, FalseTransition>
147147
private let transition: Transition
148148

0 commit comments

Comments
 (0)