mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 19:44:05 +00:00
Add hooks for room creation and privacy & security settings screen. (#6270)
Add hooks for the create room and security and privacy screens.
This commit is contained in:
@@ -17,6 +17,7 @@ struct CreateRoomScreenCoordinatorParameters {
|
||||
let userIndicatorController: UserIndicatorControllerProtocol
|
||||
let userSettings: UserSettings
|
||||
let analytics: AnalyticsServiceProtocol
|
||||
let appHooks: AppHooks
|
||||
}
|
||||
|
||||
enum CreateRoomScreenCoordinatorAction {
|
||||
@@ -41,7 +42,8 @@ final class CreateRoomScreenCoordinator: CoordinatorProtocol {
|
||||
userSession: parameters.userSession,
|
||||
analytics: parameters.analytics,
|
||||
userIndicatorController: parameters.userIndicatorController,
|
||||
userSettings: parameters.userSettings)
|
||||
userSettings: parameters.userSettings,
|
||||
appHooks: parameters.appHooks)
|
||||
}
|
||||
|
||||
func start() {
|
||||
|
||||
@@ -31,6 +31,7 @@ struct CreateRoomScreenViewState: BindableState {
|
||||
var roomName: String
|
||||
let serverName: String
|
||||
let isKnockingFeatureEnabled: Bool
|
||||
var isPublicAccessAllowed = true
|
||||
let canSelectSpace: Bool
|
||||
var aliasLocalPart: String
|
||||
var editableSpaces: [SpaceServiceRoom] = []
|
||||
@@ -69,6 +70,11 @@ struct CreateRoomScreenViewState: BindableState {
|
||||
}
|
||||
}
|
||||
availableAccessTypes.append(.private)
|
||||
|
||||
if !isPublicAccessAllowed {
|
||||
availableAccessTypes.removeAll { $0 == .public }
|
||||
}
|
||||
|
||||
return availableAccessTypes
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,8 @@ class CreateRoomScreenViewModel: CreateRoomScreenViewModelType, CreateRoomScreen
|
||||
userSession: UserSessionProtocol,
|
||||
analytics: AnalyticsServiceProtocol,
|
||||
userIndicatorController: UserIndicatorControllerProtocol,
|
||||
userSettings: UserSettings) {
|
||||
userSettings: UserSettings,
|
||||
appHooks: AppHooks) {
|
||||
self.userSession = userSession
|
||||
mediaUploadingPreprocessor = MediaUploadingPreprocessor(userSettings: userSettings)
|
||||
self.analytics = analytics
|
||||
@@ -59,14 +60,16 @@ class CreateRoomScreenViewModel: CreateRoomScreenViewModelType, CreateRoomScreen
|
||||
selectedAccessType: selectedAccessType,
|
||||
selectedSpace: selectedSpace)
|
||||
|
||||
super.init(initialViewState: CreateRoomScreenViewState(isSpace: isSpace,
|
||||
shouldShowCancelButton: shouldShowCancelButton,
|
||||
roomName: "",
|
||||
serverName: userSession.clientProxy.userIDServerName ?? "",
|
||||
isKnockingFeatureEnabled: userSettings.knockingEnabled,
|
||||
canSelectSpace: canSelectSpace,
|
||||
aliasLocalPart: roomAliasNameFromRoomDisplayName(roomName: ""),
|
||||
bindings: bindings),
|
||||
let viewState = CreateRoomScreenViewState(isSpace: isSpace,
|
||||
shouldShowCancelButton: shouldShowCancelButton,
|
||||
roomName: "",
|
||||
serverName: userSession.clientProxy.userIDServerName ?? "",
|
||||
isKnockingFeatureEnabled: userSettings.knockingEnabled,
|
||||
canSelectSpace: canSelectSpace,
|
||||
aliasLocalPart: roomAliasNameFromRoomDisplayName(roomName: ""),
|
||||
bindings: bindings)
|
||||
|
||||
super.init(initialViewState: appHooks.createRoomScreenHook.update(viewState, homeserver: userSession.clientProxy.homeserver),
|
||||
mediaProvider: userSession.mediaProvider)
|
||||
|
||||
setupBindings()
|
||||
|
||||
@@ -467,6 +467,7 @@ struct CreateRoom_Previews: PreviewProvider, TestablePreview {
|
||||
userSession: userSession,
|
||||
analytics: AnalyticsServiceMock(.init()),
|
||||
userIndicatorController: UserIndicatorControllerMock(),
|
||||
userSettings: userSettings)
|
||||
userSettings: userSettings,
|
||||
appHooks: AppHooks())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,7 +73,8 @@ struct CreateRoomSpaceSelectionSheet_Previews: PreviewProvider, TestablePreview
|
||||
userSession: userSession,
|
||||
analytics: AnalyticsServiceMock(.init()),
|
||||
userIndicatorController: UserIndicatorControllerMock(),
|
||||
userSettings: userSettings)
|
||||
userSettings: userSettings,
|
||||
appHooks: AppHooks())
|
||||
}()
|
||||
|
||||
static var previews: some View {
|
||||
|
||||
Reference in New Issue
Block a user