Files
OrderScheduling/OrderScheduling/Entry/Entry.swift
DDIsFriend d13c882b98 update
2023-08-24 14:29:52 +08:00

163 lines
5.7 KiB
Swift

//
// Entry.swift
// OrderScheduling
//
// Created by on 2023/8/9.
//
import Foundation
import SwiftEntryKit
import DDAutoUIKit_Private
public let ENTRY = Entry.default
open class Entry {
public static let `default` = Entry()
public func showRefuseOrderEntry(view:UIView,name:String? = nil){
var attributes = EKAttributes()
attributes = .centerFloat
attributes.name = name
attributes.precedence = .override(priority: .normal, dropEnqueuedEntries: false)
attributes.displayMode = .inferred
attributes.displayDuration = .infinity
attributes.screenBackground = .color(color: .clear)
attributes.entryBackground = .color(color: .white)
attributes.screenInteraction = .absorbTouches
attributes.entryInteraction = .absorbTouches
attributes.scroll = .disabled
attributes.entranceAnimation = .init(
translate: .init(
duration: 0.25,
spring: .init(damping: 1, initialVelocity: 0)
)
)
attributes.exitAnimation = .init(
translate: .init(duration: 0.25)
)
attributes.popBehavior = .animated(
animation: .init(
translate: .init(duration: 0.25)
)
)
attributes.shadow = .active(
with: .init(
color: .black,
opacity: 0.3,
radius: 6
)
)
attributes.positionConstraints.size = .init(
width: .constant(value: auto(326)),
height: .constant(value: auto(285))
)
attributes.positionConstraints.verticalOffset = 0
attributes.positionConstraints.safeArea = .overridden
attributes.positionConstraints.rotation.isEnabled = false
attributes.statusBar = .light
SwiftEntryKit.display(entry: view, using: attributes)
}
func showAppUpdateEntry(view:UIView,name:String? = nil) {
var attributes = EKAttributes()
attributes.positionConstraints.rotation.isEnabled = false
attributes = .centerFloat
attributes.name = name
attributes.precedence = .override(priority: .high, dropEnqueuedEntries: false)
attributes.displayMode = .inferred
attributes.displayDuration = .infinity
attributes.screenBackground = .color(color: .clear)
attributes.entryBackground = .color(color: .white)
attributes.screenInteraction = .absorbTouches
attributes.entryInteraction = .absorbTouches
attributes.scroll = .disabled
attributes.entranceAnimation = .init(
translate: .init(
duration: 0.25,
spring: .init(damping: 1, initialVelocity: 0)
)
)
attributes.exitAnimation = .init(
translate: .init(duration: 0.25)
)
attributes.popBehavior = .animated(
animation: .init(
translate: .init(duration: 0.25)
)
)
attributes.shadow = .active(
with: .init(
color: .black,
opacity: 0.3,
radius: 6
)
)
attributes.positionConstraints.size = .init(
width: .constant(value: auto(326)),
height: .constant(value: auto(285))
)
attributes.positionConstraints.verticalOffset = 0
attributes.positionConstraints.safeArea = .overridden
attributes.positionConstraints.rotation.isEnabled = false
attributes.statusBar = .light
SwiftEntryKit.display(entry: view, using: attributes)
}
func showNotificationAuthEntry(view:UIView,name:String? = nil) {
var attributes = EKAttributes()
attributes.positionConstraints.rotation.isEnabled = false
attributes = .centerFloat
attributes.name = name
attributes.precedence = .override(priority: .low, dropEnqueuedEntries: false)
attributes.displayMode = .inferred
attributes.displayDuration = .infinity
attributes.screenBackground = .color(color: .clear)
attributes.entryBackground = .color(color: .white)
attributes.screenInteraction = .absorbTouches
attributes.entryInteraction = .absorbTouches
attributes.scroll = .disabled
attributes.entranceAnimation = .init(
translate: .init(
duration: 0.25,
spring: .init(damping: 1, initialVelocity: 0)
)
)
attributes.exitAnimation = .init(
translate: .init(duration: 0.25)
)
attributes.popBehavior = .animated(
animation: .init(
translate: .init(duration: 0.25)
)
)
attributes.shadow = .active(
with: .init(
color: .black,
opacity: 0.3,
radius: 6
)
)
attributes.positionConstraints.size = .init(
width: .constant(value: auto(280)),
height: .constant(value: auto(130))
)
attributes.positionConstraints.verticalOffset = 0
attributes.positionConstraints.safeArea = .overridden
attributes.positionConstraints.rotation.isEnabled = false
attributes.statusBar = .light
SwiftEntryKit.display(entry: view, using: attributes)
}
public func isCurrentlyDisplaying(entryNamed name: String? = nil) -> Bool {
return SwiftEntryKit.isCurrentlyDisplaying(entryNamed: name)
}
public func dismiss(name:String? = nil,completion:(() -> Void)? = nil) {
if let name {
SwiftEntryKit.dismiss(.specific(entryName: name),with: completion)
}else{
SwiftEntryKit.dismiss(with: completion)
}
}
}