mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
55 lines
1.5 KiB
Swift
55 lines
1.5 KiB
Swift
import Foundation
|
|
import UIKit
|
|
import ComponentFlow
|
|
import Display
|
|
|
|
public extension Transition.Animation.Curve {
|
|
init(_ curve: ContainedViewLayoutTransitionCurve) {
|
|
switch curve {
|
|
case .linear:
|
|
self = .linear
|
|
case .easeInOut:
|
|
self = .easeInOut
|
|
case let .custom(a, b, c, d):
|
|
self = .custom(a, b, c, d)
|
|
case .customSpring:
|
|
self = .spring
|
|
case .spring:
|
|
self = .spring
|
|
}
|
|
}
|
|
|
|
var containedViewLayoutTransitionCurve: ContainedViewLayoutTransitionCurve {
|
|
switch self {
|
|
case .linear:
|
|
return .linear
|
|
case .easeInOut:
|
|
return .easeInOut
|
|
case .spring:
|
|
return .spring
|
|
case let .custom(a, b, c, d):
|
|
return .custom(a, b, c, d)
|
|
}
|
|
}
|
|
}
|
|
|
|
public extension Transition {
|
|
init(_ transition: ContainedViewLayoutTransition) {
|
|
switch transition {
|
|
case .immediate:
|
|
self.init(animation: .none)
|
|
case let .animated(duration, curve):
|
|
self.init(animation: .curve(duration: duration, curve: Transition.Animation.Curve(curve)))
|
|
}
|
|
}
|
|
|
|
var containedViewLayoutTransition: ContainedViewLayoutTransition {
|
|
switch self.animation {
|
|
case .none:
|
|
return .immediate
|
|
case let .curve(duration, curve):
|
|
return .animated(duration: duration, curve: curve.containedViewLayoutTransitionCurve)
|
|
}
|
|
}
|
|
}
|