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
@@ -199,6 +199,14 @@ struct HomeScreenRoom: Identifiable, Equatable {
let isTombstoned: Bool
var displayedLastMessage: AttributedString? {
// If the room is tombstoned, show a specific message, regardless of any last message.
guard !isTombstoned else {
return AttributedString(L10n.screenRoomlistTombstonedRoomDescription)
}
return lastMessage
}
static func placeholder() -> HomeScreenRoom {
HomeScreenRoom(id: UUID().uuidString,
roomID: nil,
@@ -135,12 +135,8 @@ struct HomeScreenRoomCell: View {
@ViewBuilder
private var lastMessage: some View {
// If the room is tombstoned, show a specific message, regardless of any last message.
if room.isTombstoned {
Text(L10n.screenRoomlistTombstonedRoomDescription)
.lastMessageFormatting()
} else if let lastMessage = room.lastMessage {
Text(lastMessage)
if let displayedLastMessage = room.displayedLastMessage {
Text(displayedLastMessage)
.lastMessageFormatting()
}
}
@@ -331,6 +331,7 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
private func handleRoomInfoUpdate(_ roomInfo: RoomInfoProxy) async {
state.hasSuccessor = roomInfo.successor != nil
let pinnedEventIDs = roomInfo.pinnedEventIDs
// Only update the loading state of the banner
if state.pinnedEventsBannerState.isLoading {
@@ -79,7 +79,7 @@ enum TimelineViewAction {
case hasScrolled(direction: ScrollDirection)
case setOpenURLAction(OpenURLAction)
case seePredecessorTapped
case displayPredecessorRoom
}
enum TimelineComposerAction {
@@ -212,8 +212,10 @@ class TimelineViewModel: TimelineViewModelType, TimelineViewModelProtocol {
actionsSubject.send(.hasScrolled(direction: direction))
case .setOpenURLAction(let action):
state.openURL = action
case .seePredecessorTapped:
guard let predecessorID = roomProxy.predecessorRoom?.roomId else { return }
case .displayPredecessorRoom:
guard let predecessorID = roomProxy.predecessorRoom?.roomId else {
fatalError("Predecessor room should exist if this action is triggered.")
}
actionsSubject.send(.displayRoom(roomID: predecessorID))
}
}
@@ -15,8 +15,9 @@ struct TimelineStartRoomTimelineView: View {
var body: some View {
VStack(spacing: 14) {
if context?.viewState.hasPredecessor == true {
upgrade
upgradeDialogue
}
// We don't display the title for tombstoned DMs
if context?.viewState.isDirectOneToOneRoom != true {
Text(title)
.font(.compound.bodySM)
@@ -28,13 +29,13 @@ struct TimelineStartRoomTimelineView: View {
}
}
private var upgrade: some View {
private var upgradeDialogue: some View {
VStack(spacing: 16) {
Text(L10n.screenRoomTimelineUpgradedRoomMessage)
.font(.compound.bodyMD)
.foregroundColor(.compound.textPrimary)
Button {
context?.send(viewAction: .seePredecessorTapped)
context?.send(viewAction: .displayPredecessorRoom)
} label: {
Text(L10n.screenRoomTimelineUpgradedRoomAction)
.frame(maxWidth: .infinity)