pr suggestions

This commit is contained in:
Mauro Romito
2025-06-05 16:53:10 +02:00
committed by Mauro
parent 248e88e718
commit 26a7d5ac82
13 changed files with 41 additions and 23 deletions
@@ -34,7 +34,14 @@ class JoinedRoomProxy: JoinedRoomProxyProtocol {
var ownUserID: String { room.ownUserId() }
lazy var predecessorRoom: PredecessorRoom? = room.predecessorRoom()
// The predecessor is set on room creation and never changes, so we lazily store it.
lazy var predecessorRoom = room.predecessorRoom()
// The successor may change over time, so we access it dynamically.
// It's suggested to observe it through the `infoPublisher`
var successorRoom: SuccessorRoom? {
room.successorRoom()
}
let timeline: TimelineProxyProtocol
@@ -78,6 +78,8 @@ protocol JoinedRoomProxyProtocol: RoomProxyProtocol {
var predecessorRoom: PredecessorRoom? { get }
var successorRoom: SuccessorRoom? { get }
func subscribeForUpdates() async
func subscribeToRoomInfoUpdates()
@@ -55,7 +55,6 @@ struct RoomSummary {
let isMarkedUnread: Bool
let isFavourite: Bool
let isTombstoned: Bool
var hasUnreadMessages: Bool { unreadMessagesCount > 0 }
@@ -480,11 +480,12 @@ class TimelineController: TimelineControllerProtocol {
case .readMarker:
return ReadMarkerRoomTimelineItem(id: .virtual(uniqueID: uniqueID))
case .timelineStart:
if hasPredecessor {
// We always display the timeline start item, if there is a predecessor room.
guard !hasPredecessor else {
return TimelineStartRoomTimelineItem(name: roomDisplayName)
} else {
return isDM ? nil : TimelineStartRoomTimelineItem(name: roomDisplayName)
}
// If not we only display the timeline start item if this is not a DM.
return isDM ? nil : TimelineStartRoomTimelineItem(name: roomDisplayName)
}
case .unknown:
return nil
@@ -8,6 +8,7 @@
import Foundation
struct TimelineStartRoomTimelineItem: DecorationTimelineItemProtocol, Equatable {
// Using a static identifier makes the animations consistent in SwiftUI
let id: TimelineItemIdentifier = .virtual(uniqueID: .init("TimelineStart"))
let name: String?
}