Files
featherVoice/TUIKit/TUIRoomKit/Source/Store/View/ViewActions.swift

59 lines
1.8 KiB
Swift
Raw Normal View History

2025-08-08 10:49:36 +08:00
//
// ViewActions.swift
// TUIRoomKit
//
// Created by CY zhao on 2024/7/9.
//
import Foundation
enum ViewActions {
static let key = "action.view"
static let toastActionKey = key + ".showToast"
static let showToast = ActionTemplate(id: toastActionKey, payloadType: ToastInfo.self)
}
enum ScheduleViewActions {
static let key = ViewActions.key + ".scheduleView"
static let refreshConferenceList = ActionTemplate(id: key.appending(".refreshConferenceList"))
static let stopRefreshList = ActionTemplate(id: key.appending(".stopRefreshList"))
static let popDetailView = ActionTemplate(id: key.appending(".popDetailView"))
static let resetPopDetailFlag = ActionTemplate(id: key.appending(".resetPopDetailFlag"))
}
enum InvitationViewActions {
static let key = ViewActions.key + ".invitationView"
static let dismissInvitationView = ActionTemplate(id: key.appending(".dismissInvitationView"))
static let resetInvitationFlag = ActionTemplate(id: key.appending(".resetInvitationFlag"))
static let showInvitationPopupView = ActionTemplate(id: key.appending(".showInvitationPopupView"))
static let resetPopupViewFlag = ActionTemplate(id: key.appending(".resetPopupViewFlag"))
}
struct ToastInfo: Identifiable {
enum Position {
case center
case bottom
}
let id: UUID
let duration: TimeInterval
let position: Position
let message: String
init(message: String, position: Position = .center, duration: TimeInterval = 1.5) {
id = UUID()
self.message = message
self.position = position
self.duration = duration
}
}
extension ToastInfo: Equatable {
static func ==(lhs: ToastInfo, rhs: ToastInfo) -> Bool{
return lhs.id == rhs.id || lhs.message == rhs.message
}
}