203 lines
7.2 KiB
Swift
203 lines
7.2 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 = .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(180))
|
|
)
|
|
attributes.positionConstraints.verticalOffset = 0
|
|
attributes.positionConstraints.safeArea = .overridden
|
|
attributes.positionConstraints.rotation.isEnabled = false
|
|
attributes.statusBar = .light
|
|
SwiftEntryKit.display(entry: view, using: attributes)
|
|
}
|
|
|
|
func showAcceptOrderEntry(view:UIView,name:String? = nil) {
|
|
var attributes = EKAttributes()
|
|
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 = .dismiss
|
|
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 = .init(verticalOffset:0,size:.init(width:EKAttributes.PositionConstraints.Edge.constant(value: auto(276)),height:EKAttributes.PositionConstraints.Edge.constant(value: auto(148))))
|
|
|
|
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 = .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)
|
|
}
|
|
}
|
|
}
|