mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 12:07:55 +00:00
pr suggestions
This commit is contained in:
@@ -277,7 +277,7 @@ class SpaceFlowCoordinator: FlowCoordinatorProtocol {
|
||||
stateMachine.tryEvent(.leftSpace)
|
||||
case .displayMembers(let roomProxy):
|
||||
stateMachine.tryEvent(.startMembersFlow, userInfo: roomProxy)
|
||||
case .displaySpaceSettings(roomProxy: let roomProxy):
|
||||
case .displaySpaceSettings(let roomProxy):
|
||||
stateMachine.tryEvent(.startSettingsFlow, userInfo: roomProxy)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +59,12 @@ final class SpaceSettingsFlowCoordinator: FlowCoordinatorProtocol {
|
||||
}
|
||||
|
||||
func clearRoute(animated: Bool) {
|
||||
// Not implemented yet
|
||||
switch stateMachine.state {
|
||||
case .initial:
|
||||
break
|
||||
case .spaceSettings:
|
||||
navigationStackCoordinator.pop(animated: animated) // SpaceSettingsScreen
|
||||
}
|
||||
}
|
||||
|
||||
private func configureStateMachine() {
|
||||
|
||||
@@ -44,7 +44,7 @@ enum SpaceScreenViewAction {
|
||||
case selectAllLeaveRoomDetails
|
||||
case toggleLeaveSpaceRoomDetails(id: String)
|
||||
case confirmLeaveSpace
|
||||
case spaceSettings
|
||||
case spaceSettings(roomProxy: JoinedRoomProxyProtocol)
|
||||
case rolesAndPermissions
|
||||
case displayMembers(roomProxy: JoinedRoomProxyProtocol)
|
||||
}
|
||||
|
||||
@@ -66,6 +66,10 @@ class SpaceScreenViewModel: SpaceScreenViewModelType, SpaceScreenViewModelProtoc
|
||||
}
|
||||
.store(in: &cancellables)
|
||||
|
||||
selectedSpaceRoomPublisher
|
||||
.weakAssign(to: \.state.selectedSpaceRoomID, on: self)
|
||||
.store(in: &cancellables)
|
||||
|
||||
Task {
|
||||
if case let .joined(roomProxy) = await userSession.clientProxy.roomForIdentifier(spaceRoomListProxy.id) {
|
||||
// Required to listen for membership updates in the members flow
|
||||
@@ -124,10 +128,7 @@ class SpaceScreenViewModel: SpaceScreenViewModelType, SpaceScreenViewModelProtoc
|
||||
Task { await confirmLeaveSpace() }
|
||||
case .displayMembers(let roomProxy):
|
||||
actionsSubject.send(.displayMembers(roomProxy: roomProxy))
|
||||
case .spaceSettings:
|
||||
guard let roomProxy = state.roomProxy else {
|
||||
fatalError("Always available when the space settings button is tapped.")
|
||||
}
|
||||
case .spaceSettings(let roomProxy):
|
||||
actionsSubject.send(.displaySpaceSettings(roomProxy: roomProxy))
|
||||
case .rolesAndPermissions:
|
||||
break // Not implemented yet
|
||||
|
||||
@@ -74,8 +74,9 @@ struct SpaceScreen: View {
|
||||
}
|
||||
}
|
||||
|
||||
if context.viewState.isSpaceManagementEnabled {
|
||||
Button { context.send(viewAction: .spaceSettings) } label: {
|
||||
if context.viewState.isSpaceManagementEnabled,
|
||||
let roomProxy = context.viewState.roomProxy {
|
||||
Button { context.send(viewAction: .spaceSettings(roomProxy: roomProxy)) } label: {
|
||||
Label(L10n.commonSettings, icon: \.settings)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,8 +55,7 @@ struct SpaceSettingsScreen: View {
|
||||
.foregroundStyle(.compound.textSecondary)
|
||||
}
|
||||
}
|
||||
|
||||
Spacer()
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
|
||||
ListRowAccessory.navigationLink
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user