[WIP] Business

This commit is contained in:
Isaac
2024-02-16 22:52:01 +04:00
parent 16c226c801
commit 46881c65ca
69 changed files with 4103 additions and 1236 deletions

View File

@@ -744,6 +744,7 @@ public enum ChatControllerSubject: Equatable {
case scheduledMessages
case pinnedMessages(id: EngineMessage.Id?)
case messageOptions(peerIds: [EnginePeer.Id], ids: [EngineMessage.Id], info: MessageOptionsInfo)
case customChatContents(contents: ChatCustomContentsProtocol)
public static func ==(lhs: ChatControllerSubject, rhs: ChatControllerSubject) -> Bool {
switch lhs {
@@ -771,6 +772,12 @@ public enum ChatControllerSubject: Equatable {
} else {
return false
}
case let .customChatContents(lhsValue):
if case let .customChatContents(rhsValue) = rhs, lhsValue === rhsValue {
return true
} else {
return false
}
}
}
@@ -1050,7 +1057,23 @@ public enum ChatHistoryListSource {
}
case `default`
case custom(messages: Signal<([Message], Int32, Bool), NoError>, messageId: MessageId, quote: Quote?, loadMore: (() -> Void)?)
case custom(messages: Signal<([Message], Int32, Bool), NoError>, messageId: MessageId?, quote: Quote?, loadMore: (() -> Void)?)
}
public enum ChatCustomContentsKind: Equatable {
case greetingMessageInput
case awayMessageInput
case quickReplyMessageInput(shortcut: String)
}
public protocol ChatCustomContentsProtocol: AnyObject {
var kind: ChatCustomContentsKind { get }
var messages: Signal<[Message], NoError> { get }
var messageLimit: Int? { get }
func enqueueMessages(messages: [EnqueueMessage])
func deleteMessages(ids: [EngineMessage.Id])
func editMessage(id: EngineMessage.Id, text: String, media: RequestEditMessageMedia, entities: TextEntitiesMessageAttribute?, webpagePreviewAttribute: WebpagePreviewMessageAttribute?, disableUrlPreview: Bool)
}
public enum ChatHistoryListDisplayHeaders {
@@ -1069,7 +1092,7 @@ public protocol ChatControllerInteractionProtocol: AnyObject {
public enum ChatHistoryNodeHistoryState: Equatable {
case loading
case loaded(isEmpty: Bool)
case loaded(isEmpty: Bool, hasReachedLimits: Bool)
}
public protocol ChatHistoryListNode: ListView {