MESSENGER-4484 poi participants in history

This commit is contained in:
Frank Rotermund
2023-07-18 11:44:35 +00:00
parent b386e7c812
commit dc5198f5d9
11 changed files with 55 additions and 17 deletions
@@ -19,10 +19,12 @@ import CommonKit
import MatrixSDK
import SwiftUI
// bwi #4484: Poi history needs to pass a navigation router to show participants
struct PollHistoryDetailCoordinatorParameters {
let event: MXEvent
let poll: TimelinePollDetails
let room: MXRoom
let navigationRouter: NavigationRouterType
}
final class PollHistoryDetailCoordinator: Coordinator, Presentable {
@@ -36,7 +38,7 @@ final class PollHistoryDetailCoordinator: Coordinator, Presentable {
init(parameters: PollHistoryDetailCoordinatorParameters) throws {
self.parameters = parameters
let timelinePollCoordinator = try TimelinePollCoordinator(parameters: .init(session: parameters.room.mxSession, room: parameters.room, pollEvent: parameters.event))
let timelinePollCoordinator = try TimelinePollCoordinator(parameters: .init(session: parameters.room.mxSession, room: parameters.room, pollEvent: parameters.event, showParticipantButton: BWIBuildSettings.shared.bwiPollParticipantsInHistory), navigationRouter: parameters.navigationRouter)
let viewModel = PollHistoryDetailViewModel(poll: parameters.poll)
let view = PollHistoryDetail(viewModel: viewModel.context, contentPoll: timelinePollCoordinator.toView())
@@ -26,8 +26,19 @@ struct PollHistoryDetail: View {
@ObservedObject var viewModel: PollHistoryDetailViewModel.Context
var contentPoll: any View
// bwi #4484: poi participants in history needs a pushed not presented view: Navigation title looks better this way in that case
var body: some View {
navigation
if BWIBuildSettings.shared.bwiPollParticipantsInHistory {
navigation
.accentColor(theme.colors.accent)
.navigationViewStyle(StackNavigationViewStyle())
.navigationTitle(navigationTitle)
.navigationBarTitleDisplayMode(.inline)
} else {
navigation
.accentColor(theme.colors.accent)
}
}
private var navigation: some View {
@@ -50,11 +61,17 @@ struct PollHistoryDetail: View {
.font(theme.fonts.caption1)
.padding([.top])
.accessibilityIdentifier("PollHistoryDetail.date")
AnyView(contentPoll)
.navigationTitle(navigationTitle)
.navigationBarTitleDisplayMode(.inline)
.navigationBarBackButtonHidden(true)
.navigationBarItems(leading: backButton, trailing: doneButton)
if BWIBuildSettings.shared.bwiPollParticipantsInHistory {
AnyView(contentPoll)
} else {
AnyView(contentPoll)
.navigationTitle(navigationTitle)
.navigationBarTitleDisplayMode(.inline)
.navigationBarBackButtonHidden(true)
.navigationBarItems(leading: backButton, trailing: doneButton)
}
viewInTimeline
}
}