Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Manage pledge configuration outputs #838

Merged
merged 10 commits into from
Sep 13, 2019
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 {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the old name is better 😬 what made you change it to ManageViewPledgeViewController?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The main reason is that we will use the same screen to Manage and View pledge.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay makes sense! 👍

// 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