fix embedding pattern

This commit is contained in:
Flavio Alescio
2023-02-01 11:15:22 +01:00
parent 638e62908f
commit 5946ffb8e2
7 changed files with 18 additions and 12 deletions
@@ -21,6 +21,7 @@ import SwiftUI
struct PollHistoryDetailCoordinatorParameters {
let event: MXEvent
let poll: TimelinePollDetails
let room: MXRoom
}
@@ -37,7 +38,7 @@ final class PollHistoryDetailCoordinator: Coordinator, Presentable {
self.parameters = parameters
let timelinePollCoordinator = try TimelinePollCoordinator(parameters: .init(session: parameters.room.mxSession, room: parameters.room, pollEvent: parameters.event))
let viewModel = PollHistoryDetailViewModel(timelineViewModel: timelinePollCoordinator.viewModel)
let viewModel = PollHistoryDetailViewModel(timelinePollView: timelinePollCoordinator.toView(), poll: parameters.poll)
let view = PollHistoryDetail(viewModel: viewModel.context)
pollHistoryDetailViewModel = viewModel
pollHistoryDetailHostingController = VectorHostingController(rootView: view)
@@ -48,7 +48,8 @@ enum MockPollHistoryDetailScreenState: MockScreenState, CaseIterable {
}
var screenView: ([Any], AnyView) {
let viewModel = PollHistoryDetailViewModel(timelineViewModel: TimelinePollViewModel(timelinePollDetails: poll))
let timelineViewModel = TimelinePollViewModel(timelinePollDetails: poll)
let viewModel = PollHistoryDetailViewModel(timelinePollView: TimelinePollView(viewModel: timelineViewModel.context), poll: poll)
return ([viewModel], AnyView(PollHistoryDetail(viewModel: viewModel.context)))
}
@@ -15,6 +15,7 @@
//
import Foundation
import SwiftUI
// MARK: - Coordinator
@@ -28,14 +29,14 @@ enum PollHistoryDetailViewModelResult {
// MARK: View
struct PollHistoryDetailViewState: BindableState {
var timelineViewModel: TimelinePollViewModelType.Context
var timelinePollView: any View
var poll: TimelinePollDetails
var pollStartDate: Date {
timelineViewModel.viewState.poll.startDate
poll.startDate
}
var isPollClosed: Bool {
timelineViewModel.viewState.poll.closed
poll.closed
}
}
@@ -26,8 +26,8 @@ class PollHistoryDetailViewModel: PollHistoryDetailViewModelType, PollHistoryDet
// MARK: - Setup
init(timelineViewModel: TimelinePollViewModelProtocol) {
super.init(initialViewState: PollHistoryDetailViewState(timelineViewModel: timelineViewModel.context))
init(timelinePollView: any View, poll: TimelinePollDetails) {
super.init(initialViewState: PollHistoryDetailViewState(timelinePollView: timelinePollView, poll: poll))
}
// MARK: - Public
@@ -42,15 +42,14 @@ struct PollHistoryDetail: View {
}
private var content: some View {
let timelineViewModel = viewModel.viewState.timelineViewModel
return ScrollView {
ScrollView {
VStack(alignment: .leading) {
Text(DateFormatter.pollShortDateFormatter.string(from: viewModel.viewState.pollStartDate))
.foregroundColor(theme.colors.tertiaryContent)
.font(theme.fonts.caption1)
.padding([.top])
.accessibilityIdentifier("PollHistoryDetail.date")
TimelinePollView(viewModel: timelineViewModel)
AnyView(viewModel.viewState.timelinePollView)
.navigationTitle(navigationTitle)
.navigationBarTitleDisplayMode(.inline)
.navigationBarBackButtonHidden(true)