mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-24 07:05:35 +00:00
Folder improvements
This commit is contained in:
@@ -1159,19 +1159,46 @@ private final class ChatFolderLinkPreviewScreenComponent: Component {
|
||||
return
|
||||
}
|
||||
|
||||
let context = component.context
|
||||
let navigationController = controller.navigationController as? NavigationController
|
||||
|
||||
switch error {
|
||||
case .generic:
|
||||
controller.dismiss()
|
||||
case let .dialogFilterLimitExceeded(limit, _):
|
||||
let limitController = PremiumLimitScreen(context: component.context, subject: .folders, count: limit, action: {})
|
||||
let limitController = PremiumLimitScreen(context: component.context, subject: .folders, count: limit, action: { [weak navigationController] in
|
||||
guard let navigationController else {
|
||||
return
|
||||
}
|
||||
navigationController.pushViewController(PremiumIntroScreen(context: context, source: .folders))
|
||||
})
|
||||
controller.push(limitController)
|
||||
controller.dismiss()
|
||||
case let .sharedFolderLimitExceeded(limit, _):
|
||||
let limitController = PremiumLimitScreen(context: component.context, subject: .membershipInSharedFolders, count: limit, action: {})
|
||||
let limitController = PremiumLimitScreen(context: component.context, subject: .membershipInSharedFolders, count: limit, action: { [weak navigationController] in
|
||||
guard let navigationController else {
|
||||
return
|
||||
}
|
||||
navigationController.pushViewController(PremiumIntroScreen(context: context, source: .membershipInSharedFolders))
|
||||
})
|
||||
controller.push(limitController)
|
||||
controller.dismiss()
|
||||
case let .tooManyChannels(limit, _):
|
||||
let limitController = PremiumLimitScreen(context: component.context, subject: .chatsPerFolder, count: limit, action: {})
|
||||
let limitController = PremiumLimitScreen(context: component.context, subject: .chatsPerFolder, count: limit, action: { [weak navigationController] in
|
||||
guard let navigationController else {
|
||||
return
|
||||
}
|
||||
navigationController.pushViewController(PremiumIntroScreen(context: component.context, source: .chatsPerFolder))
|
||||
})
|
||||
controller.push(limitController)
|
||||
controller.dismiss()
|
||||
case let .tooManyChannelsInAccount(limit, _):
|
||||
let limitController = PremiumLimitScreen(context: component.context, subject: .channels, count: limit, action: { [weak navigationController] in
|
||||
guard let navigationController else {
|
||||
return
|
||||
}
|
||||
navigationController.pushViewController(PremiumIntroScreen(context: component.context, source: .groupsAndChannels))
|
||||
})
|
||||
controller.push(limitController)
|
||||
controller.dismiss()
|
||||
}
|
||||
@@ -1391,23 +1418,56 @@ private final class ChatFolderLinkPreviewScreenComponent: Component {
|
||||
return
|
||||
}
|
||||
|
||||
let context = component.context
|
||||
let navigationController = controller.navigationController as? NavigationController
|
||||
|
||||
//TODO:localize
|
||||
let text: String
|
||||
switch error {
|
||||
case .generic:
|
||||
text = "An error occurred"
|
||||
case let .sharedFolderLimitExceeded(limit, _):
|
||||
let limitController = component.context.sharedContext.makePremiumLimitController(context: component.context, subject: .membershipInSharedFolders, count: limit, action: {
|
||||
let limitController = component.context.sharedContext.makePremiumLimitController(context: component.context, subject: .membershipInSharedFolders, count: limit, action: { [weak navigationController] in
|
||||
guard let navigationController else {
|
||||
return
|
||||
}
|
||||
navigationController.pushViewController(PremiumIntroScreen(context: context, source: .membershipInSharedFolders))
|
||||
})
|
||||
|
||||
controller.push(limitController)
|
||||
|
||||
return
|
||||
case let .limitExceeded(limit, _):
|
||||
let limitController = component.context.sharedContext.makePremiumLimitController(context: component.context, subject: .linksPerSharedFolder, count: limit, action: {
|
||||
let limitController = component.context.sharedContext.makePremiumLimitController(context: component.context, subject: .linksPerSharedFolder, count: limit, action: { [weak navigationController] in
|
||||
guard let navigationController else {
|
||||
return
|
||||
}
|
||||
navigationController.pushViewController(PremiumIntroScreen(context: component.context, source: .linksPerSharedFolder))
|
||||
})
|
||||
controller.push(limitController)
|
||||
|
||||
return
|
||||
case let .tooManyChannels(limit, _):
|
||||
let limitController = PremiumLimitScreen(context: component.context, subject: .chatsPerFolder, count: limit, action: { [weak navigationController] in
|
||||
guard let navigationController else {
|
||||
return
|
||||
}
|
||||
navigationController.pushViewController(PremiumIntroScreen(context: component.context, source: .chatsPerFolder))
|
||||
})
|
||||
controller.push(limitController)
|
||||
controller.dismiss()
|
||||
|
||||
return
|
||||
case let .tooManyChannelsInAccount(limit, _):
|
||||
let limitController = PremiumLimitScreen(context: component.context, subject: .channels, count: limit, action: { [weak navigationController] in
|
||||
guard let navigationController else {
|
||||
return
|
||||
}
|
||||
navigationController.pushViewController(PremiumIntroScreen(context: component.context, source: .groupsAndChannels))
|
||||
})
|
||||
controller.push(limitController)
|
||||
controller.dismiss()
|
||||
|
||||
return
|
||||
}
|
||||
let presentationData = component.context.sharedContext.currentPresentationData.with { $0 }
|
||||
|
||||
Reference in New Issue
Block a user