Various fixes

This commit is contained in:
Ilya Laktyushin 2023-11-02 16:38:20 +04:00
parent 19007dfbcb
commit 5b6f79e6f5
4 changed files with 21 additions and 11 deletions

View File

@ -773,6 +773,8 @@ public final class DatePickerNode: ASDisplayNode {
public func updateLayout(size: CGSize, transition: ContainedViewLayoutTransition) {
self.validLayout = size
let constrainedSize = CGSize(width: min(390.0, size.width), height: size.height)
let timeHeight: CGFloat = 50.0
let topInset: CGFloat = 78.0 + timeHeight
let sideInset: CGFloat = 16.0
@ -783,8 +785,8 @@ public final class DatePickerNode: ASDisplayNode {
let timeTitleSize = self.timeTitleNode.updateLayout(size)
self.timeTitleNode.frame = CGRect(origin: CGPoint(x: 16.0, y: 12.0), size: timeTitleSize)
let timePickerSize = CGSize(width: size.width, height: 180.0)
self.timePickerNode.frame = CGRect(origin: CGPoint(x: 0.0, y: timeHeight + 11.0), size: timePickerSize)
let timePickerSize = CGSize(width: constrainedSize.width, height: 180.0)
self.timePickerNode.frame = CGRect(origin: CGPoint(x: floorToScreenPixels((size.width - constrainedSize.width) / 2.0), y: timeHeight + 11.0), size: timePickerSize)
self.monthTextNode.attributedText = NSAttributedString(string: stringForMonth(strings: self.strings, month: components.month.flatMap { Int32($0) - 1 } ?? 0, ofYear: components.year.flatMap { Int32($0) - 1900 } ?? 100), font: controlFont, textColor: self.state.displayingMonthSelection ? self.theme.accentColor : self.theme.textColor)
let monthSize = self.monthTextNode.updateLayout(size)
@ -827,14 +829,14 @@ public final class DatePickerNode: ASDisplayNode {
self.dateButtonNode.frame = CGRect(x: size.width - timeSize.width - 4.0 - 4.0 - dateSize.width, y: 4.0, width: dateSize.width, height: dateSize.height)
let daysSideInset: CGFloat = 12.0
let cellSize: CGFloat = floor((size.width - daysSideInset * 2.0) / 7.0)
let cellSize: CGFloat = floor((constrainedSize.width - daysSideInset * 2.0) / 7.0)
var dayIndex: Int32 = Int32(calendar.firstWeekday) - 1
for i in 0 ..< self.dayNodes.count {
let dayNode = self.dayNodes[i]
dayNode.attributedText = NSAttributedString(string: shortStringForDayOfWeek(strings: self.strings, day: dayIndex % 7).uppercased(), font: dayFont, textColor: theme.secondaryTextColor)
let textSize = dayNode.updateLayout(size)
let textSize = dayNode.updateLayout(constrainedSize)
let cellFrame = CGRect(x: daysSideInset + CGFloat(i) * cellSize, y: topInset - 38.0, width: cellSize, height: cellSize)
let textFrame = CGRect(origin: CGPoint(x: cellFrame.minX + floor((cellFrame.width - textSize.width) / 2.0), y: cellFrame.minY + floor((cellFrame.height - textSize.height) / 2.0)), size: textSize)
@ -842,8 +844,8 @@ public final class DatePickerNode: ASDisplayNode {
dayIndex += 1
}
let containerSize = CGSize(width: size.width, height: size.height - topInset)
self.contentNode.frame = CGRect(origin: CGPoint(x: 0.0, y: topInset), size: containerSize)
let containerSize = CGSize(width: constrainedSize.width, height: size.height - topInset)
self.contentNode.frame = CGRect(origin: CGPoint(x: floorToScreenPixels((size.width - constrainedSize.width) / 2.0), y: topInset), size: containerSize)
self.updateItems(size: containerSize, transition: transition)

View File

@ -904,9 +904,16 @@ public func createGiveawayController(context: AccountContext, updatedPresentatio
var selectedProduct: PremiumGiftProduct?
let selectedMonths = state.selectedMonths ?? 12
switch state.mode {
case .giveaway:
if let product = products.first(where: { $0.months == selectedMonths && $0.giftOption.users == state.subscriptions }) {
selectedProduct = product
}
case .gift:
if let product = products.first(where: { $0.months == selectedMonths && $0.giftOption.users == 1 }) {
selectedProduct = product
}
}
guard let selectedProduct else {
let alertController = textAlertController(context: context, title: presentationData.strings.BoostGift_ReduceQuantity_Title, text: presentationData.strings.BoostGift_ReduceQuantity_Text("\(state.subscriptions)", "\(selectedMonths)", "\(25)").string, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.BoostGift_ReduceQuantity_Reduce, action: {

View File

@ -155,8 +155,9 @@ public class ItemListDatePickerItemNode: ListViewItemNode, ItemListItemNode {
let leftInset = 16.0 + params.leftInset
let width = min(390.0, params.width - params.leftInset - params.rightInset)
let cellSize = floor((width - 12.0 * 2.0) / 7.0)
let width = params.width - params.leftInset - params.rightInset
let constrainedWidth = min(390.0, width)
let cellSize = floor((constrainedWidth - 12.0 * 2.0) / 7.0)
let pickerHeight = 122.0 + cellSize * 6.0
let height: CGFloat
if item.displayingDateSelection {

View File

@ -1,5 +1,5 @@
{
"app": "10.2.2",
"app": "10.2.3",
"bazel": "6.4.0",
"xcode": "15.0"
}