Use the space room name computed by the SDK. (#4589)

This commit is contained in:
Doug
2025-10-07 14:33:37 +01:00
committed by GitHub
parent c77239c464
commit cf19e30429
9 changed files with 18 additions and 17 deletions
@@ -16001,7 +16001,12 @@ class SpaceRoomProxyMock: SpaceRoomProxyProtocol, @unchecked Sendable {
set(value) { underlyingId = value } set(value) { underlyingId = value }
} }
var underlyingId: String! var underlyingId: String!
var name: String? var name: String {
get { return underlyingName }
set(value) { underlyingName = value }
}
var underlyingName: String!
var rawName: String?
var avatarURL: URL? var avatarURL: URL?
var isSpace: Bool { var isSpace: Bool {
get { return underlyingIsSpace } get { return underlyingIsSpace }
@@ -23,7 +23,7 @@ extension LeaveSpaceHandleSDKMock {
extension [LeaveSpaceRoom] { extension [LeaveSpaceRoom] {
static func mockLastSpaceAdmin(spaceRoomProxy: SpaceRoomProxyProtocol) -> [LeaveSpaceRoom] { static func mockLastSpaceAdmin(spaceRoomProxy: SpaceRoomProxyProtocol) -> [LeaveSpaceRoom] {
mockRooms + [LeaveSpaceRoom(spaceRoom: SpaceRoom(id: spaceRoomProxy.id, mockRooms + [LeaveSpaceRoom(spaceRoom: SpaceRoom(id: spaceRoomProxy.id,
name: spaceRoomProxy.computedName, name: spaceRoomProxy.name,
avatarURL: spaceRoomProxy.avatarURL, avatarURL: spaceRoomProxy.avatarURL,
isSpace: true, isSpace: true,
memberCount: UInt64(spaceRoomProxy.joinedMembersCount), memberCount: UInt64(spaceRoomProxy.joinedMembersCount),
@@ -12,6 +12,7 @@ extension SpaceRoomProxyMock {
struct Configuration { struct Configuration {
var id: String = UUID().uuidString var id: String = UUID().uuidString
var name: String? var name: String?
var rawName: String?
var avatarURL: URL? var avatarURL: URL?
var isSpace: Bool var isSpace: Bool
@@ -33,7 +34,8 @@ extension SpaceRoomProxyMock {
self.init() self.init()
id = configuration.id id = configuration.id
name = configuration.name name = configuration.name ?? configuration.id
rawName = configuration.rawName
avatarURL = configuration.avatarURL avatarURL = configuration.avatarURL
isSpace = configuration.isSpace isSpace = configuration.isSpace
isDirect = configuration.isDirect isDirect = configuration.isDirect
@@ -200,7 +200,7 @@ class JoinRoomScreenViewModel: JoinRoomScreenViewModelType, JoinRoomScreenViewMo
} }
private func updateSpaceRoomDetails(spaceRoomProxy: SpaceRoomProxyProtocol, inviter: RoomInviterDetails?) async { private func updateSpaceRoomDetails(spaceRoomProxy: SpaceRoomProxyProtocol, inviter: RoomInviterDetails?) async {
state.roomDetails = JoinRoomScreenRoomDetails(name: spaceRoomProxy.computedName, state.roomDetails = JoinRoomScreenRoomDetails(name: spaceRoomProxy.name,
topic: spaceRoomProxy.topic, topic: spaceRoomProxy.topic,
canonicalAlias: spaceRoomProxy.canonicalAlias, canonicalAlias: spaceRoomProxy.canonicalAlias,
avatar: spaceRoomProxy.avatar, avatar: spaceRoomProxy.avatar,
@@ -22,7 +22,7 @@ struct SpaceHeaderView: View {
.accessibilityHidden(true) .accessibilityHidden(true)
VStack(spacing: 8) { VStack(spacing: 8) {
Text(spaceRoomProxy.computedName) Text(spaceRoomProxy.name)
.font(.compound.headingLGBold) .font(.compound.headingLGBold)
.foregroundStyle(.compound.textPrimary) .foregroundStyle(.compound.textPrimary)
.multilineTextAlignment(.center) .multilineTextAlignment(.center)
@@ -90,7 +90,7 @@ struct SpaceRoomCell: View {
private var content: some View { private var content: some View {
HStack(spacing: 16) { HStack(spacing: 16) {
VStack(alignment: .leading, spacing: 2) { VStack(alignment: .leading, spacing: 2) {
Text(spaceRoomProxy.computedName) Text(spaceRoomProxy.name)
.font(.compound.bodyLGSemibold) .font(.compound.bodyLGSemibold)
.foregroundColor(.compound.textPrimary) .foregroundColor(.compound.textPrimary)
.lineLimit(1) .lineLimit(1)
@@ -41,7 +41,7 @@ struct LeaveSpaceRoomDetailsCell: View {
} }
VStack(alignment: .leading, spacing: 0) { VStack(alignment: .leading, spacing: 0) {
Text(room.spaceRoomProxy.computedName) Text(room.spaceRoomProxy.name)
.font(.compound.bodyLGSemibold) .font(.compound.bodyLGSemibold)
.foregroundStyle(.compound.textPrimary) .foregroundStyle(.compound.textPrimary)
.lineLimit(1) .lineLimit(1)
@@ -16,7 +16,8 @@ class SpaceRoomProxy: SpaceRoomProxyProtocol {
} }
lazy var id = spaceRoom.roomId lazy var id = spaceRoom.roomId
var name: String? { spaceRoom.displayName } var name: String { spaceRoom.displayName }
var rawName: String? { spaceRoom.rawName }
var avatarURL: URL? { spaceRoom.avatarUrl.flatMap(URL.init) } var avatarURL: URL? { spaceRoom.avatarUrl.flatMap(URL.init) }
var isSpace: Bool { spaceRoom.roomType == .space } var isSpace: Bool { spaceRoom.roomType == .space }
@@ -18,7 +18,8 @@ enum SpaceRoomProxyVisibility: Equatable {
// sourcery: AutoMockable // sourcery: AutoMockable
protocol SpaceRoomProxyProtocol { protocol SpaceRoomProxyProtocol {
var id: String { get } var id: String { get }
var name: String? { get } var name: String { get }
var rawName: String? { get }
var avatarURL: URL? { get } var avatarURL: URL? { get }
var isSpace: Bool { get } var isSpace: Bool { get }
@@ -48,14 +49,6 @@ extension SpaceRoomProxyProtocol {
} }
} }
var computedName: String {
if !isSpace, isDirect == true, name == nil, heroes.count == 1, let dmRecipient = heroes.first {
dmRecipient.displayName ?? dmRecipient.id
} else {
name ?? canonicalAlias ?? id
}
}
var visibility: SpaceRoomProxyVisibility? { var visibility: SpaceRoomProxyVisibility? {
switch joinRule { switch joinRule {
case .public: case .public: