4850 bring leaving space experience in line with web (#6062)

* Bring leaving space experience in line with Web #4850

- Done
This commit is contained in:
Gil Eluard
2022-04-27 13:31:14 +02:00
committed by GitHub
parent 751e21f97b
commit 07f8d4d52e
23 changed files with 537 additions and 60 deletions
@@ -31,11 +31,13 @@ struct MatrixItemChooserCoordinatorParameters {
let selectedItemsIds: [String]
let viewProvider: MatrixItemChooserCoordinatorViewProvider?
let itemsProcessor: MatrixItemChooserProcessorProtocol
let selectionHeader: MatrixItemChooserSelectionHeader?
init(session: MXSession,
title: String? = nil,
detail: String? = nil,
selectedItemsIds: [String] = [],
selectionHeader: MatrixItemChooserSelectionHeader? = nil,
viewProvider: MatrixItemChooserCoordinatorViewProvider? = nil,
itemsProcessor: MatrixItemChooserProcessorProtocol) {
self.session = session
@@ -44,6 +46,7 @@ struct MatrixItemChooserCoordinatorParameters {
self.selectedItemsIds = selectedItemsIds
self.viewProvider = viewProvider
self.itemsProcessor = itemsProcessor
self.selectionHeader = selectionHeader
}
}
@@ -69,7 +72,7 @@ final class MatrixItemChooserCoordinator: Coordinator, Presentable {
@available(iOS 14.0, *)
init(parameters: MatrixItemChooserCoordinatorParameters) {
self.parameters = parameters
let viewModel = MatrixItemChooserViewModel.makeMatrixItemChooserViewModel(matrixItemChooserService: MatrixItemChooserService(session: parameters.session, selectedItemIds: parameters.selectedItemsIds, itemsProcessor: parameters.itemsProcessor), title: parameters.title, detail: parameters.detail)
let viewModel = MatrixItemChooserViewModel.makeMatrixItemChooserViewModel(matrixItemChooserService: MatrixItemChooserService(session: parameters.session, selectedItemIds: parameters.selectedItemsIds, itemsProcessor: parameters.itemsProcessor), title: parameters.title, detail: parameters.detail, selectionHeader: parameters.selectionHeader)
matrixItemChooserViewModel = viewModel
if let viewProvider = parameters.viewProvider {
let view = viewProvider.view(with: viewModel.context).addDependency(AvatarService.instantiate(mediaManager: parameters.session.mediaManager))