[WIP] Monoforums

This commit is contained in:
Isaac
2025-05-14 00:50:46 +08:00
parent 9e18743b1b
commit f90402102b
36 changed files with 1191 additions and 340 deletions

View File

@@ -716,7 +716,7 @@ open class ChatMessageItemView: ListViewItemNode, ChatMessageItemNodeProtocol {
}
}
open func asyncLayout() -> (_ item: ChatMessageItem, _ params: ListViewItemLayoutParams, _ mergedTop: ChatMessageMerge, _ mergedBottom: ChatMessageMerge, _ dateHeaderAtBottom: Bool) -> (ListViewItemNodeLayout, (ListViewItemUpdateAnimation, ListViewItemApply, Bool) -> Void) {
open func asyncLayout() -> (_ item: ChatMessageItem, _ params: ListViewItemLayoutParams, _ mergedTop: ChatMessageMerge, _ mergedBottom: ChatMessageMerge, _ dateHeaderAtBottom: ChatMessageHeaderSpec) -> (ListViewItemNodeLayout, (ListViewItemUpdateAnimation, ListViewItemApply, Bool) -> Void) {
return { _, _, _, _, _ in
return (ListViewItemNodeLayout(contentSize: CGSize(width: 32.0, height: 32.0), insets: UIEdgeInsets()), { _, _, _ in
@@ -902,6 +902,8 @@ open class ChatMessageItemView: ListViewItemNode, ChatMessageItemNodeProtocol {
private var attachedAvatarNodeOffset: CGFloat = 0.0
private var attachedAvatarNodeIsHidden: Bool = false
private var attachedDateHeader: (hasDate: Bool, hasPeer: Bool) = (false, false)
override open func attachedHeaderNodesUpdated() {
if !self.attachedAvatarNodeOffset.isZero {
@@ -919,6 +921,12 @@ open class ChatMessageItemView: ListViewItemNode, ChatMessageItemNodeProtocol {
headerNode.updateAvatarIsHidden(isHidden: self.attachedAvatarNodeIsHidden, transition: .immediate)
}
}
for headerNode in self.attachedHeaderNodes {
if let headerNode = headerNode as? ChatMessageDateHeaderNode {
headerNode.updateItem(hasDate: self.attachedDateHeader.hasDate, hasPeer: self.attachedDateHeader.hasPeer)
}
}
}
open func updateAttachedAvatarNodeOffset(offset: CGFloat, transition: ContainedViewLayoutTransition) {
@@ -939,6 +947,15 @@ open class ChatMessageItemView: ListViewItemNode, ChatMessageItemNodeProtocol {
}
}
open func updateAttachedDateHeader(hasDate: Bool, hasPeer: Bool) {
self.attachedDateHeader = (hasDate, hasPeer)
for headerNode in self.attachedHeaderNodes {
if let headerNode = headerNode as? ChatMessageDateHeaderNode {
headerNode.updateItem(hasDate: hasDate, hasPeer: hasPeer)
}
}
}
open func unreadMessageRangeUpdated() {
}