mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 12:07:55 +00:00
tapping on the space title will open the settings (if permissions are available)
This commit is contained in:
@@ -31,9 +31,10 @@ struct SpaceScreenViewState: BindableState {
|
||||
|
||||
var canEditBaseInfo = false
|
||||
var canEditRolesAndPermissions = false
|
||||
var canEditSecurityAndPrivacy = false
|
||||
|
||||
var isSpaceManagementEnabled: Bool {
|
||||
canEditBaseInfo || canEditRolesAndPermissions
|
||||
canEditBaseInfo || canEditRolesAndPermissions || canEditSecurityAndPrivacy
|
||||
}
|
||||
|
||||
var bindings = SpaceScreenViewStateBindings()
|
||||
|
||||
@@ -88,10 +88,13 @@ class SpaceScreenViewModel: SpaceScreenViewModelType, SpaceScreenViewModelProtoc
|
||||
guard isEnabled, let powerLevels = roomInfo.powerLevels else {
|
||||
state.canEditBaseInfo = false
|
||||
state.canEditRolesAndPermissions = false
|
||||
state.canEditSecurityAndPrivacy = false
|
||||
return
|
||||
}
|
||||
state.canEditBaseInfo = powerLevels.canOwnUserEditBaseInfo()
|
||||
state.canEditRolesAndPermissions = powerLevels.canOwnUserEditRolesAndPermissions()
|
||||
state.canEditSecurityAndPrivacy = powerLevels.canOwnUserEditSecurityAndPrivacy(isSpace: roomInfo.isSpace,
|
||||
joinRule: roomInfo.joinRule)
|
||||
}
|
||||
.store(in: &cancellables)
|
||||
}
|
||||
|
||||
@@ -55,6 +55,13 @@ struct SpaceScreen: View {
|
||||
RoomHeaderView(roomName: context.viewState.space.name,
|
||||
roomAvatar: context.viewState.space.avatar,
|
||||
mediaProvider: context.mediaProvider)
|
||||
.contentShape(.rect)
|
||||
.onTapGesture {
|
||||
if context.viewState.isSpaceManagementEnabled,
|
||||
let roomProxy = context.viewState.roomProxy {
|
||||
context.send(viewAction: .spaceSettings(roomProxy: roomProxy))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This should really use a ToolbarItemGroup(placement: .secondaryAction), however it
|
||||
|
||||
Reference in New Issue
Block a user