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

[NT-1140] Reward Add-Ons #1242

Merged
merged 30 commits into from
Sep 2, 2020
Merged

Conversation

justinswart
Copy link
Contributor

@justinswart justinswart commented Jun 30, 2020

📲 What

Feature branch containing all Add-ons related work.

NT-1490 Update Edit Reward Alert Copy #1278

Before 🐛 After 🦋
image image

NT-1486 Add-on Selection Card Haptics #1277

Adds haptics to the UIStepper control on RewardAddOnSelectionView.

NT-1480 Tracking for Add-ons #1276

Added two tracking events:

Add-Ons Continue Button Clicked
Add-Ons Page Viewed

Added several checkout properties:

checkout_add_ons_count_total
checkout_add_ons_count_unique
checkout_add_ons_minimum_usd
checkout_bonus_amount_usd
checkout_reward_minimum_usd
checkout_shipping_amount_usd

NT-1475 Update Translations #1275

Updates all translations in the app.

NT-1416 Navigation bugfix #1274

Fixes a bug which would sometimes caused navigation to not work correctly when a backer edits their reward and selected a new reward.

NT-1481 Remove Amount Shipping Locations List #1273

Before 🐛 After 🦋
image image

NT-1452 Maximum Pledge Amount Fix #1272

Fixes the amount displayed for the maximum pledge amount validation message.

[NT-1469] Display Pledge Total When Updating #1271

Before 🐛 After 🦋
image image

[NT-1469] Display Pledge Total When Updating #1271

Before 🐛 After 🦋
image image

[NT-1473] Reload Shipping Selector on Error #1270

NT-1416 Edit Add-Ons Reward Alert #1269

image

[NT-1372, NT-1459] Update Backing with Add-ons #1268

  • Fixes a memory leak causing PledgeViewController to never be released.
  • Carries the selected reward quantities from the user's Backing through the Edit Reward flow.
  • Allows backers to complete the flow updating their pledge with different add-ons or a different reward.

[NT-1457] Remove Bonus Support Amount Rounding #1267

Removes rounding of the tracking property checkout_bonus_amount_usd.

NT-1452 Update max pledge string #1266

Before 🐛 After 🦋
image image

NT-1140 Add-Ons Phase 2

NT-1455 Fix Add-Ons Filtering #1264

Fixes a small regression where digital add-ons weren't being displayed alongside shipping add-ons.

[NT-1455, NT-1458] Add-Ons GraphQL Refactor #1263

Performs a fairly large refactor of how we fetch data from GraphQL for add-ons and our manage pledge flows.

NT-1391 Change Bonus Amount in USD to decimal currency #1262

Updates our tracking property checkout_bonus_amount_usd to be a decimal currency String rather than an Int representing the amount in USD cents.

NT-1439 Add Empty States and Pull-to-Refresh #1261

Empty Error Pull-to-refresh
image image

NT-1443 Choose another Reward -> Edit Reward #1260

Before 🐛 After 🦋
image image

NT-1401 Reward Card UI updates #1259

Before 🐛 After 🦋
image image

NT-1368 Reward Add-On Card View UI Fixes #1258

Before 🐛 After 🦋
image image

NT-1450 Allow Dissimilar Shipping Cost for Add-Ons #1257

Allows the selected base reward and its add-ons to have dissimilar shipping costs.

[NT-1371, NT-1331, NT-1391, NT-1400, NT-1436] Create/Update Backing with Add-Ons #1253

Before 🐛 After 🦋
image image

NT-1371 Add-on Reward Selection and Continue Button #1252

Before 🐛 After 🦋 Selected Add-Ons ➕
image image image

NT-1370 Filter Add-Ons by Location #1251

Filters the add-ons available for a given base reward by the selected shipping location.

NT-1366 Add-Ons Header Font Size Fix #1249

Before 🐛 After 🦋
image image

NT-1368 Reward Add-On Card UI #1248

Before 🐛 After 🦋
image image

NT-1367 Add-Ons List #1246

Before 🐛 After 🦋
image image

NT-1366 Add header UI to add-ons selection view #1244

Before 🐛 After 🦋 Blended layers 🍭
image image image

NT-1366 Add-ons Selection Navigation #1243

Navigates to RewardAddOnSelectionViewController when a Reward's hasAddOns flag is true.

[NT-1296, NT-1297] Manage Pledge view info bugfixes #1241

Bugfixes from UAT testing on Manage Pledge View:

  • Some summary data was not correctly displayed when viewing the pledge as a creator.
  • Add-on rewards were shown twice in the list.

NT-1405 Use bonus support as total for No Reward #1240

Before 🐛 After 🦋
image image

NT-1330 Fix bonus support behaviour and validation #1236

Fixes a regression introduced in #1233 that prevented us from backing projects.

[NT-1329, NT-1330] Bonus Support UI #1233

Before 🐛 After 🦋
image image

NT-1341 Rewards header expand/collapse animation #1230

[NT-1342] Updated Pledge View Header for No Reward #1229

Before 🐛 After 🦋
image image

[NT-1340] Expandable Rewards Pledge View Header #1226

Before 🐛 After 🦋
image image

[NT-1297] Add bonus support #1218

Before 🐛 Before 🐛 After 🦋
image image image

[NT-1298] Manage Pledge Shipping Disclaimer View #1217

Before 🐛 After 🦋
image image

[NT-1223, NT-1296] Reward Add-Ons GraphQL integration #1216

  • Adds reward add-ons GraphQL integration to ManagePledgeViewModel.
  • Displays the selected quantity in the title of add-ons where more than 1 was selected of that add-on.

[NT-1295] Add UITableView and data source to ManagePledgeViewController #1213

Converts ManagePledgeViewController from a regular view using a root UIStackView to using a root UITableView with a header view and cells for rewards.

justinswart and others added 15 commits June 12, 2020 11:24
…er (#1213)

* [NT-636] "Fix" button on Manage Pledge screen for errored backings (#982)

* Fix button on errored pledges

* Tests

* Formatting

* Screenshot tests

* Rerecording tests

* formatting

* [NT-636] "Fix" button on Manage Pledge screen for errored backings (#982)

* Fix button on errored pledges

* Tests

* Formatting

* Screenshot tests

* Rerecording tests

* formatting

* [NT-635] Update "fix" state of CTA button (#993)

* Added missing strings

* [NT-634] Errored pledges top cell (#991)

* [NT-635] CTA fix button navigation (#1027)

* [NT-973] Fix payment icon error (#1104)

* fix image shown

* commit adds fixIconHidden output and tests this output. Also corrects some tests

* fix test

* snapshot

* renames erroredPledge to isErrored

* swift format

* fixes tests errors

* Revert "fixes tests errors"

This reverts commit 32cea0f.

* uses isErrored

* pr feedback

* [NT-974, NT-637] Navigate to fix pledge screen/ Fix Pledge state (#1109)

* fix image shown

* commit adds fixIconHidden output and tests this output. Also corrects some tests

* fix test

* snapshot

* renames erroredPledge to isErrored

* swift format

* fixes tests errors

* Revert "fixes tests errors"

This reverts commit 32cea0f.

* uses isErrored

* navigating to fix screen

* testing gotofixpledge output

* corrected merge and removed unused constant

* fix payment method copy

* testing pledgeContext

* seift format

* wip

* wip

* pr feedback

* swift format

* pr feedback

* swiftformat

* [NT-214] Fix pledge tracking events (#1128)

* wip- 2/3 events

* tests

* Should fix feature branch (#1141)

* should fix feature branch

* Update Library/ViewModels/PledgeViewModel.swift

pr feedback

Co-Authored-By: jgsamudio <jonathan2457@gmail.com>

* swift format

* Revert "swift format"

This reverts commit 89b6a0d.

* swift format

* Revert "swift format"

This reverts commit eb9261b.

* swift format

Co-authored-by: jgsamudio <jonathan2457@gmail.com>

* [NT-1072] Whitelist fix pledge tracking events for data lake (#1142)

* whitelisted tracking events

* swift format

* fix test

* pr feedback

* [NT-686] add pledge collection date query (#1140)

* wip - collection date feature complete

* tests passing

* swift format

* wip- refactor

* fix tests

* snapshots

* updated copy

* swift format

* pr feedback

* cache formatter

* swift format

* New snapshots

* [NT-1182] Fetch Backing for ManagePledgeViewController from GraphQL (#1174)

* Fetch Backing for ManagePledgeViewController from GraphQL

* Correct test names, use rawValue in GraphSchema

* Remove Argo import

* Put GraphBackingEnvelope back

* Fix snapshot tests

* Record snapshots from commandline

* [NT-1185] Configure CancePledgeViewController with GraphQL Backing (#1176)

* Configure CancePledge with GraphQL backing

* Update tests

* Fix merge error

* Record snapshots from commandline

* [NT-1183, NT-1184] Configure ManagePledgeViewController subviews with GraphQL Backing (#1188)

* Configure ManagePledgeSummaryView with GraphQL Backing

* Fix snapshot tests

* Fix tests

* Make reward optional

* Refactor, ensure all sub-vc's don't depend on Project directly

* Move test

* Put test back

* Remove coalesce

* Alphabetize

* Tuples -> Structs

* Convert to double during deserialization

* Fix tests

* Remove recordMode

* [NT-633] Errored Pledge Deeplink (#1178)

* Errored pledge deeplink

* RefTag tests

* Revert debug code

* Use correct navigation controller

* Present login modal when logged out during errored pledge deeplink

* Present login modal when logged out

* Update visibility modifiers

* Fix failing test

* [NT-650, NT-1135, NT-1052] Add Errored Pledges to badge count (#1193)

* Add errored pledges to badge count and refresh user on fix pledge

* Fix test, updating backings on user update

* Ensure errored backing are cleared, shipping amount is shown in summary

* Add test

* Add retry payment method behaviour

* ManagePledgeView loading state

* Don't un-hide rootStackView if backing fails to load

* Don't hide apple pay button in fix context

* Add pull-to-refresh on error

* [NT-1247] ManagePledgeViewController loading state (#1203)

* Add retry payment method behaviour

* ManagePledgeView loading state

* Don't un-hide rootStackView if backing fails to load

* Don't hide apple pay button in fix context

* Show apple pay button when changing payment method

* Test commit - will revert

* Revert "Test commit - will revert"

This reverts commit 5e196f0.

* Fix layout

* Fix merge error

* Fix project file

* Hide rightBarButtonItem when view is errored

* ignoreValues instead

* Refactor to instantiate ManagePledgeViewModel with params only

* Fix ManagePledgeViewBackingEnvelopeTests

* [NT-1274] Pull to refresh on failure to fetch Project/Backing (#1206)

* Add retry payment method behaviour

* ManagePledgeView loading state

* Don't un-hide rootStackView if backing fails to load

* Don't hide apple pay button in fix context

* Add pull-to-refresh on error

* Fix layout

* Fix merge error

* Hide rightBarButtonItem when view is errored

* ignoreValues instead

* Fix tests

* Fix tests

* Consolidate shared functions, prefer filterMap

* Refactor ManagePledgeViewController to use a table view

* Fix layout issues with card view

* Add data source test

* Fix presentation crash, only show payment method section if a credit card was deserialized

* Allow optional backing param

* Remove logEvents

* Remove logEvents

* [NT-1269, NT-1270] Deprecate BackingViewController (#1212)

* Add retry payment method behaviour

* ManagePledgeView loading state

* Don't un-hide rootStackView if backing fails to load

* Don't hide apple pay button in fix context

* Add pull-to-refresh on error

* Fix layout

* Fix merge error

* Hide rightBarButtonItem when view is errored

* ignoreValues instead

* Refactor to instantiate ManagePledgeViewModel with params only

* Fix ManagePledgeViewBackingEnvelopeTests

* Fix tests

* Fix tests

* Consolidate shared functions, prefer filterMap

* Fix presentation crash, only show payment method section if a credit card was deserialized

* Allow optional backing param

* Remove logEvents

* Remove unused code

* [NT-1223, NT-1296] Reward Add-Ons GraphQL integration (#1216)

* Map add-on data to Reward

* Add quantity to reward title

* Pass quantity through

* Add boolean for isAddOn

* Move ID

* Add tests

* Set timezone in unit test

* Add test for query

* [NT-1298] Manage Pledge Shipping Disclaimer View (#1217)

* Add disclaimer view to manage pledge view

* Remove text color from style

* Update snapshots

* Add snapshots

* Hide pledge disclaimer view when no shipping or user is creator

* Update snapshots

* Fix Library tests

* [NT-1297] Add bonus support (#1218)

* Updates to reward received vc

* Add tests

* Add context-specific string

* Add bonus amount

* Update query

* Fix query

* Fix query

* Configure RewardCardView with context, hide bonus on no reward, fix corner radius

* Fix tests

* Fix snapshot test

* Layout fix

Co-authored-by: Isabel Barrera <isabel@kickstarter.com>
Co-authored-by: Nino Collaco <scollaco@gmail.com>
Co-authored-by: Isabel Barrera <ifbarrera@me.com>
Co-authored-by: christella <cdolm92@gmail.com>
Co-authored-by: jgsamudio <jonathan2457@gmail.com>
# Conflicts:
#	Kickstarter-iOS/Views/Controllers/PledgeAmountSummaryViewController.swift
* Add expandable header to pledge view

* Fix tests

* Fix test

* Remove closures from lazy props
* Add expand/collapse animation for rewards header

* New snapshots

* Silence autolayout warning

* Increase button tappable area

* Fix layout
* Add bonus support to pledge view

* Update snapshots
* Fix bonus support behaviour and validation

* Fix test
* Use bonus amount as total for no reward

* Fix snapshot test
@justinswart justinswart added the blocked a PR that is blocked for external reasons label Jun 30, 2020
@nativeksr
Copy link
Collaborator

1 Warning
⚠️ Big PR

Generated by 🚫 Danger

* [NT-1366] Add-ons Selection Navigation (#1243)

* Navigate to add-ons selection

* Actually stage all the files

* Put import back

* [NT-1366] Add header UI to add-ons selection view (#1244)

* Add basic header view with label

* Blend background color

* [NT-1367] Add-Ons List (#1246)

* Add RewardAddOnSelectionViewController

* Remove logEvents

* Update comment

* [NT-1368] Reward Add-On Card UI (#1248)

* Reward Add-On Card UI

* Update Kickstarter-iOS/Views/PillsView.swift

Co-authored-by: jgsamudio <jonathan2457@gmail.com>

* Fix tests

Co-authored-by: jgsamudio <jonathan2457@gmail.com>

* Styling fixes (#1249)

* Add add button and stepper to reward add-on card (#1250)

* [NT-1370] Filter Add-Ons by Location (#1251)

* Filter add-ons by location

* Typo

* Typo

* Fix snapshot tests

* Update inclusion logic

* Update Library/ViewModels/RewardAddOnSelectionViewModel.swift

Co-authored-by: Bessie Chan <bessie@kickstarter.com>

* [NT-1371] Add-on Reward Selection and Continue Button (#1252)

* Add-on selection and CTA

* Remove unused code

Co-authored-by: Bessie Chan <bessie@kickstarter.com>

* [NT-1371, NT-1331, NT-1391, NT-1400, NT-1436] Create/Update Backing with Add-Ons (#1253)

* Filter add-ons by location

* Typo

* Typo

* Fix snapshot tests

* Update inclusion logic

* Add-on selection and CTA

* Remove unused code

* Update create/updating backing mutations

* Pledging for add-ons and regular update flows working, tests failing

* KsApi tests

* Create/UpdateBackingInput constructor tests

* Fixing tests

* Add on selection tests

* PledgeViewModel and CancelPledgeViewModel tests

* Fix Library tests

* Fix remaining failing tests

* Remove record statement

* Fix Apple Pay totals

* Remove log statement

* SanitizedParams tests

* Remove unused code, add PledgeShippingSummaryViewModelTests

* ManagePledgeViewModelTests

* More tests

* Fix padding, add snapshot test

* Fix amounts during manage flow

* Fix snapshots

* Fix add-on shipping calculation

* Fix snapshots

* [NT-1450] Allow Dissimilar Shipping Cost for Add-Ons (#1257)

* Display individual add-on's shipping rule

* Update comment

* Misc add-on card fixes (#1258)

* [NT-1401] Reward Card UI updates (#1259)

* Add you backed label and add-ons pill

* Restructure view to fix button position on scroll

* Change title to Edit Reward (#1260)

* Update bonus amount in USD to not be cents (#1262)

* [NT-1439] Add Empty States and Pull-to-Refresh (#1261)

* Add empty states and pull-to-refresh

* Remove recordMode

* [NT-1455, NT-1458] Add-Ons GraphQL Refactor (#1263)

* KsApi updates

* Add add-ons to Backing

* Hide Graph models from the main app

* Include projects in BackingsEnvelope

* Add finalCollectionDate

* More API fixes

* KsApi updates

* Fix Library framework tests

* Fix tests

* Add staticUsdRate

* Add test

* Fix backing being passed through to pledge view

* Remove extra header space

* Pass shipping preference through from GraphReward (#1264)

Co-authored-by: jgsamudio <jonathan2457@gmail.com>
Co-authored-by: Bessie Chan <bessie@kickstarter.com>
@justinswart justinswart changed the title [NT-1140] Add-Ons Phase 1 [NT-1140] Reward Add-Ons Aug 21, 2020
@justinswart justinswart removed the blocked a PR that is blocked for external reasons label Aug 21, 2020
* Fix memory leak on pledge view, pass quantities through edit reward flow

* Update snapshot tests

* [NT-1416] Edit Add-Ons Reward Alert (#1269)

* Display prompt when editing a backing with add-ons

* Improve readability

* Fix grammar in comment
* Remove amount from shipping location list

* Fix tests

* Update snapshots
@justinswart justinswart merged commit 8b42500 into master Sep 2, 2020
@justinswart justinswart deleted the NT-1140-feature-add-ons-phase-1 branch September 2, 2020 18:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants