mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 10:33:45 +00:00
Use our own JoinRule type which doesn't include the reserved .private case. (#5056)
* Stop using Rust's JoinRule.private in mocks. It isn't used anywhere else (see MSC4413 for more context). * Use our own JoinRule (and AllowRule) types. * Update ElementX/Sources/Services/Room/JoinRule.swift Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com> --------- Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>
This commit is contained in:
@@ -379,7 +379,7 @@ struct CreateRoom_Previews: PreviewProvider, TestablePreview {
|
||||
|
||||
static let selectedSpaceViewModel = makeViewModel(selectionMode: .preSelected(SpaceServiceRoom.mock(name: "Awesome Space",
|
||||
isSpace: true,
|
||||
joinRule: .private)))
|
||||
joinRule: .invite)))
|
||||
|
||||
static let selectedSpaceWithListViewModel = {
|
||||
let viewModel = makeViewModel()
|
||||
@@ -391,7 +391,7 @@ struct CreateRoom_Previews: PreviewProvider, TestablePreview {
|
||||
let viewModel = makeViewModel(isKnockingEnabled: true,
|
||||
selectionMode: .preSelected(SpaceServiceRoom.mock(name: "Awesome Space",
|
||||
isSpace: true,
|
||||
joinRule: .private)))
|
||||
joinRule: .invite)))
|
||||
viewModel.context.selectedAccessType = .askToJoinWithSpaceMembers
|
||||
return viewModel
|
||||
}()
|
||||
|
||||
@@ -235,7 +235,7 @@ class JoinRoomScreenViewModel: JoinRoomScreenViewModelType, JoinRoomScreenViewMo
|
||||
state.mode = .banned(sender: nil, reason: nil)
|
||||
default:
|
||||
switch spaceServiceRoom.joinRule {
|
||||
case .private, .invite:
|
||||
case .invite:
|
||||
state.mode = .inviteRequired
|
||||
case .knock, .knockRestricted:
|
||||
state.mode = appSettings.knockingEnabled ? .knockable : .joinable
|
||||
@@ -258,7 +258,7 @@ class JoinRoomScreenViewModel: JoinRoomScreenViewModelType, JoinRoomScreenViewMo
|
||||
reason: membershipDetails?.ownRoomMember.membershipChangeReason)
|
||||
default:
|
||||
switch roomPreview.info.joinRule {
|
||||
case .private, .invite:
|
||||
case .invite:
|
||||
state.mode = .inviteRequired
|
||||
case .knock, .knockRestricted:
|
||||
state.mode = appSettings.knockingEnabled ? .knockable : .joinable
|
||||
|
||||
+2
-2
@@ -350,9 +350,9 @@ private extension SecurityAndPrivacyRoomAccessType {
|
||||
case .anyone:
|
||||
.public
|
||||
case .spaceMembers(let spaceIDs):
|
||||
.restricted(rules: spaceIDs.map { .roomMembership(roomId: $0) })
|
||||
.restricted(rules: spaceIDs.map { .roomMembership(roomID: $0) })
|
||||
case .askToJoinWithSpaceMembers(let spaceIDs):
|
||||
.knockRestricted(rules: spaceIDs.map { .roomMembership(roomId: $0) })
|
||||
.knockRestricted(rules: spaceIDs.map { .roomMembership(roomID: $0) })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -269,7 +269,7 @@ struct SecurityAndPrivacyScreen_Previews: PreviewProvider, TestablePreview {
|
||||
return SecurityAndPrivacyScreenViewModel(roomProxy: JoinedRoomProxyMock(.init(isEncrypted: false,
|
||||
canonicalAlias: "#room:matrix.org",
|
||||
members: .allMembersAsCreator,
|
||||
joinRule: .restricted(rules: [.roomMembership(roomId: space.id)]),
|
||||
joinRule: .restricted(rules: [.roomMembership(roomID: space.id)]),
|
||||
isVisibleInPublicDirectory: true)),
|
||||
clientProxy: ClientProxyMock(.init(userIDServerName: "matrix.org",
|
||||
spaceServiceConfiguration: .init(joinedParentSpaces: [space]))),
|
||||
@@ -286,7 +286,7 @@ struct SecurityAndPrivacyScreen_Previews: PreviewProvider, TestablePreview {
|
||||
return SecurityAndPrivacyScreenViewModel(roomProxy: JoinedRoomProxyMock(.init(isEncrypted: false,
|
||||
canonicalAlias: "#room:matrix.org",
|
||||
members: .allMembersAsCreator,
|
||||
joinRule: .restricted(rules: spaces.map { .roomMembership(roomId: $0.id) }),
|
||||
joinRule: .restricted(rules: spaces.map { .roomMembership(roomID: $0.id) }),
|
||||
isVisibleInPublicDirectory: true)),
|
||||
clientProxy: ClientProxyMock(.init(userIDServerName: "matrix.org",
|
||||
spaceServiceConfiguration: .init(joinedParentSpaces: spaces))),
|
||||
@@ -319,7 +319,7 @@ struct SecurityAndPrivacyScreen_Previews: PreviewProvider, TestablePreview {
|
||||
return SecurityAndPrivacyScreenViewModel(roomProxy: JoinedRoomProxyMock(.init(isEncrypted: false,
|
||||
canonicalAlias: "#room:matrix.org",
|
||||
members: .allMembersAsCreator,
|
||||
joinRule: .knockRestricted(rules: [.roomMembership(roomId: space.id)]),
|
||||
joinRule: .knockRestricted(rules: [.roomMembership(roomID: space.id)]),
|
||||
isVisibleInPublicDirectory: true)),
|
||||
clientProxy: ClientProxyMock(.init(userIDServerName: "matrix.org",
|
||||
spaceServiceConfiguration: .init(joinedParentSpaces: [space]))),
|
||||
@@ -337,7 +337,7 @@ struct SecurityAndPrivacyScreen_Previews: PreviewProvider, TestablePreview {
|
||||
return SecurityAndPrivacyScreenViewModel(roomProxy: JoinedRoomProxyMock(.init(isEncrypted: false,
|
||||
canonicalAlias: "#room:matrix.org",
|
||||
members: .allMembersAsCreator,
|
||||
joinRule: .knockRestricted(rules: spaces.map { .roomMembership(roomId: $0.id) }),
|
||||
joinRule: .knockRestricted(rules: spaces.map { .roomMembership(roomID: $0.id) }),
|
||||
isVisibleInPublicDirectory: true)),
|
||||
clientProxy: ClientProxyMock(.init(userIDServerName: "matrix.org",
|
||||
spaceServiceConfiguration: .init(joinedParentSpaces: spaces))),
|
||||
|
||||
@@ -141,7 +141,7 @@ struct SpaceHeaderView_Previews: PreviewProvider, TestablePreview {
|
||||
"Interdum mauris ultrices tincidunt proin morbi erat aenean risus nibh.",
|
||||
"Diam amet sit fermentum vulputate faucibus."].joined(separator: " "),
|
||||
canonicalAlias: "#subspace:matrix.org",
|
||||
joinRule: .knockRestricted(rules: [.roomMembership(roomId: "")]))
|
||||
joinRule: .knockRestricted(rules: [.roomMembership(roomID: "")]))
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,7 +156,7 @@ struct LeaveSpaceView_Previews: PreviewProvider, TestablePreview {
|
||||
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.",
|
||||
joinRule: .knockRestricted(rules: [.roomMembership(roomId: "")]))
|
||||
joinRule: .knockRestricted(rules: [.roomMembership(roomID: "")]))
|
||||
|
||||
static func makeViewModel(mode: LeaveSpaceHandleProxy.Mode) -> LeaveSpaceViewModel {
|
||||
let rooms: [LeaveSpaceRoom] = switch mode {
|
||||
|
||||
@@ -220,7 +220,7 @@ struct SpaceScreen_Previews: PreviewProvider, TestablePreview {
|
||||
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: "")]))
|
||||
joinRule: .knockRestricted(rules: [.roomMembership(roomID: "")]))
|
||||
let spaceRoomListProxy = SpaceRoomListProxyMock(.init(spaceServiceRoom: spaceServiceRoom,
|
||||
initialSpaceRooms: isNewSpace ? [] : .mockSpaceList))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user