Skip to content

Commit 20a2318

Browse files
author
Ali
committed
Fix invoice image loading
1 parent 401b412 commit 20a2318

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

submodules/BotPaymentsUI/Sources/BotCheckoutHeaderItem.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import TelegramPresentationData
88
import ItemListUI
99
import PresentationDataUtils
1010
import PhotoResources
11+
import Postbox
1112

1213
class BotCheckoutHeaderItem: ListViewItem, ItemListItem {
1314
let account: Account
@@ -77,6 +78,8 @@ class BotCheckoutHeaderItemNode: ListViewItemNode {
7778

7879
private var item: BotCheckoutHeaderItem?
7980

81+
private let fetchDisposable = MetaDisposable()
82+
8083
init() {
8184
self.backgroundNode = ASDisplayNode()
8285
self.backgroundNode.isLayerBacked = true
@@ -119,6 +122,10 @@ class BotCheckoutHeaderItemNode: ListViewItemNode {
119122
self.addSubnode(self.botNameNode)
120123
}
121124

125+
deinit {
126+
self.fetchDisposable.dispose()
127+
}
128+
122129
func asyncLayout() -> (_ item: BotCheckoutHeaderItem, _ params: ListViewItemLayoutParams, _ neighbors: ItemListNeighbors) -> (ListViewItemNodeLayout, () -> Void) {
123130
let makeTitleLayout = TextNode.asyncLayout(self.titleNode)
124131
let makeTextLayout = TextNode.asyncLayout(self.textNode)
@@ -159,12 +166,14 @@ class BotCheckoutHeaderItemNode: ListViewItemNode {
159166

160167
var imageApply: (() -> Void)?
161168
var updatedImageSignal: Signal<(TransformImageArguments) -> DrawingContext?, NoError>?
169+
var updatedFetchSignal: Signal<FetchResourceSourceType, FetchResourceError>?
162170
if let photo = item.invoice.photo, let dimensions = photo.dimensions {
163171
let arguments = TransformImageArguments(corners: ImageCorners(radius: 4.0), imageSize: dimensions.cgSize.aspectFilled(imageSize), boundingSize: imageSize, intrinsicInsets: UIEdgeInsets(), emptyColor: item.theme.list.mediaPlaceholderColor)
164172
imageApply = makeImageLayout(arguments)
165173
maxTextWidth = max(1.0, maxTextWidth - imageSize.width - imageTextSpacing)
166174
if imageUpdated {
167175
updatedImageSignal = chatWebFileImage(account: item.account, file: photo)
176+
updatedFetchSignal = fetchedMediaResource(mediaBox: item.account.postbox.mediaBox, reference: .standalone(resource: photo.resource))
168177
}
169178
}
170179

@@ -206,6 +215,9 @@ class BotCheckoutHeaderItemNode: ListViewItemNode {
206215
if let updatedImageSignal = updatedImageSignal {
207216
strongSelf.imageNode.setSignal(updatedImageSignal)
208217
}
218+
if let updatedFetchSignal = updatedFetchSignal {
219+
strongSelf.fetchDisposable.set(updatedFetchSignal.start())
220+
}
209221
strongSelf.imageNode.isHidden = false
210222
} else {
211223
strongSelf.imageNode.isHidden = true

0 commit comments

Comments
 (0)