mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 22:55:00 +00:00
Various improvements
This commit is contained in:
@@ -1011,6 +1011,7 @@ private final class ChatSendStarsScreenComponent: Component {
|
||||
private let closeButton = ComponentView<Empty>()
|
||||
|
||||
private let title = ComponentView<Empty>()
|
||||
private let subtitle = ComponentView<Empty>()
|
||||
private let descriptionText = ComponentView<Empty>()
|
||||
|
||||
private let badgeStars = BadgeStarsView()
|
||||
@@ -1790,6 +1791,18 @@ private final class ChatSendStarsScreenComponent: Component {
|
||||
let title = self.title
|
||||
let descriptionText = self.descriptionText
|
||||
let actionButton = self.actionButton
|
||||
|
||||
let titleSubtitleSpacing: CGFloat = 1.0
|
||||
|
||||
//TODO:localize
|
||||
let subtitleSize = self.subtitle.update(
|
||||
transition: .immediate,
|
||||
component: AnyComponent(MultilineTextComponent(
|
||||
text: .plain(NSAttributedString(string: "from \(currentMyPeer.compactDisplayTitle)", font: Font.regular(12.0), textColor: environment.theme.list.itemSecondaryTextColor))
|
||||
)),
|
||||
environment: {},
|
||||
containerSize: CGSize(width: availableSize.width - leftButtonFrame.maxX * 2.0, height: 100.0)
|
||||
)
|
||||
|
||||
let titleSize = title.update(
|
||||
transition: .immediate,
|
||||
@@ -1799,13 +1812,24 @@ private final class ChatSendStarsScreenComponent: Component {
|
||||
environment: {},
|
||||
containerSize: CGSize(width: availableSize.width - leftButtonFrame.maxX * 2.0, height: 100.0)
|
||||
)
|
||||
let titleFrame = CGRect(origin: CGPoint(x: floor((availableSize.width - titleSize.width) * 0.5), y: floor((56.0 - titleSize.height) * 0.5)), size: titleSize)
|
||||
|
||||
let titleSubtitleHeight = titleSize.height + titleSubtitleSpacing + subtitleSize.height
|
||||
|
||||
let titleFrame = CGRect(origin: CGPoint(x: floor((availableSize.width - titleSize.width) * 0.5), y: floor((56.0 - titleSubtitleHeight) * 0.5)), size: titleSize)
|
||||
if let titleView = title.view {
|
||||
if titleView.superview == nil {
|
||||
self.navigationBarContainer.addSubview(titleView)
|
||||
}
|
||||
transition.setFrame(view: titleView, frame: titleFrame)
|
||||
}
|
||||
|
||||
let subtitleFrame = CGRect(origin: CGPoint(x: floor((availableSize.width - subtitleSize.width) * 0.5), y: titleFrame.maxY + titleSubtitleSpacing), size: subtitleSize)
|
||||
if let subtitleView = subtitle.view {
|
||||
if subtitleView.superview == nil {
|
||||
self.navigationBarContainer.addSubview(subtitleView)
|
||||
}
|
||||
transition.setFrame(view: subtitleView, frame: subtitleFrame)
|
||||
}
|
||||
|
||||
contentHeight += 56.0
|
||||
contentHeight += 8.0
|
||||
@@ -1995,17 +2019,37 @@ private final class ChatSendStarsScreenComponent: Component {
|
||||
guard let self, let component = self.component, let peer = topPeer.peer else {
|
||||
return
|
||||
}
|
||||
if let peerInfoController = component.context.sharedContext.makePeerInfoController(
|
||||
context: component.context,
|
||||
updatedPresentationData: nil,
|
||||
peer: peer._asPeer(),
|
||||
mode: .generic,
|
||||
avatarInitiallyExpanded: false,
|
||||
fromChat: false,
|
||||
requestsContext: nil
|
||||
) {
|
||||
self.environment?.controller()?.push(peerInfoController)
|
||||
guard let controller = self.environment?.controller() else {
|
||||
return
|
||||
}
|
||||
guard let navigationController = controller.navigationController as? NavigationController else {
|
||||
return
|
||||
}
|
||||
var viewControllers = navigationController.viewControllers
|
||||
guard let index = viewControllers.firstIndex(where: { $0 === controller }) else {
|
||||
return
|
||||
}
|
||||
|
||||
let context = component.context
|
||||
|
||||
if case .user = peer {
|
||||
if let peerInfoController = context.sharedContext.makePeerInfoController(
|
||||
context: context,
|
||||
updatedPresentationData: nil,
|
||||
peer: peer._asPeer(),
|
||||
mode: .generic,
|
||||
avatarInitiallyExpanded: false,
|
||||
fromChat: false,
|
||||
requestsContext: nil
|
||||
) {
|
||||
viewControllers.insert(peerInfoController, at: index)
|
||||
}
|
||||
} else {
|
||||
let chatController = context.sharedContext.makeChatController(context: context, chatLocation: .peer(id: peer.id), subject: nil, botStart: nil, mode: .standard(.default), params: nil)
|
||||
viewControllers.insert(chatController, at: index)
|
||||
}
|
||||
navigationController.setViewControllers(viewControllers, animated: true)
|
||||
controller.dismiss()
|
||||
},
|
||||
isEnabled: topPeer.peer != nil && topPeer.peer?.id != component.context.account.peerId,
|
||||
animateAlpha: false
|
||||
|
||||
Reference in New Issue
Block a user