@@ -53,6 +53,7 @@ public class PremiumLimitDisplayComponent: Component {
5353 private let activeTitleColor : UIColor
5454 private let badgeIconName : String ?
5555 private let badgeText : String ?
56+ private let badgeTextSuffix : String ?
5657 private let badgePosition : CGFloat
5758 private let badgeGraphPosition : CGFloat
5859 private let invertProgress : Bool
@@ -69,6 +70,7 @@ public class PremiumLimitDisplayComponent: Component {
6970 activeTitleColor: UIColor ,
7071 badgeIconName: String ? ,
7172 badgeText: String ? ,
73+ badgeTextSuffix: String ? = nil ,
7274 badgePosition: CGFloat ,
7375 badgeGraphPosition: CGFloat ,
7476 invertProgress: Bool = false ,
@@ -84,6 +86,7 @@ public class PremiumLimitDisplayComponent: Component {
8486 self . activeTitleColor = activeTitleColor
8587 self . badgeIconName = badgeIconName
8688 self . badgeText = badgeText
89+ self . badgeTextSuffix = badgeTextSuffix
8790 self . badgePosition = badgePosition
8891 self . badgeGraphPosition = badgeGraphPosition
8992 self . invertProgress = invertProgress
@@ -121,6 +124,9 @@ public class PremiumLimitDisplayComponent: Component {
121124 if lhs. badgeText != rhs. badgeText {
122125 return false
123126 }
127+ if lhs. badgeTextSuffix != rhs. badgeTextSuffix {
128+ return false
129+ }
124130 if lhs. badgePosition != rhs. badgePosition {
125131 return false
126132 }
@@ -197,7 +203,7 @@ public class PremiumLimitDisplayComponent: Component {
197203 self . badgeIcon. contentMode = . center
198204
199205 self . badgeLabel = BadgeLabelView ( )
200- let _ = self . badgeLabel. update ( value: " 0 " , transition: . immediate)
206+ let _ = self . badgeLabel. update ( value: " 0 " , suffix : nil , transition: . immediate)
201207 self . badgeLabel. mask = self . badgeLabelMaskView
202208
203209 super. init ( frame: frame)
@@ -312,7 +318,7 @@ public class PremiumLimitDisplayComponent: Component {
312318 if from == nil {
313319 frameTransition = frameTransition. withAnimation ( . none)
314320 }
315- let badgeLabelSize = self . badgeLabel. update ( value: badgeText, transition: transition)
321+ let badgeLabelSize = self . badgeLabel. update ( value: badgeText, suffix : component . badgeTextSuffix , transition: transition)
316322 frameTransition. setFrame ( view: self . badgeLabel, frame: CGRect ( origin: CGPoint ( x: 14.0 + floorToScreenPixels( ( badgeFullSize. width - badgeLabelSize. width) / 2.0 ) , y: 5.0 ) , size: badgeLabelSize) )
317323 }
318324 }
@@ -514,22 +520,7 @@ public class PremiumLimitDisplayComponent: Component {
514520
515521 let countWidth : CGFloat
516522 if let badgeText = component. badgeText {
517- switch badgeText. count {
518- case 1 :
519- countWidth = 20.0
520- case 2 :
521- countWidth = 35.0
522- case 3 :
523- countWidth = 51.0
524- case 4 :
525- countWidth = 60.0
526- case 5 :
527- countWidth = 74.0
528- case 6 :
529- countWidth = 88.0
530- default :
531- countWidth = 51.0
532- }
523+ countWidth = BadgeLabelView . calculateSize ( value: badgeText, suffix: component. badgeTextSuffix) . width + 4.0
533524 } else {
534525 countWidth = 51.0
535526 }
@@ -603,15 +594,15 @@ public class PremiumLimitDisplayComponent: Component {
603594 }
604595
605596 self . badgeIcon. frame = CGRect ( x: 10.0 , y: 9.0 , width: 30.0 , height: 30.0 )
606- self . badgeLabelMaskView. frame = CGRect ( x: 0.0 , y: 0.0 , width: 100 .0, height: 36.0 )
597+ self . badgeLabelMaskView. frame = CGRect ( x: 0.0 , y: 0.0 , width: 200 .0, height: 36.0 )
607598
608599 if component. isPremiumDisabled {
609600 if !self . didPlayAppearanceAnimation {
610601 self . didPlayAppearanceAnimation = true
611602
612603 self . badgeView. alpha = 1.0
613604 if let badgeText = component. badgeText {
614- let badgeLabelSize = self . badgeLabel. update ( value: badgeText, transition: . immediate)
605+ let badgeLabelSize = self . badgeLabel. update ( value: badgeText, suffix : component . badgeTextSuffix , transition: . immediate)
615606 transition. setFrame ( view: self . badgeLabel, frame: CGRect ( origin: CGPoint ( x: 14.0 + floorToScreenPixels( ( badgeFullSize. width - badgeLabelSize. width) / 2.0 ) , y: 5.0 ) , size: badgeLabelSize) )
616607 }
617608 }
@@ -621,7 +612,7 @@ public class PremiumLimitDisplayComponent: Component {
621612 if component. badgePosition < 0.1 {
622613 self . badgeView. alpha = 1.0
623614 if let badgeText = component. badgeText {
624- let badgeLabelSize = self . badgeLabel. update ( value: badgeText, transition: . immediate)
615+ let badgeLabelSize = self . badgeLabel. update ( value: badgeText, suffix : component . badgeTextSuffix , transition: . immediate)
625616 transition. setFrame ( view: self . badgeLabel, frame: CGRect ( origin: CGPoint ( x: 14.0 + floorToScreenPixels( ( badgeFullSize. width - badgeLabelSize. width) / 2.0 ) , y: 5.0 ) , size: badgeLabelSize) )
626617 }
627618 } else {
0 commit comments