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)
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
}