diff --git a/Kickstarter-iOS/Features/PledgedProjectsOverview/CardView/PPOProjectCard.swift b/Kickstarter-iOS/Features/PledgedProjectsOverview/CardView/PPOProjectCard.swift index 7bb6728766..a127377232 100644 --- a/Kickstarter-iOS/Features/PledgedProjectsOverview/CardView/PPOProjectCard.swift +++ b/Kickstarter-iOS/Features/PledgedProjectsOverview/CardView/PPOProjectCard.swift @@ -8,7 +8,7 @@ struct PPOProjectCard: View { @StateObject var viewModel: PPOProjectCardViewModel var parentSize: CGSize - var onViewBackingDetails: ((PPOProjectCardModel) -> Void)? = nil + var onViewProjectDetails: ((PPOProjectCardModel) -> Void)? = nil var onSendMessage: ((PPOProjectCardModel) -> Void)? = nil var onPerformAction: ((PPOProjectCardModel, PPOProjectCardModel.Action) -> Void)? = nil @@ -41,7 +41,7 @@ struct PPOProjectCard: View { // Handle actions .onReceive(self.viewModel.viewBackingDetailsTapped) { - self.onViewBackingDetails?(self.viewModel.card) + self.onViewProjectDetails?(self.viewModel.card) } .onReceive(self.viewModel.sendMessageTapped) { self.onSendMessage?(self.viewModel.card) diff --git a/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOContainerViewController.swift b/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOContainerViewController.swift index d95f5035dc..18b98469d6 100644 --- a/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOContainerViewController.swift +++ b/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOContainerViewController.swift @@ -3,6 +3,7 @@ import Foundation import KDS import KsApi import Library +import Prelude import Stripe import SwiftUI @@ -74,7 +75,9 @@ public class PPOContainerViewController: PagedContainerViewController(right: Param.id(projectId)) + let vc = ProjectPageViewController.configuredWith( + projectOrParam: projectParam, + refInfo: nil + ) + + let nav = UINavigationController(rootViewController: vc) + nav.modalPresentationStyle = .pageSheet + nav.presentationController?.delegate = self + + self.present(nav, animated: true, completion: nil) + } + private func messageCreator(_ messageSubject: MessageSubject) { let vc = MessageDialogViewController.configuredWith(messageSubject: messageSubject, context: .backerModal) let nav = UINavigationController(rootViewController: vc) diff --git a/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOView.swift b/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOView.swift index ef4e49a794..c2608b54af 100644 --- a/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOView.swift +++ b/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOView.swift @@ -49,8 +49,8 @@ struct PPOView: View { PPOProjectCard( viewModel: card, parentSize: parentSize, - onViewBackingDetails: { card in - self.viewModel.viewBackingDetails(from: card) + onViewProjectDetails: { card in + self.viewModel.viewProjectDetails(from: card) }, onSendMessage: { card in self.viewModel.contactCreator(from: card) diff --git a/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOViewModel.swift b/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOViewModel.swift index 17a39f5a76..baf5e04c9a 100644 --- a/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOViewModel.swift +++ b/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOViewModel.swift @@ -27,7 +27,7 @@ protocol PPOViewModelInputs { ) func openSurvey(from: PPOProjectCardModel) func managePledge(from: PPOProjectCardModel) - func viewBackingDetails(from: PPOProjectCardModel) + func viewProjectDetails(from: PPOProjectCardModel) func editAddress(from: PPOProjectCardModel) func confirmAddress(from: PPOProjectCardModel, address: String, addressId: String) func contactCreator(from: PPOProjectCardModel) @@ -44,7 +44,7 @@ enum PPONavigationEvent: Equatable { case fix3DSChallenge(clientSecret: String, onProgress: (PPOActionState) -> Void) case survey(url: String) case managePledge(url: String) - case backingDetails(url: String) + case projectDetails(projectId: Int) case editAddress(url: String) case confirmAddress( backingId: String, @@ -60,8 +60,8 @@ enum PPONavigationEvent: Equatable { return lhsUrl == rhsUrl case let (.managePledge(lhsUrl), .managePledge(rhsUrl)): return lhsUrl == rhsUrl - case let (.backingDetails(lhsUrl), .backingDetails(rhsUrl)): - return lhsUrl == rhsUrl + case let (.projectDetails(lhsId), .projectDetails(rhsId)): + return lhsId == rhsId case let (.editAddress(lhsUrl), .editAddress(rhsUrl)): return lhsUrl == rhsUrl case let (.contactCreator(lhsSubject), .contactCreator(rhsSubject)): @@ -168,8 +168,8 @@ final class PPOViewModel: ObservableObject, PPOViewModelInputs, PPOViewModelOutp self.managePledgeSubject .map { viewModel in PPONavigationEvent.managePledge(url: viewModel.backingDetailsUrl) } .eraseToAnyPublisher(), - self.viewBackingDetailsSubject - .map { viewModel in PPONavigationEvent.survey(url: viewModel.backingDetailsUrl) } + self.viewProjectDetailsSubject + .map { viewModel in PPONavigationEvent.projectDetails(projectId: viewModel.projectId) } .eraseToAnyPublisher(), self.editAddressSubject .map { viewModel in PPONavigationEvent.editAddress(url: viewModel.backingDetailsUrl) } @@ -339,8 +339,8 @@ final class PPOViewModel: ObservableObject, PPOViewModelInputs, PPOViewModelOutp self.managePledgeSubject.send(from) } - func viewBackingDetails(from: PPOProjectCardModel) { - self.viewBackingDetailsSubject.send(from) + func viewProjectDetails(from: PPOProjectCardModel) { + self.viewProjectDetailsSubject.send(from) } func editAddress(from: PPOProjectCardModel) { @@ -378,7 +378,7 @@ final class PPOViewModel: ObservableObject, PPOViewModelInputs, PPOViewModelOutp >() private let openSurveySubject = PassthroughSubject() private let managePledgeSubject = PassthroughSubject() - private let viewBackingDetailsSubject = PassthroughSubject() + private let viewProjectDetailsSubject = PassthroughSubject() private let editAddressSubject = PassthroughSubject() private let confirmAddressSubject = PassthroughSubject<(PPOProjectCardModel, String, String), Never>() private let confirmAddressProgressSubject = PassthroughSubject< diff --git a/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOViewModelTests.swift b/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOViewModelTests.swift index 69a57f884d..0461860be6 100644 --- a/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOViewModelTests.swift +++ b/Kickstarter-iOS/Features/PledgedProjectsOverview/PPOViewModelTests.swift @@ -325,11 +325,11 @@ class PPOViewModelTests: XCTestCase { ) } - func testNavigationViewBackingDetails() { + func testNavigationViewProjectDetails() { self.verifyNavigationEvent( - // This could be tested with any template. All cards allow the user to view backing details. - { self.viewModel.openSurvey(from: PPOProjectCardModel.fixPaymentTemplate) }, - event: .survey(url: PPOProjectCardModel.fixPaymentTemplate.backingDetailsUrl) + // This could be tested with any template. All cards allow the user to view project details. + { self.viewModel.viewProjectDetails(from: PPOProjectCardModel.fixPaymentTemplate) }, + event: .projectDetails(projectId: PPOProjectCardModel.fixPaymentTemplate.projectId) ) }