[WIP] Stars reactions

This commit is contained in:
Isaac
2024-07-30 23:44:19 +08:00
parent 83be782893
commit 05372b578c
85 changed files with 2271 additions and 1115 deletions

View File

@@ -41,7 +41,7 @@ extension ChatControllerImpl {
let reactionFile: Signal<TelegramMediaFile?, NoError>
switch value {
case .builtin:
case .builtin, .stars:
reactionFile = self.context.engine.stickers.availableReactions()
|> take(1)
|> map { availableReactions -> TelegramMediaFile? in
@@ -161,25 +161,21 @@ extension ChatControllerImpl {
self.window?.presentInGlobalOverlay(controller)
})
} else {
var debug = false
#if DEBUG
debug = true
#endif
if self.context.sharedContext.applicationBindings.appBuildType == .internal {
debug = true
}
if debug, case .custom(MessageReaction.starsReactionId) = value {
if case .stars = value {
gesture?.cancel()
cancelParentGestures(view: sourceView)
let _ = (ChatSendStarsScreen.initialData(context: self.context, peerId: message.id.peerId)
|> deliverOnMainQueue).start(next: { [weak self] initialData in
guard let self, let initialData else {
return
}
self.push(ChatSendStarsScreen(context: self.context, initialData: initialData, completion: { [weak self] amount in
guard let self else {
guard let self, amount > 0 else {
return
}
let _ = self.context.engine.messages.sendStarsReaction(id: message.id, count: Int(amount))
let _ = (self.context.engine.stickers.resolveInlineStickers(fileIds: [MessageReaction.starsReactionId])
|> deliverOnMainQueue).start(next: { [weak self] files in
guard let self, let file = files[MessageReaction.starsReactionId] else {
@@ -369,7 +365,7 @@ extension ChatControllerImpl {
let reactionFile: TelegramMediaFile?
switch value {
case .builtin:
case .builtin, .stars:
reactionFile = availableReactions?.reactions.first(where: { $0.value == value })?.selectAnimation
case let .custom(fileId):
reactionFile = customEmoji[fileId]