mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 06:55:59 +00:00
use isDM from the SDK to determine if a spaceRoom, a joinedRoom or a notificationItem are from a dm room.
This commit is contained in:
@@ -103,7 +103,7 @@ struct TimelineViewState: BindableState {
|
||||
var typingMembers: [String] = []
|
||||
var showLoading = false
|
||||
var showReadReceipts = false
|
||||
var isDirectOneToOneRoom = false
|
||||
var isDM = false
|
||||
var timelineState: TimelineState // check the doc before changing this
|
||||
|
||||
var ownUserID: String
|
||||
|
||||
@@ -95,7 +95,7 @@ class TimelineViewModel: TimelineViewModelType, TimelineViewModelProtocol {
|
||||
}
|
||||
super.init(initialViewState: TimelineViewState(timelineKind: timelineController.timelineKind,
|
||||
roomID: roomProxy.id,
|
||||
isDirectOneToOneRoom: roomProxy.isDirectOneToOneRoom,
|
||||
isDM: roomProxy.infoPublisher.value.isDM,
|
||||
timelineState: TimelineState(focussedEvent: focussedEventID.map { .init(eventID: $0, appearance: .immediate) }),
|
||||
ownUserID: roomProxy.ownUserID,
|
||||
hideTimelineMedia: hideTimelineMedia,
|
||||
@@ -420,6 +420,7 @@ class TimelineViewModel: TimelineViewModelType, TimelineViewModelProtocol {
|
||||
|
||||
private func updateRoomInfo(_ roomInfo: RoomInfoProxyProtocol) {
|
||||
state.pinnedEventIDs = roomInfo.pinnedEventIDs
|
||||
state.isDM = roomInfo.isDM
|
||||
|
||||
if let powerLevels = roomInfo.powerLevels {
|
||||
state.canCurrentUserSendMessage = powerLevels.canOwnUser(sendMessage: .roomMessage)
|
||||
|
||||
@@ -18,8 +18,8 @@ struct TimelineItemBubbledStylerView<Content: View>: View {
|
||||
let adjustedDeliveryStatus: TimelineItemDeliveryStatus?
|
||||
@ViewBuilder let content: () -> Content
|
||||
|
||||
private var isDirectOneToOneRoom: Bool {
|
||||
context.viewState.isDirectOneToOneRoom
|
||||
private var isDM: Bool {
|
||||
context.viewState.isDM
|
||||
}
|
||||
|
||||
private var isFocussed: Bool {
|
||||
@@ -40,14 +40,14 @@ struct TimelineItemBubbledStylerView<Content: View>: View {
|
||||
private let bubbleHorizontalPadding: CGFloat = 8
|
||||
/// Additional padding applied to outgoing bubbles when the avatar is shown
|
||||
private var bubbleAvatarPadding: CGFloat {
|
||||
guard !timelineItem.isOutgoing, !isDirectOneToOneRoom else { return 0 }
|
||||
guard !timelineItem.isOutgoing, !isDM else { return 0 }
|
||||
return 8
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
ZStack(alignment: .trailingFirstTextBaseline) {
|
||||
VStack(alignment: alignment, spacing: -12) {
|
||||
if !timelineItem.isOutgoing, !isDirectOneToOneRoom {
|
||||
if !timelineItem.isOutgoing, !isDM {
|
||||
header
|
||||
.zIndex(1)
|
||||
}
|
||||
@@ -164,7 +164,7 @@ struct TimelineItemBubbledStylerView<Content: View>: View {
|
||||
canCurrentUserRedactOthers: context.viewState.canCurrentUserRedactOthers,
|
||||
canCurrentUserPin: context.viewState.canCurrentUserPin,
|
||||
pinnedEventIDs: context.viewState.pinnedEventIDs,
|
||||
isDM: context.viewState.isDirectOneToOneRoom,
|
||||
isDM: context.viewState.isDM,
|
||||
isViewSourceEnabled: context.viewState.isViewSourceEnabled,
|
||||
areThreadsEnabled: context.viewState.areThreadsEnabled,
|
||||
timelineKind: context.viewState.timelineKind,
|
||||
@@ -218,7 +218,7 @@ struct TimelineItemBubbledStylerView<Content: View>: View {
|
||||
}
|
||||
|
||||
private var messageBubbleTopPadding: CGFloat {
|
||||
guard timelineItem.isOutgoing || isDirectOneToOneRoom else { return 0 }
|
||||
guard timelineItem.isOutgoing || isDM else { return 0 }
|
||||
return timelineGroupStyle == .single || timelineGroupStyle == .first ? 8 : 0
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ struct TimelineStartRoomTimelineView: View {
|
||||
upgradeDialogue
|
||||
}
|
||||
// We don't display the title for tombstoned DMs
|
||||
if context?.viewState.isDirectOneToOneRoom != true {
|
||||
if context?.viewState.isDM != true {
|
||||
Text(title)
|
||||
.font(.compound.bodySM)
|
||||
.foregroundColor(.compound.textSecondary)
|
||||
|
||||
@@ -34,7 +34,7 @@ struct TimelineView: View {
|
||||
canCurrentUserRedactOthers: timelineContext.viewState.canCurrentUserRedactOthers,
|
||||
canCurrentUserPin: timelineContext.viewState.canCurrentUserPin,
|
||||
pinnedEventIDs: timelineContext.viewState.pinnedEventIDs,
|
||||
isDM: timelineContext.viewState.isDirectOneToOneRoom,
|
||||
isDM: timelineContext.viewState.isDM,
|
||||
isViewSourceEnabled: timelineContext.viewState.isViewSourceEnabled,
|
||||
areThreadsEnabled: timelineContext.viewState.areThreadsEnabled,
|
||||
timelineKind: timelineContext.viewState.timelineKind,
|
||||
|
||||
Reference in New Issue
Block a user