This commit is contained in:
Ilya Laktyushin 2024-12-23 22:10:44 +04:00
parent 292798a494
commit a058946b66

View File

@ -280,6 +280,7 @@ private final class GiftViewSheetContent: CombinedComponent {
var date: Int32? var date: Int32?
var soldOut = false var soldOut = false
var nameHidden = false var nameHidden = false
var canUpgrade = false
if case let .soldOutGift(gift) = component.subject { if case let .soldOutGift(gift) = component.subject {
animationFile = gift.file animationFile = gift.file
stars = gift.price stars = gift.price
@ -303,6 +304,7 @@ private final class GiftViewSheetContent: CombinedComponent {
date = arguments.date date = arguments.date
titleString = incoming ? strings.Gift_View_ReceivedTitle : strings.Gift_View_Title titleString = incoming ? strings.Gift_View_ReceivedTitle : strings.Gift_View_Title
nameHidden = arguments.nameHidden nameHidden = arguments.nameHidden
canUpgrade = arguments.canUpgrade
} else { } else {
animationFile = nil animationFile = nil
stars = 0 stars = 0
@ -320,7 +322,7 @@ private final class GiftViewSheetContent: CombinedComponent {
#endif #endif
var originY: CGFloat = 0.0 var originY: CGFloat = 0.0
if let animationFile, !state.mockFiles.isEmpty { if let animationFile {
let animationHeight: CGFloat let animationHeight: CGFloat
let animationSubject: GiftCompositionComponent.Subject let animationSubject: GiftCompositionComponent.Subject
if state.isUpgradedMock { if state.isUpgradedMock {
@ -993,7 +995,7 @@ private final class GiftViewSheetContent: CombinedComponent {
)) ))
} }
if !soldOut { if !soldOut && canUpgrade {
//TODO:localize //TODO:localize
var items: [AnyComponentWithIdentity<Empty>] = [] var items: [AnyComponentWithIdentity<Empty>] = []
items.append( items.append(
@ -1369,14 +1371,14 @@ public class GiftViewScreen: ViewControllerComponentContainer {
case profileGift(EnginePeer.Id, ProfileGiftsContext.State.StarGift) case profileGift(EnginePeer.Id, ProfileGiftsContext.State.StarGift)
case soldOutGift(StarGift.Gift) case soldOutGift(StarGift.Gift)
var arguments: (peerId: EnginePeer.Id, fromPeerId: EnginePeer.Id?, fromPeerName: String?, messageId: EngineMessage.Id?, incoming: Bool, gift: StarGift, date: Int32, convertStars: Int64?, text: String?, entities: [MessageTextEntity]?, nameHidden: Bool, savedToProfile: Bool, converted: Bool)? { var arguments: (peerId: EnginePeer.Id, fromPeerId: EnginePeer.Id?, fromPeerName: String?, messageId: EngineMessage.Id?, incoming: Bool, gift: StarGift, date: Int32, convertStars: Int64?, text: String?, entities: [MessageTextEntity]?, nameHidden: Bool, savedToProfile: Bool, converted: Bool, canUpgrade: Bool)? {
switch self { switch self {
case let .message(message): case let .message(message):
if let action = message.media.first(where: { $0 is TelegramMediaAction }) as? TelegramMediaAction, case let .starGift(gift, convertStars, text, entities, nameHidden, savedToProfile, converted, _, _) = action.action { if let action = message.media.first(where: { $0 is TelegramMediaAction }) as? TelegramMediaAction, case let .starGift(gift, convertStars, text, entities, nameHidden, savedToProfile, converted, _, _) = action.action {
return (message.id.peerId, message.author?.id, message.author?.compactDisplayTitle, message.id, message.flags.contains(.Incoming), gift, message.timestamp, convertStars, text, entities, nameHidden, savedToProfile, converted) return (message.id.peerId, message.author?.id, message.author?.compactDisplayTitle, message.id, message.flags.contains(.Incoming), gift, message.timestamp, convertStars, text, entities, nameHidden, savedToProfile, converted, canUpgrade: false)
} }
case let .profileGift(peerId, gift): case let .profileGift(peerId, gift):
return (peerId, gift.fromPeer?.id, gift.fromPeer?.compactDisplayTitle, gift.messageId, false, gift.gift, gift.date, gift.convertStars, gift.text, gift.entities, gift.nameHidden, gift.savedToProfile, false) return (peerId, gift.fromPeer?.id, gift.fromPeer?.compactDisplayTitle, gift.messageId, false, gift.gift, gift.date, gift.convertStars, gift.text, gift.entities, gift.nameHidden, gift.savedToProfile, false, gift.canUpgrade)
case .soldOutGift: case .soldOutGift:
return nil return nil
} }