Swiftgram/submodules/AccountContext/Sources/ContactMultiselectionController.swift
2020-02-28 20:22:39 +04:00

38 lines
1.1 KiB
Swift

import Foundation
import Display
import SwiftSignalKit
import Postbox
public enum ContactMultiselectionControllerMode {
case groupCreation
case peerSelection(searchChatList: Bool, searchGroups: Bool, searchChannels: Bool)
case channelCreation
case chatSelection
}
public enum ContactListFilter {
case excludeSelf
case exclude([PeerId])
case disable([PeerId])
}
public final class ContactMultiselectionControllerParams {
public let context: AccountContext
public let mode: ContactMultiselectionControllerMode
public let options: [ContactListAdditionalOption]
public let filters: [ContactListFilter]
public init(context: AccountContext, mode: ContactMultiselectionControllerMode, options: [ContactListAdditionalOption], filters: [ContactListFilter] = [.excludeSelf]) {
self.context = context
self.mode = mode
self.options = options
self.filters = filters
}
}
public protocol ContactMultiselectionController: ViewController {
var result: Signal<[ContactListPeerId], NoError> { get }
var displayProgress: Bool { get set }
var dismissed: (() -> Void)? { get set }
}