Various Improvements

This commit is contained in:
Ilya Laktyushin
2021-02-10 00:38:38 +04:00
parent 249b684e64
commit b9e68236d0
37 changed files with 5333 additions and 4729 deletions

View File

@@ -7,13 +7,30 @@ import TelegramPresentationData
import ListSectionHeaderNode
import ItemListUI
public enum SectionHeaderAdditionalText {
case none
case generic(String)
case destructive(String)
var text: String? {
switch self {
case .none:
return nil
case let .generic(text), let .destructive(text):
return text
}
}
}
public class SectionHeaderItem: ListViewItem {
let presentationData: ItemListPresentationData
let title: String
let additionalText: SectionHeaderAdditionalText
public init(presentationData: ItemListPresentationData, title: String) {
public init(presentationData: ItemListPresentationData, title: String, additionalText: SectionHeaderAdditionalText = .none) {
self.presentationData = presentationData
self.title = title
self.additionalText = additionalText
}
public func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal<Void, NoError>?, (ListViewItemApply) -> Void)) -> Void) {
@@ -96,10 +113,11 @@ private class SectionHeaderItemNode: ListViewItemNode {
}
} else {
headerNode = ListSectionHeaderNode(theme: item.presentationData.theme)
headerNode.title = item.title
strongSelf.addSubnode(headerNode)
strongSelf.headerNode = headerNode
}
headerNode.title = item.title
headerNode.action = item.additionalText.text
headerNode.frame = CGRect(origin: CGPoint(), size: contentSize)
headerNode.updateLayout(size: contentSize, leftInset: params.leftInset, rightInset: params.rightInset)