SP4: space settings (#5730)

* SP4: Space Settings

- Space settings screen implemented
- No space upgrade available as per Element web
- Need more insights for the space address field
- Added settings live update
- Added local alias implementation
This commit is contained in:
Gil Eluard
2022-03-04 12:53:42 +01:00
committed by GitHub
parent 136b40e2eb
commit bc55dbb11b
43 changed files with 2184 additions and 118 deletions
@@ -24,6 +24,7 @@ struct SpaceMemberDetailCoordinatorParameters {
let member: MXRoomMember
let session: MXSession
let spaceId: String
let showCancelMenuItem: Bool
}
final class SpaceMemberDetailCoordinator: NSObject, SpaceMemberDetailCoordinatorType {
@@ -49,7 +50,7 @@ final class SpaceMemberDetailCoordinator: NSObject, SpaceMemberDetailCoordinator
init(parameters: SpaceMemberDetailCoordinatorParameters) {
self.parameters = parameters
let spaceMemberDetailViewModel = SpaceMemberDetailViewModel(userSessionsService: parameters.userSessionsService, session: parameters.session, member: parameters.member, spaceId: parameters.spaceId)
let spaceMemberDetailViewModel = SpaceMemberDetailViewModel(userSessionsService: parameters.userSessionsService, session: parameters.session, member: parameters.member, spaceId: parameters.spaceId, showCancelMenuItem: parameters.showCancelMenuItem)
let spaceMemberDetailViewController = SpaceMemberDetailViewController.instantiate(with: spaceMemberDetailViewModel)
spaceMemberDetailViewController.enableMention = true
spaceMemberDetailViewController.enableVoipCall = false
@@ -106,11 +106,13 @@ final class SpaceMemberDetailViewController: RoomMemberDetailsViewController {
}
private func setupViews() {
let cancelBarButtonItem = MXKBarButtonItem(title: VectorL10n.cancel, style: .plain) { [weak self] in
self?.cancelButtonAction()
if viewModel.showCancelMenuItem {
let cancelBarButtonItem = MXKBarButtonItem(title: VectorL10n.cancel, style: .plain) { [weak self] in
self?.cancelButtonAction()
}
self.navigationItem.rightBarButtonItem = cancelBarButtonItem
}
self.navigationItem.rightBarButtonItem = cancelBarButtonItem
}
private func render(viewState: SpaceMemberDetailViewState) {
@@ -29,6 +29,7 @@ final class SpaceMemberDetailViewModel: NSObject, SpaceMemberDetailViewModelType
private let member: MXRoomMember
private let spaceId: String
private var space: MXSpace?
private(set) var showCancelMenuItem: Bool
private var currentOperation: MXHTTPOperation?
@@ -39,11 +40,12 @@ final class SpaceMemberDetailViewModel: NSObject, SpaceMemberDetailViewModelType
// MARK: - Setup
init(userSessionsService: UserSessionsService, session: MXSession, member: MXRoomMember, spaceId: String) {
init(userSessionsService: UserSessionsService, session: MXSession, member: MXRoomMember, spaceId: String, showCancelMenuItem: Bool) {
self.userSessionsService = userSessionsService
self.session = session
self.member = member
self.spaceId = spaceId
self.showCancelMenuItem = showCancelMenuItem
}
deinit {
@@ -32,6 +32,7 @@ protocol SpaceMemberDetailViewModelType {
var viewDelegate: SpaceMemberDetailViewModelViewDelegate? { get set }
var coordinatorDelegate: SpaceMemberDetailViewModelCoordinatorDelegate? { get set }
var showCancelMenuItem: Bool { get }
func process(viewAction: SpaceMemberDetailViewAction)
}