Files
OrderScheduling/Pods/SwiftEntryKit/Source/Model/EntryAttributes/EKAttributes+PopBehavior.swift
DDIsFriend f0e8a1709d initial
2023-08-18 17:28:57 +08:00

52 lines
1.4 KiB
Swift

//
// EKAttributes+PopBehavior.swift
// SwiftEntryKit
//
// Created by Daniel Huri on 4/26/18.
//
import Foundation
public extension EKAttributes {
/** Describes the entry behavior when a new entry shows (with equal or higher display-priority) */
enum PopBehavior {
/** The entry disappears promptly (Does not animates out) when a new one shows */
case overridden
/** Animate the entry out - The entry rolls out when a new one shows */
case animated(animation: Animation)
public var isOverriden: Bool {
switch self {
case .overridden:
return true
case .animated:
return false
}
}
var animation: Animation? {
switch self {
case .animated(animation: let animation):
return animation
case .overridden:
return nil
}
}
func validate() {
#if DEBUG
guard let animation = animation else { return }
guard animation == .none else { return }
print("""
SwiftEntryKit warning: cannot associate value `EKAttributes.Animation()`
with `EKAttributes.PopBehavior.animated`. This may result in undefined behavior.
Please use `PopBehavior.overridden` instead.
""")
#endif
}
}
}