pr suggestions

This commit is contained in:
Mauro Romito
2025-10-30 13:29:27 +01:00
committed by Mauro
parent b4f3e0c860
commit 401ff49882
6 changed files with 17 additions and 11 deletions
@@ -277,7 +277,7 @@ class SpaceFlowCoordinator: FlowCoordinatorProtocol {
stateMachine.tryEvent(.leftSpace) stateMachine.tryEvent(.leftSpace)
case .displayMembers(let roomProxy): case .displayMembers(let roomProxy):
stateMachine.tryEvent(.startMembersFlow, userInfo: roomProxy) stateMachine.tryEvent(.startMembersFlow, userInfo: roomProxy)
case .displaySpaceSettings(roomProxy: let roomProxy): case .displaySpaceSettings(let roomProxy):
stateMachine.tryEvent(.startSettingsFlow, userInfo: roomProxy) stateMachine.tryEvent(.startSettingsFlow, userInfo: roomProxy)
} }
} }
@@ -59,7 +59,12 @@ final class SpaceSettingsFlowCoordinator: FlowCoordinatorProtocol {
} }
func clearRoute(animated: Bool) { func clearRoute(animated: Bool) {
// Not implemented yet switch stateMachine.state {
case .initial:
break
case .spaceSettings:
navigationStackCoordinator.pop(animated: animated) // SpaceSettingsScreen
}
} }
private func configureStateMachine() { private func configureStateMachine() {
@@ -44,7 +44,7 @@ enum SpaceScreenViewAction {
case selectAllLeaveRoomDetails case selectAllLeaveRoomDetails
case toggleLeaveSpaceRoomDetails(id: String) case toggleLeaveSpaceRoomDetails(id: String)
case confirmLeaveSpace case confirmLeaveSpace
case spaceSettings case spaceSettings(roomProxy: JoinedRoomProxyProtocol)
case rolesAndPermissions case rolesAndPermissions
case displayMembers(roomProxy: JoinedRoomProxyProtocol) case displayMembers(roomProxy: JoinedRoomProxyProtocol)
} }
@@ -66,6 +66,10 @@ class SpaceScreenViewModel: SpaceScreenViewModelType, SpaceScreenViewModelProtoc
} }
.store(in: &cancellables) .store(in: &cancellables)
selectedSpaceRoomPublisher
.weakAssign(to: \.state.selectedSpaceRoomID, on: self)
.store(in: &cancellables)
Task { Task {
if case let .joined(roomProxy) = await userSession.clientProxy.roomForIdentifier(spaceRoomListProxy.id) { if case let .joined(roomProxy) = await userSession.clientProxy.roomForIdentifier(spaceRoomListProxy.id) {
// Required to listen for membership updates in the members flow // Required to listen for membership updates in the members flow
@@ -124,10 +128,7 @@ class SpaceScreenViewModel: SpaceScreenViewModelType, SpaceScreenViewModelProtoc
Task { await confirmLeaveSpace() } Task { await confirmLeaveSpace() }
case .displayMembers(let roomProxy): case .displayMembers(let roomProxy):
actionsSubject.send(.displayMembers(roomProxy: roomProxy)) actionsSubject.send(.displayMembers(roomProxy: roomProxy))
case .spaceSettings: case .spaceSettings(let roomProxy):
guard let roomProxy = state.roomProxy else {
fatalError("Always available when the space settings button is tapped.")
}
actionsSubject.send(.displaySpaceSettings(roomProxy: roomProxy)) actionsSubject.send(.displaySpaceSettings(roomProxy: roomProxy))
case .rolesAndPermissions: case .rolesAndPermissions:
break // Not implemented yet break // Not implemented yet
@@ -74,8 +74,9 @@ struct SpaceScreen: View {
} }
} }
if context.viewState.isSpaceManagementEnabled { if context.viewState.isSpaceManagementEnabled,
Button { context.send(viewAction: .spaceSettings) } label: { let roomProxy = context.viewState.roomProxy {
Button { context.send(viewAction: .spaceSettings(roomProxy: roomProxy)) } label: {
Label(L10n.commonSettings, icon: \.settings) Label(L10n.commonSettings, icon: \.settings)
} }
} }
@@ -55,8 +55,7 @@ struct SpaceSettingsScreen: View {
.foregroundStyle(.compound.textSecondary) .foregroundStyle(.compound.textSecondary)
} }
} }
.frame(maxWidth: .infinity, alignment: .leading)
Spacer()
ListRowAccessory.navigationLink ListRowAccessory.navigationLink
} }