mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 06:02:10 +00:00
Remove the protocol for SpaceServiceRoom given its a struct type. (#5000)
* Remove the protocol for SpaceServiceRoom given its a struct type. * Fix a few missed mocks in the unit tests.
This commit is contained in:
@@ -22,14 +22,14 @@ struct SpaceScreenCoordinatorParameters {
|
||||
|
||||
enum SpaceScreenCoordinatorAction {
|
||||
case selectSpace(SpaceRoomListProxyProtocol)
|
||||
case selectUnjoinedSpace(SpaceServiceRoomProtocol)
|
||||
case selectUnjoinedSpace(SpaceServiceRoom)
|
||||
case selectRoom(roomID: String)
|
||||
case leftSpace
|
||||
case displayMembers(roomProxy: JoinedRoomProxyProtocol)
|
||||
case displaySpaceSettings(roomProxy: JoinedRoomProxyProtocol)
|
||||
case displayRolesAndPermissions(roomProxy: JoinedRoomProxyProtocol)
|
||||
case addExistingChildren
|
||||
case displayCreateChildRoomFlow(space: SpaceServiceRoomProtocol)
|
||||
case displayCreateChildRoomFlow(space: SpaceServiceRoom)
|
||||
}
|
||||
|
||||
final class SpaceScreenCoordinator: CoordinatorProtocol {
|
||||
|
||||
@@ -10,24 +10,24 @@ import SwiftUI
|
||||
|
||||
enum SpaceScreenViewModelAction {
|
||||
case selectSpace(SpaceRoomListProxyProtocol)
|
||||
case selectUnjoinedSpace(SpaceServiceRoomProtocol)
|
||||
case selectUnjoinedSpace(SpaceServiceRoom)
|
||||
case selectRoom(roomID: String)
|
||||
case leftSpace
|
||||
case presentRolesAndPermissions(roomProxy: JoinedRoomProxyProtocol)
|
||||
case displayMembers(roomProxy: JoinedRoomProxyProtocol)
|
||||
case displaySpaceSettings(roomProxy: JoinedRoomProxyProtocol)
|
||||
case addExistingChildren
|
||||
case displayCreateChildRoomFlow(space: SpaceServiceRoomProtocol)
|
||||
case displayCreateChildRoomFlow(space: SpaceServiceRoom)
|
||||
}
|
||||
|
||||
struct SpaceScreenViewState: BindableState {
|
||||
var space: SpaceServiceRoomProtocol
|
||||
var space: SpaceServiceRoom
|
||||
|
||||
var permalink: URL?
|
||||
var roomProxy: JoinedRoomProxyProtocol?
|
||||
|
||||
var paginationState: PaginationState = .idle
|
||||
var rooms: [SpaceServiceRoomProtocol]
|
||||
var rooms: [SpaceServiceRoom]
|
||||
var selectedSpaceRoomID: String?
|
||||
var joiningRoomIDs: Set<String> = []
|
||||
|
||||
@@ -47,7 +47,7 @@ struct SpaceScreenViewState: BindableState {
|
||||
rooms.isEmpty && paginationState == .endReached && canEditChildren
|
||||
}
|
||||
|
||||
var visibleRooms: [SpaceServiceRoomProtocol] {
|
||||
var visibleRooms: [SpaceServiceRoom] {
|
||||
if editMode == .inactive {
|
||||
rooms
|
||||
} else {
|
||||
|
||||
@@ -182,7 +182,7 @@ class SpaceScreenViewModel: SpaceScreenViewModelType, SpaceScreenViewModelProtoc
|
||||
}
|
||||
}
|
||||
|
||||
private func join(_ spaceServiceRoom: SpaceServiceRoomProtocol) async {
|
||||
private func join(_ spaceServiceRoom: SpaceServiceRoom) async {
|
||||
state.joiningRoomIDs.insert(spaceServiceRoom.id)
|
||||
defer { state.joiningRoomIDs.remove(spaceServiceRoom.id) }
|
||||
|
||||
@@ -194,7 +194,7 @@ class SpaceScreenViewModel: SpaceScreenViewModelType, SpaceScreenViewModelProtoc
|
||||
// We don't want to show the space room after joining it this way 🤷♂️
|
||||
}
|
||||
|
||||
private func selectSpace(_ spaceServiceRoom: SpaceServiceRoomProtocol) async {
|
||||
private func selectSpace(_ spaceServiceRoom: SpaceServiceRoom) async {
|
||||
switch await spaceServiceProxy.spaceRoomList(spaceID: spaceServiceRoom.id) {
|
||||
case .success(let spaceRoomListProxy):
|
||||
actionsSubject.send(.selectSpace(spaceRoomListProxy))
|
||||
|
||||
@@ -210,15 +210,15 @@ struct SpaceScreen_Previews: PreviewProvider, TestablePreview {
|
||||
appSettings.spaceSettingsEnabled = true
|
||||
appSettings.createSpaceEnabled = true
|
||||
|
||||
let spaceServiceRoom = SpaceServiceRoomMock(.init(id: "!eng-space:matrix.org",
|
||||
name: "Engineering Team",
|
||||
isSpace: true,
|
||||
childrenCount: 30,
|
||||
joinedMembersCount: 76,
|
||||
heroes: [.mockDan, .mockBob, .mockCharlie, .mockVerbose],
|
||||
topic: "Description of the space goes right here. Lorem ipsum dolor sit amet consectetur. Leo viverra morbi habitant in.",
|
||||
canonicalAlias: "#engineering-team:element.io",
|
||||
joinRule: .knockRestricted(rules: [.roomMembership(roomId: "")])))
|
||||
let spaceServiceRoom = SpaceServiceRoom.mock(id: "!eng-space:matrix.org",
|
||||
name: "Engineering Team",
|
||||
isSpace: true,
|
||||
childrenCount: 30,
|
||||
joinedMembersCount: 76,
|
||||
heroes: [.mockDan, .mockBob, .mockCharlie, .mockVerbose],
|
||||
topic: "Description of the space goes right here. Lorem ipsum dolor sit amet consectetur. Leo viverra morbi habitant in.",
|
||||
canonicalAlias: "#engineering-team:element.io",
|
||||
joinRule: .knockRestricted(rules: [.roomMembership(roomId: "")]))
|
||||
let spaceRoomListProxy = SpaceRoomListProxyMock(.init(spaceServiceRoom: spaceServiceRoom,
|
||||
initialSpaceRooms: isNewSpace ? [] : .mockSpaceList))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user