Create space flow (#4957)

* create space flow implementation

# Conflicts:
#	ElementX/Sources/FlowCoordinators/SpacesTabFlowCoordinator.swift

* create space flow fully implemented and working

* updated tests and updated the create room camera button UI

* updated the avatar button in the create room screen, and added power level overrides for spaces

* update power level content overrides to behave just as EW, and removed ask to join when creating a space regardless of the FF

* updated UI tests snapshots

* invite for a public space should always be forced to 50

* pr suggestions + PL override fix

* fix a missed code change
This commit is contained in:
Mauro
2026-01-15 14:52:18 +01:00
committed by GitHub
parent f41424436c
commit 648caa4e82
52 changed files with 446 additions and 116 deletions
@@ -17,13 +17,15 @@ enum CreateRoomScreenErrorType: Error {
}
enum CreateRoomScreenViewModelAction {
case createdRoom(JoinedRoomProxyProtocol)
case createdRoom(JoinedRoomProxyProtocol, SpaceRoomListProxyProtocol?)
case displayMediaPicker
case displayCameraPicker
case dismiss
}
struct CreateRoomScreenViewState: BindableState {
let isSpace: Bool
let shouldShowCancelButton: Bool
var roomName: String
let serverName: String
let isKnockingFeatureEnabled: Bool
@@ -47,7 +49,7 @@ struct CreateRoomScreenViewState: BindableState {
var availableAccessTypes: [CreateRoomAccessType] {
var availableTypes = CreateRoomAccessType.allCases
if !isKnockingFeatureEnabled {
if isSpace || !isKnockingFeatureEnabled {
availableTypes.removeAll { $0 == .askToJoin }
}
return availableTypes
@@ -64,6 +66,7 @@ struct CreateRoomScreenViewStateBindings {
}
enum CreateRoomScreenViewAction {
case dismiss
case createRoom
case displayCameraPicker
case displayMediaPicker