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

Default recommended projects #680

Merged
merged 26 commits into from
May 28, 2019
Merged

Default recommended projects #680

merged 26 commits into from
May 28, 2019

Conversation

Scollaco
Copy link
Contributor

@Scollaco Scollaco commented May 17, 2019

πŸ“² What

Changes Discover behavior by setting Recommended For You as default filter if user is logged in. If the user is logged out, the behavior shouldn't change.

πŸ€” Why

This feature existed in the past, but due GDPR we had decided to remove it temporarily until have a better understanding of its implications.

πŸ›  How

But changing the initialParams on DiscoveryViewModel to include recommended projects if user is logged in.

πŸ‘€ See

recs2

βœ… Acceptance criteria

  • Being logged out, I open the app and the default filter should be All Projects
  • I login on my account
  • If my Recommendations setting on Settings > Account > Privacy is OFF, Discovery should still show All Projects as default filter.
  • If my Recommendations setting on Settings > Account > Privacy is ON, Discovery should show Recommended for you as default filter.
  • Opting out of recommendations in Settings > Account > Privacy and going back to Explore tab should show All Projects even if Recommended for you was previously selected
  • I logout and Discovery should show All Projects as default filter.

justinswart and others added 15 commits February 15, 2019 11:17
* New card screen ui (#471)

* add card view controller

* transition to add new card and uibarbuttons

* settings style applied to add new card screen

* changed keyboard style for textfields

* view controller tests

* placeholder for cardholder name textfield

* Record new screenshots

* new strings, added strings as place holder and text label

* pr feedback - inferring type for cancel button tintcolor

* pr feedback - keypath, no more lenses

* swiftlint fix

* new snapshots

* Payment methods (#457)

* Stripe element add new card (#473)

* New card screen ui (#471)

* add card view controller

* transition to add new card and uibarbuttons

* settings style applied to add new card screen

* changed keyboard style for textfields

* view controller tests

* placeholder for cardholder name textfield

* Record new screenshots

* new strings, added strings as place holder and text label

* pr feedback - inferring type for cancel button tintcolor

* pr feedback - keypath, no more lenses

* swiftlint fix

* new snapshots

* new stppaymentcardtextfield showing

* wip - placeholder colors

* snapshot tests

* Email undeliverable/unverified (#478)

* Adding emailIsVerified

* Renaming GraphUserEmail

* ViewModel tests

* ChangeEmailViewController tests

* Strings, swiftlint

* Strings & new screenshots

* Cleanup

* PR comments

* PR updates

* Test naming

* pr feedback

* new snapshots

* new placeholder colors

* new snapshots

* Delete payment methods (#479)

* Add payment method deletion

* Test datasource

* Test view model

* Clean-up and address PR feedback

* Rename credit card -> payment method

* Fix test

* Add credit card implementation (#503)

* Email undeliverable/unverified (#478)

* Adding emailIsVerified

* Renaming GraphUserEmail

* ViewModel tests

* ChangeEmailViewController tests

* Strings, swiftlint

* Strings & new screenshots

* Cleanup

* PR comments

* PR updates

* Test naming

* Use correct function to log events in crash logs (#481)

* Use correct function to log events in crash logs

* Fix indentation

* changed ui colors for textfield text and font size of text label

* vm and work on enabling save

* wip- get stripe token

* wip- payment source mutation

* wip- keyboard response

* wip- getting a stripe error here

* wip- error fix w/ publishable key, error banner showing

* wip- saving with error and keyboard functionality

* wip- updating card immediately

* wip

* wip - ACs met

* wip - refactor in view model, made IDs testable, begane VM tests

* wip -refactor on vm/vmtest

* wip -refactor deleted comments on vmt

* wip -snapshot tests

* swiftlint fixes

* renaming/refactor, corrected paymentmethodstests

* pr feedback

* swiftlint fixes

* changed function name

* indentation

* Payment methods event tracking (#496)

* Reverted code that deleted SettingsNewsletters from Storyboard.swift

* swiftlint

* Reverted code to instantiate settings newsletters vc on tests

* Alphabetized storyboard enum

* Settings payments colors (#530)

* Unsupported Credit Cards (#561)

* Viewmodel logic for unsupported cards

* Tests and accessibility fixes

* Simplify add card button

* Screenshots and string updates

* Cleanup design and remove logs

* Improving comment message

* Removing filter debug builds

* Addressing PR comments

* Updating payment methods screenshots

* Screenshots

* Possible fix for alignment issues

* Moving iOS 10 handling to output signal closure

* Remove line

* Renaming

* Last cleanup

* Strings & Asset update

* Switching from unsupported to supported

* Zipcode field in Add New Card screen (#566)

* Viewmodel logic for unsupported cards

* Tests and accessibility fixes

* Simplify add card button

* Screenshots and string updates

* Cleanup design and remove logs

* Improving comment message

* Removing filter debug builds

* Addressing PR comments

* Updating payment methods screenshots

* Screenshots

* Possible fix for alignment issues

* Moving iOS 10 handling to output signal closure

* Remove line

* Renaming

* Last cleanup

* Shared styled form field

* Adding functionality for zipcode form field

* More functionality

* View model & screenshot tests

* Swiftlint

* Cleanup

* Improving test and cleanup

* PR feedback and autocapitalizing zipcode

* Regenerating ChangePassword screenshots

* [Payment methods] CVC bug fix (#574)

* wip

* wip

* wip

* wip-swiftlint

* moved CreatePaymentSourceEnvelope to its own file, Mockservice

* swiftlint fix

* deleted unnecesary debugging code

* new paymentsource temploate and vm tests

* swiftlint fix

* fixed vm test

* PR feedback

* update schema

* [Payment methods] Minor bug fixes (#579)

* tableViewIsEditing false and show banner after dismiss

* Swiftlint

* Adding StripePublishableKey to example file

* Update publishableKey test

* Spacing

* Point-free helper

* [Payment Methods] Update padding and image view size (#581)

* Update padding and image view size

* Update stack view's spacing

* Update snapshots

* Use layoutMargins to set the padding

* [Payment methods] Disable edit button if no payment methods (#586)

* [Payment methods] Bugs & visual fixes (#578)

* Adding custom UITableViewHeader and always calling reload data on viewDidLoad

* Updating screenshots

* Cleanup autolayout warnings

* Screenshots

* PR comments

* No autolayout for footer view

* Cleanup

* Remove intrinsicContentSize

* Tableview appears without delay fix (#587)

* Fix header/footer auto sizing

* Update header background color

* Update snapshots

* Screenshots again

* Updating constraint priority to resolve ambiguity

* [Payment methods] Refresh payment methods table view properly (#588)

* Refresh payment methods table view properly

* Remove reference to weak self

* Rename delegate methods

* [Payment methods] Refetch payment methods on viewDidLoad or explicitly (by delegate) (#591)

* Do not refresh on viewWillAppear

* Use optional string to avoid unnecessary initializer

* Bring back viewWillAppear signal to better reflect view controller's lifecycle state

* [Payment methods] A11y - Credit card name (#593)

* Add card name to the a11y label

* Add comment

* [Payment Methods] Design Fixes (#592)

* Design fixes

* Fresh screenshots ✨

* Remove recordMode

* Deleting stale screenshots

* Re-add accidentally deleted line

* update strings

* [Payment Methods] Support optional card type and error handling for payment methods (#596)

* Optional card type, payment methods load error

* Optional support for imageName

* Fix accessibility label

* Fix merge conflict spacing

* Swiftlint

* Implementing PR suggestions

* Fixed bug that shows wrong expiration date (#595)

* [Payment Methods] Add New Card Design Fixes (#594)

* error message present and return key to done

* removed error message banner for incomplete payment details

* new snapshots for correct insets

* [Payment methods] Optimistically disable edit button on card deletion (#589)

* Disable edit button optimistically, use stored cards in result from card deletion

* Fix issue where edit button is not re-enabled upon the failed deletion of the last card.

* Remove unnecessary .init

* Add skipRepeats() to editButtonIsEnabled signal.

* Fixing potential reference cycles (#598)
@Scollaco
Copy link
Contributor Author

1 similar comment
@Scollaco
Copy link
Contributor Author

@Scollaco Scollaco requested review from justinswart and removed request for cdolm92 May 21, 2019 14:34
@Scollaco Scollaco assigned justinswart and dusi and unassigned ifbarrera and justinswart May 21, 2019
Copy link
Contributor

@dusi dusi left a comment

Choose a reason for hiding this comment

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

Looks good @Scollaco

I only had one question (around grammar) and one observation which I'm not sure how hard it would be to fix this but it looks like that if you're logged in and you have selected Recommended in discovery tab and you logout, then you're still in Recommended (which should no longer be available)..wonder if we can fix this edge case?

Steps to reproduce:

  1. Log in as a user who Opted In for recommendations
  2. Go to Explore and select Recommended
  3. Go to Settings and Logout
  4. Go back to Explore and you'll notice that Recommended is still selected (even though it should now not be accessible)

Library/ViewModels/DiscoveryViewModelTests.swift Outdated Show resolved Hide resolved
@Scollaco Scollaco requested a review from dusi May 22, 2019 17:40
Copy link
Contributor

@dusi dusi left a comment

Choose a reason for hiding this comment

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

Had couple minor questions and noticed one issue with the notification:

Toggling Recommendations ON/OFF in privacy settings dismisses the Settings modal

Steps to reproduce:

  1. Go to Settings > Privacy
  2. Toggle Recommendations ON or OFF (doesn't really matter)
  3. User flow gets interrupted by Settings modal being dismissed without any animation

Library/Notifications.swift Outdated Show resolved Hide resolved
Library/ViewModels/DiscoveryViewModel.swift Show resolved Hide resolved
Library/ViewModels/DiscoveryViewModel.swift Outdated Show resolved Hide resolved
Library/ViewModels/DiscoveryViewModel.swift Outdated Show resolved Hide resolved
Library/ViewModels/DiscoveryViewModel.swift Outdated Show resolved Hide resolved
@ksr-ci-bot
Copy link

SwiftFormat found issues:

File Rules
Kickstarter-iOS/Views/Cells/SettingsPrivacyRecommendationCell.swift braces, strongOutlets
Kickstarter-iOS/Views/Controllers/DiscoveryViewController.swift blankLinesAtStartOfScope, indent, unusedArguments, wrapArguments
Library/Notifications.swift wrapArguments
Library/ViewModels/DiscoveryNavigationHeaderViewModel.swift blankLinesAtStartOfScope, blankLinesBetweenScopes, indent, redundantParens, redundantReturn, sortedImports
Library/ViewModels/DiscoveryViewModel.swift blankLinesAtStartOfScope, blankLinesBetweenScopes, indent, sortedImports, wrapArguments
Library/ViewModels/DiscoveryViewModelTests.swift blankLinesAtStartOfScope, indent, redundantSelf, sortedImports
Library/ViewModels/SettingsRecommendationsCellViewModel.swift consecutiveSpaces, indent, redundantSelf, sortedImports
Library/ViewModels/SettingsRecommendationsCellViewModelTests.swift sortedImports

Generated by 🚫 Danger

@Scollaco Scollaco force-pushed the default-recommended-projects branch from 7565c3d to f45483d Compare May 24, 2019 15:33
@Scollaco Scollaco requested a review from justinswart May 24, 2019 22:00
@justinswart
Copy link
Contributor

Hey I think the only thing left to figure out is why this generated so many new snapshots?

@Scollaco Scollaco force-pushed the default-recommended-projects branch from e021e27 to 5743834 Compare May 28, 2019 15:01
@Scollaco
Copy link
Contributor Author

Hey I think the only thing left to figure out is why this generated so many new snapshots?

Ok, I think the problem was that I'd generated snapshots using the iPhoneX simulator πŸ€¦β€β™‚ . I reverted the commits and once I re-ran the tests using the iphone 8 simulator, all the viewController tests passed, so snapshots were no longer necessary.

Copy link
Contributor

@dusi dusi left a comment

Choose a reason for hiding this comment

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

Looks good Nino!

Tested all the edge cases and everything looks good..

There is one last remaining inconsistency for which I've used Github's suggestion so feel free to accept that and I'll sign off on this PR! 🀞

Library/Notifications.swift Outdated Show resolved Hide resolved
Copy link
Contributor

@dusi dusi left a comment

Choose a reason for hiding this comment

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

🚒 🚒 🚒
🚒 🚒 🚒
🚒 🚒 🚒

@Scollaco Scollaco merged commit ae4110d into master May 28, 2019
@Scollaco Scollaco deleted the default-recommended-projects branch May 28, 2019 21:28
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.

None yet

5 participants