Middleware+View+UserState: Add toast messages
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
public struct ToastState: Sendable {
|
||||
|
||||
enum Level: String {
|
||||
case success = "success"
|
||||
case error = "danger"
|
||||
case warning = "warning"
|
||||
case info = "info"
|
||||
case verbose = "secondary"
|
||||
}
|
||||
|
||||
var message: String = ""
|
||||
var title: String = ""
|
||||
var level: Level = Level.verbose
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
import Vapor
|
||||
|
||||
// -----------------------------------------
|
||||
|
||||
public final class UserState: @unchecked Sendable {
|
||||
var toast: ToastState = ToastState()
|
||||
}
|
||||
|
||||
// -----------------------------------------
|
||||
|
||||
struct UserStateKey: StorageKey {
|
||||
typealias Value = UserState
|
||||
}
|
||||
|
||||
struct UserStateManager: Sendable {
|
||||
var states: [String: UserState] = [:]
|
||||
}
|
||||
|
||||
struct UserStateManagerKey : StorageKey {
|
||||
typealias Value = UserStateManager
|
||||
}
|
||||
|
||||
extension Application {
|
||||
var manager: UserStateManager {
|
||||
get {
|
||||
self.storage[UserStateManagerKey.self]!
|
||||
}
|
||||
set {
|
||||
self.storage[UserStateManagerKey.self] = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user