Skip to content
Snippets Groups Projects
Select Git revision
  • cfafee099680b350b23d78fb71ab36a12b4e9b4e
  • main default protected
  • development
  • integration
  • v1.1.5
  • v1.1.4
  • v1.1.3
  • v1.1.2
  • v1.1.1
  • v1.1.0
  • v1.0.0
11 results

MessengerDestroy.swift

Blame
  • ToastController.swift 567 B
    import Combine
    
    public final class ToastController {
        private let queue = CurrentValueSubject<[ToastModel], Never>([])
    
        var currentToast: AnyPublisher<ToastModel, Never> {
            queue.compactMap(\.first)
                .removeDuplicates(by: { $0.id == $1.id })
                .eraseToAnyPublisher()
        }
    
        public init() {}
    
        public func enqueueToast(model: ToastModel) {
            queue.value.append(model)
        }
    
        public func dismissCurrentToast() {
            guard queue.value.isEmpty == false else { return }
            _ = queue.value.removeFirst()
        }
    }