From 629f2b1e5d7c887b5297490faefee107b750cf2d Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Wed, 1 Apr 2026 00:33:44 +0200 Subject: [PATCH] Various fixes --- .../Sources/ChatMessagePollBubbleContentNode.swift | 2 +- .../Sources/StoryContentCaptionComponent.swift | 6 +++--- .../Sources/StoryItemSetContainerComponent.swift | 10 ++++++---- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/submodules/TelegramUI/Components/Chat/ChatMessagePollBubbleContentNode/Sources/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/Components/Chat/ChatMessagePollBubbleContentNode/Sources/ChatMessagePollBubbleContentNode.swift index 2cbcaee4cd..bf7cdcfd7c 100644 --- a/submodules/TelegramUI/Components/Chat/ChatMessagePollBubbleContentNode/Sources/ChatMessagePollBubbleContentNode.swift +++ b/submodules/TelegramUI/Components/Chat/ChatMessagePollBubbleContentNode/Sources/ChatMessagePollBubbleContentNode.swift @@ -1346,7 +1346,7 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { node.buttonNode.isAccessibilityElement = shouldHaveRadioNode let previousResultBarWidth = minBarWidth + floor((width - leftInset - rightInset - minBarWidth) * (currentResult?.normalized ?? 0.0)) - let previousFrame = CGRect(origin: CGPoint(x: leftInset, y: contentLayoutHeight - 6.0 - 1.0), size: CGSize(width: previousResultBarWidth, height: 6.0)) + let previousFrame = CGRect(origin: CGPoint(x: leftInset, y: contentLayoutHeight - 6.0 - 1.0), size: CGSize(width: previousResultBarWidth, height: 4.0)) node.resultBarNode.layer.animateSpring(from: NSValue(cgPoint: previousFrame.center), to: NSValue(cgPoint: node.resultBarNode.frame.center), keyPath: "position", duration: 0.6, damping: 110.0) node.resultBarNode.layer.animateSpring(from: NSValue(cgRect: CGRect(origin: CGPoint(), size: previousFrame.size)), to: NSValue(cgRect: CGRect(origin: CGPoint(), size: node.resultBarNode.frame.size)), keyPath: "bounds", duration: 0.6, damping: 110.0) diff --git a/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryContentCaptionComponent.swift b/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryContentCaptionComponent.swift index 49d6030c89..25cefe535d 100644 --- a/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryContentCaptionComponent.swift +++ b/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryContentCaptionComponent.swift @@ -70,7 +70,7 @@ final class StoryContentCaptionComponent: Component { let textSelectionAction: (NSAttributedString, TextSelectionAction) -> Void let controller: () -> ViewController? let openStory: (EnginePeer, EngineStoryItem?) -> Void - let openMusic: (FileMediaReference, UIView) -> Void + let openMusic: (TelegramMediaFile, UIView) -> Void init( externalState: ExternalState, @@ -89,7 +89,7 @@ final class StoryContentCaptionComponent: Component { textSelectionAction: @escaping (NSAttributedString, TextSelectionAction) -> Void, controller: @escaping () -> ViewController?, openStory: @escaping (EnginePeer, EngineStoryItem?) -> Void, - openMusic: @escaping (FileMediaReference, UIView) -> Void + openMusic: @escaping (TelegramMediaFile, UIView) -> Void ) { self.externalState = externalState self.context = context @@ -756,7 +756,7 @@ final class StoryContentCaptionComponent: Component { return } if let sourceView = self.musicPanel?.view { - self.component?.openMusic(.standalone(media: music), sourceView) + self.component?.openMusic(music, sourceView) } }, animateScale: false diff --git a/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerComponent.swift b/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerComponent.swift index e1b6ffa7c0..fa1efdfe9e 100644 --- a/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerComponent.swift +++ b/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerComponent.swift @@ -7547,8 +7547,8 @@ public final class StoryItemSetContainerComponent: Component { }) } - private func performMusicAction(file: FileMediaReference, sourceView: UIView, gesture: ContextGesture?) { - guard let component = self.component, let controller = component.controller() else { + private func performMusicAction(file: TelegramMediaFile, sourceView: UIView, gesture: ContextGesture?) { + guard let component = self.component, let controller = component.controller(), let peer = PeerReference(component.slice.peer._asPeer()) else { return } @@ -7556,6 +7556,8 @@ public final class StoryItemSetContainerComponent: Component { let presentationData = component.context.sharedContext.currentPresentationData.with({ $0 }).withUpdated(theme: component.theme) + let fileReference: FileMediaReference = .story(peer: peer, id: component.slice.item.storyItem.id, media: file) + let items = component.context.engine.peers.savedMusicIds() |> take(1) |> map { [weak self] savedIds -> ContextController.Items in @@ -7580,7 +7582,7 @@ public final class StoryItemSetContainerComponent: Component { return } - let _ = component.context.engine.peers.addSavedMusic(file: file).start() + let _ = component.context.engine.peers.addSavedMusic(file: fileReference).start() guard let controller = component.controller() as? StoryContainerScreen else { return @@ -7638,7 +7640,7 @@ public final class StoryItemSetContainerComponent: Component { return } - let _ = component.context.engine.messages.enqueueOutgoingMessage(to: component.context.account.peerId, replyTo: nil, content: .file(file)).start() + let _ = component.context.engine.messages.enqueueOutgoingMessage(to: component.context.account.peerId, replyTo: nil, content: .file(fileReference)).start() guard let controller = component.controller() as? StoryContainerScreen else { return