Skip to content

Commit

Permalink
[NT-304] Manage pledge configuration outputs (#838)
Browse files Browse the repository at this point in the history
  • Loading branch information
Scollaco committed Sep 13, 2019
1 parent c9dd624 commit e2abed4
Show file tree
Hide file tree
Showing 9 changed files with 219 additions and 75 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ import Library
import Prelude
import UIKit

final class ManagePledgeViewController: UIViewController {
final class ManageViewPledgeViewController: UIViewController {
// MARK: - Properties

private lazy var closeButton: UIBarButtonItem = {
UIBarButtonItem(
image: UIImage(named: "icon--cross"),
style: .plain,
target: self,
action: #selector(ManagePledgeViewController.closeButtonTapped)
action: #selector(ManageViewPledgeViewController.closeButtonTapped)
)
}()

Expand All @@ -20,23 +20,29 @@ final class ManagePledgeViewController: UIViewController {
image: UIImage(named: "icon--more-menu"),
style: .plain,
target: self,
action: #selector(ManagePledgeViewController.editButtonTapped)
action: #selector(ManageViewPledgeViewController.editButtonTapped)
)
}()

private lazy var navigationBarShadowImage: UIImage? = {
UIImage(in: CGRect(x: 0, y: 0, width: 1, height: 0.5), with: .ksr_dark_grey_400)
}()

private let viewModel: ManagePledgeViewModelType = ManagePledgeViewModel()
private let viewModel = ManageViewPledgeViewModel()

static func instantiate(with project: Project, reward: Reward) -> ManageViewPledgeViewController {
let manageViewPledgeVC = ManageViewPledgeViewController.instantiate()
manageViewPledgeVC.viewModel.inputs.configureWith(project, reward: reward)

return manageViewPledgeVC
}

// MARK: - Lifecycle

override func viewDidLoad() {
super.viewDidLoad()

_ = self
|> \.title %~ { _ in Strings.Manage_your_pledge() }
|> \.extendedLayoutIncludesOpaqueBars .~ true

_ = self.navigationController?.navigationBar
Expand All @@ -47,6 +53,8 @@ final class ManagePledgeViewController: UIViewController {
_ = self.navigationItem
?|> \.leftBarButtonItem .~ self.closeButton
?|> \.rightBarButtonItem .~ self.editButton

self.viewModel.inputs.viewDidLoad()
}

// MARK: - Styles
Expand All @@ -62,6 +70,32 @@ final class ManagePledgeViewController: UIViewController {
|> \.width .~ Styles.minTouchSize.width
}

// MARK: - View model

override func bindViewModel() {
super.bindViewModel()

self.viewModel.outputs.title
.observeForUI()
.observeValues { [weak self] title in
guard let self = self else { return }
_ = self
|> \.title .~ title
}

self.viewModel.outputs.configurePaymentMethodView
.observeForUI()
.observeValues { _ in }

self.viewModel.outputs.configurePledgeSummaryView
.observeForUI()
.observeValues { _ in }

self.viewModel.outputs.configureRewardSummaryView
.observeForUI()
.observeValues { _ in }
}

// MARK: - Configuration

func configureWith(project: Project, reward: Reward) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -207,8 +207,7 @@ public final class ProjectPamphletViewController: UIViewController {
}

private func goToManageViewPledge(project: Project, reward: Reward, refTag _: RefTag?) {
let managePledgeViewController = ManagePledgeViewController.instantiate()
managePledgeViewController.configureWith(project: project, reward: reward)
let managePledgeViewController = ManageViewPledgeViewController.instantiate(with: project, reward: reward)

let nav = UINavigationController(rootViewController: managePledgeViewController)
if AppEnvironment.current.device.userInterfaceIdiom == .pad {
Expand Down
32 changes: 16 additions & 16 deletions Kickstarter.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1035,8 +1035,8 @@
D60C8CE12149A65000D96152 /* SettingsPrivacyDataSourceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D60C8CE02149A65000D96152 /* SettingsPrivacyDataSourceTests.swift */; };
D60CAB922208A1B60083FA40 /* SelectCurrencyViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6B9FA1422089C05003282A5 /* SelectCurrencyViewControllerTests.swift */; };
D612A21922F0ED5A007F7FD9 /* CreditCard+UtilsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D612A21822F0ED5A007F7FD9 /* CreditCard+UtilsTests.swift */; };
D61440FE23200F09002A6507 /* ManagePledgeViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D61440FD23200F09002A6507 /* ManagePledgeViewModelTests.swift */; };
D614410023200FD3002A6507 /* ManagePledgeViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D61440FF23200FD3002A6507 /* ManagePledgeViewControllerTests.swift */; };
D61440FE23200F09002A6507 /* ManageViewPledgeViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D61440FD23200F09002A6507 /* ManageViewPledgeViewModelTests.swift */; };
D614410023200FD3002A6507 /* ManageViewPledgeViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D61440FF23200FD3002A6507 /* ManageViewPledgeViewControllerTests.swift */; };
D62B1477221216A000AC05C8 /* DeletePaymentMethodEnvelope.swift in Sources */ = {isa = PBXBuildFile; fileRef = D62B1476221216A000AC05C8 /* DeletePaymentMethodEnvelope.swift */; };
D62B14B02212184500AC05C8 /* DeletePaymentMethodEnvelopeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D62B14AF2212184500AC05C8 /* DeletePaymentMethodEnvelopeTests.swift */; };
D63BBCD0217E5460007E01F0 /* PaymentMethodsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D63BBCCF217E5460007E01F0 /* PaymentMethodsViewController.swift */; };
Expand All @@ -1058,12 +1058,12 @@
D6560C2A2182361800CD24BC /* PaymentMethodsDataSourceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D65E8F8821821EF500AB9412 /* PaymentMethodsDataSourceTests.swift */; };
D667C2BC2305F03300EC094A /* ExperimentName+HelpersTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D667C2BB2305F03300EC094A /* ExperimentName+HelpersTests.swift */; };
D66FB348218212B700A27BCC /* PaymentMethodsViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D66FB347218212B700A27BCC /* PaymentMethodsViewModelTests.swift */; };
D673317F231EC25E00DB1173 /* ManagePledgeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D673317E231EC25E00DB1173 /* ManagePledgeViewModel.swift */; };
D67B6C9D221F458700B63A6B /* Config+Argo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D67B6C9C221F458700B63A6B /* Config+Argo.swift */; };
D67B6CD6221F468100B63A6B /* Location+Argo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D67B6CD5221F468100B63A6B /* Location+Argo.swift */; };
D67B6CD8221F46D700B63A6B /* Project.Country+Argo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D67B6CD7221F46D700B63A6B /* Project.Country+Argo.swift */; };
D67DF564232ABB960051D207 /* ManageViewPledgeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D67DF563232ABB950051D207 /* ManageViewPledgeViewModel.swift */; };
D67F29361F68333800E399A6 /* GraphSchema.swift in Sources */ = {isa = PBXBuildFile; fileRef = D67F29351F68333800E399A6 /* GraphSchema.swift */; };
D6A45DB72319A7E1006DDB01 /* ManagePledgeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6A45DB62319A7E1006DDB01 /* ManagePledgeViewController.swift */; };
D6A45DB72319A7E1006DDB01 /* ManageViewPledgeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6A45DB62319A7E1006DDB01 /* ManageViewPledgeViewController.swift */; };
D6A7AB3A1FDAF24D007B20AE /* DiscoveryPostcardCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D6A7AB371FD9EDFD007B20AE /* DiscoveryPostcardCell.xib */; };
D6A7AB401FDAF3EC007B20AE /* ThanksCategoryCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D6A7AB3E1FDAF3EC007B20AE /* ThanksCategoryCell.xib */; };
D6AE3F9120EA975300DB212F /* SettingsNotifications.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D6AE3F5920EA973500DB212F /* SettingsNotifications.storyboard */; };
Expand Down Expand Up @@ -2297,8 +2297,8 @@
D60C8BF221481BCC00D96152 /* SettingsAccountViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsAccountViewControllerTests.swift; sourceTree = "<group>"; };
D60C8CE02149A65000D96152 /* SettingsPrivacyDataSourceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsPrivacyDataSourceTests.swift; sourceTree = "<group>"; };
D612A21822F0ED5A007F7FD9 /* CreditCard+UtilsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CreditCard+UtilsTests.swift"; sourceTree = "<group>"; };
D61440FD23200F09002A6507 /* ManagePledgeViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagePledgeViewModelTests.swift; sourceTree = "<group>"; };
D61440FF23200FD3002A6507 /* ManagePledgeViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagePledgeViewControllerTests.swift; sourceTree = "<group>"; };
D61440FD23200F09002A6507 /* ManageViewPledgeViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManageViewPledgeViewModelTests.swift; sourceTree = "<group>"; };
D61440FF23200FD3002A6507 /* ManageViewPledgeViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManageViewPledgeViewControllerTests.swift; sourceTree = "<group>"; };
D62B1476221216A000AC05C8 /* DeletePaymentMethodEnvelope.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeletePaymentMethodEnvelope.swift; sourceTree = "<group>"; };
D62B14AF2212184500AC05C8 /* DeletePaymentMethodEnvelopeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeletePaymentMethodEnvelopeTests.swift; sourceTree = "<group>"; };
D63BBCCF217E5460007E01F0 /* PaymentMethodsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentMethodsViewController.swift; sourceTree = "<group>"; };
Expand All @@ -2320,14 +2320,14 @@
D65E8F8821821EF500AB9412 /* PaymentMethodsDataSourceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentMethodsDataSourceTests.swift; sourceTree = "<group>"; };
D667C2BB2305F03300EC094A /* ExperimentName+HelpersTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ExperimentName+HelpersTests.swift"; sourceTree = "<group>"; };
D66FB347218212B700A27BCC /* PaymentMethodsViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentMethodsViewModelTests.swift; sourceTree = "<group>"; };
D673317E231EC25E00DB1173 /* ManagePledgeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagePledgeViewModel.swift; sourceTree = "<group>"; };
D6765B4C211091AB00AE3DB4 /* SettingsNewslettersDataSourceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsNewslettersDataSourceTests.swift; sourceTree = "<group>"; };
D67B6C9C221F458700B63A6B /* Config+Argo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Config+Argo.swift"; sourceTree = "<group>"; };
D67B6CD5221F468100B63A6B /* Location+Argo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Location+Argo.swift"; sourceTree = "<group>"; };
D67B6CD7221F46D700B63A6B /* Project.Country+Argo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Project.Country+Argo.swift"; sourceTree = "<group>"; };
D67DF563232ABB950051D207 /* ManageViewPledgeViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManageViewPledgeViewModel.swift; sourceTree = "<group>"; };
D67F29351F68333800E399A6 /* GraphSchema.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GraphSchema.swift; sourceTree = "<group>"; };
D69BACEF21C856F2006EAA00 /* UIAlertControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIAlertControllerTests.swift; sourceTree = "<group>"; };
D6A45DB62319A7E1006DDB01 /* ManagePledgeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagePledgeViewController.swift; sourceTree = "<group>"; };
D6A45DB62319A7E1006DDB01 /* ManageViewPledgeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManageViewPledgeViewController.swift; sourceTree = "<group>"; };
D6A7AB371FD9EDFD007B20AE /* DiscoveryPostcardCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = DiscoveryPostcardCell.xib; sourceTree = "<group>"; };
D6A7AB3E1FDAF3EC007B20AE /* ThanksCategoryCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ThanksCategoryCell.xib; sourceTree = "<group>"; };
D6AD9A7F20EA720F0015A18B /* SettingsNotificationsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsNotificationsViewController.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -2924,8 +2924,8 @@
A7ED203A1E8323E900BFFA01 /* LoginToutViewControllerTests.swift */,
018F1F821C8E182200643DAA /* LoginViewController.swift */,
A7ED202D1E8323E900BFFA01 /* LoginViewControllerTests.swift */,
D6A45DB62319A7E1006DDB01 /* ManagePledgeViewController.swift */,
D61440FF23200FD3002A6507 /* ManagePledgeViewControllerTests.swift */,
D6A45DB62319A7E1006DDB01 /* ManageViewPledgeViewController.swift */,
D61440FF23200FD3002A6507 /* ManageViewPledgeViewControllerTests.swift */,
D6E7DAF922089F3900689BD6 /* MessageBannerViewController.swift */,
77E84E0B2166A8C600DA8891 /* MessageBannerViewControllerTests.swift */,
A74FFDEE1CE3E33300C7BCB9 /* MessageDialogViewController.swift */,
Expand Down Expand Up @@ -3478,8 +3478,8 @@
A7ED1F761E831C5C00BFFA01 /* LoginToutViewModelTests.swift */,
A7698B291D00602800953FD3 /* LoginViewModel.swift */,
A7ED1F931E831C5C00BFFA01 /* LoginViewModelTests.swift */,
D673317E231EC25E00DB1173 /* ManagePledgeViewModel.swift */,
D61440FD23200F09002A6507 /* ManagePledgeViewModelTests.swift */,
D67DF563232ABB950051D207 /* ManageViewPledgeViewModel.swift */,
D61440FD23200F09002A6507 /* ManageViewPledgeViewModelTests.swift */,
D04AAC1B218BB70C00CF713E /* MessageBannerViewModel.swift */,
D04AAC11218BB70A00CF713E /* MessageBannerViewModelTests.swift */,
A7F4419B1D005A9400FE6FC5 /* MessageCellViewModel.swift */,
Expand Down Expand Up @@ -4528,7 +4528,6 @@
A72C3A951D00F6C70075227E /* DiscoveryPageViewModel.swift in Sources */,
37EB3E4C228CF4A400076E4C /* NumberFormatter.swift in Sources */,
D0D77C1E22D3FC3400356FEA /* UIPageViewController+ThreadSafety.swift in Sources */,
D673317F231EC25E00DB1173 /* ManagePledgeViewModel.swift in Sources */,
A7F441C71D005A9400FE6FC5 /* MessageCellViewModel.swift in Sources */,
59673CBF1D50EE9B0035AFD9 /* VideoViewModel.swift in Sources */,
9D10B91B1D35407C008B8045 /* String+Truncate.swift in Sources */,
Expand Down Expand Up @@ -4592,6 +4591,7 @@
D0200A5621935F2900F5CC27 /* MessageBannerType.swift in Sources */,
D70347901DBAABC30099C668 /* DiscoveryExpandableRowCellViewModel.swift in Sources */,
0199545F1D2D818E00BC1390 /* DashboardProjectsDrawerViewModel.swift in Sources */,
D67DF564232ABB960051D207 /* ManageViewPledgeViewModel.swift in Sources */,
D0A787BF2204D975006AE4F4 /* UITableView+AutoLayoutHeaderView.swift in Sources */,
A76126B91C90C94000EDCCB9 /* UIView-Extensions.swift in Sources */,
A77D7B071CBAAF5D0077586B /* Paginate.swift in Sources */,
Expand Down Expand Up @@ -4789,7 +4789,7 @@
A7ED1F341E830FDC00BFFA01 /* SharedFunctionsTests.swift in Sources */,
D6B4EFFE21079C870079159D /* SettingsNewslettersViewModelTests.swift in Sources */,
A7ED1FC81E831C5C00BFFA01 /* MessageThreadsViewModelTests.swift in Sources */,
D61440FE23200F09002A6507 /* ManagePledgeViewModelTests.swift in Sources */,
D61440FE23200F09002A6507 /* ManageViewPledgeViewModelTests.swift in Sources */,
A7ED1F311E830FDC00BFFA01 /* PaginateTests.swift in Sources */,
77277C3022B2BF53002B2321 /* FeatureFlagToolsViewModelTests.swift in Sources */,
D612A21922F0ED5A007F7FD9 /* CreditCard+UtilsTests.swift in Sources */,
Expand All @@ -4815,7 +4815,7 @@
374CB95122C17D6700B84219 /* CharacterSetTests.swift in Sources */,
A7ED1FC51E831C5C00BFFA01 /* CommentsEmptyStateCellViewModelTests.swift in Sources */,
A7ED1F391E830FDC00BFFA01 /* UILabel+IBClearTests.swift in Sources */,
D614410023200FD3002A6507 /* ManagePledgeViewControllerTests.swift in Sources */,
D614410023200FD3002A6507 /* ManageViewPledgeViewControllerTests.swift in Sources */,
3706408422A8A68600889CBD /* PledgeAmountViewModelTests.swift in Sources */,
D79CF40521B0840E00ECB73A /* AddNewCardViewModelTests.swift in Sources */,
D7A86A3B1F324EB300C7DA53 /* MostPopularSearchProjectCellViewModelTests.swift in Sources */,
Expand Down Expand Up @@ -5006,7 +5006,7 @@
9D7536CD1D78D78600A7623B /* SurveyResponseViewController.swift in Sources */,
59392BEC1D7094B0001C99A4 /* ProjectUpdatesViewController.swift in Sources */,
D7A37C8F1E2EB01700EA066D /* SearchEmptyStateCell.swift in Sources */,
D6A45DB72319A7E1006DDB01 /* ManagePledgeViewController.swift in Sources */,
D6A45DB72319A7E1006DDB01 /* ManageViewPledgeViewController.swift in Sources */,
9DDE1F721D5925A90092D9A5 /* DeprecatedCheckoutViewController.swift in Sources */,
01940B2B1D46814E0074FCE3 /* HelpWebViewModel.swift in Sources */,
D0A787BD2204D865006AE4F4 /* SelectCurrencyTableViewHeader.swift in Sources */,
Expand Down
28 changes: 0 additions & 28 deletions Library/ViewModels/ManagePledgeViewModel.swift

This file was deleted.

14 changes: 0 additions & 14 deletions Library/ViewModels/ManagePledgeViewModelTests.swift

This file was deleted.

Loading

0 comments on commit e2abed4

Please sign in to comment.