Skip to content

Add Payment Activity's empty state and filters [WIP] #8234

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

Closed
wants to merge 42 commits into from

Conversation

elazzabi
Copy link
Member

Fixes #8198

Changes proposed in this Pull Request

  • Introducing an empty state based on TPV for account

Testing instructions

  • Get server PR 4775
  • Open Payments > Overview
  • You should see a new card for Payments Activity with "You have some money". This will be replaced with actual graphs
  • You should see an empty state if you don't have a TPV in your account. If you want to force it, change tpv === 0 to tpv !== 0

  • Run npm run changelog to add a changelog file, choose patch to leave it empty if the change is not significant. You can add multiple changelog files in one PR by running this command a few times.
  • Covered with tests (or have a good reason not to test in description ☝️)
  • Tested on mobile (or does not apply)

Post merge

@elazzabi elazzabi changed the title Add Payment Activity's empty state Add Payment Activity's empty state [WIP] Feb 20, 2024
@botwoo
Copy link
Collaborator

botwoo commented Feb 20, 2024

Test the build

Option 1. Jetpack Beta

  • Install and activate Jetpack Beta.
  • Use this build by searching for PR number 8234 or branch name add/payment-activity-empty-state in your-test.site/wp-admin/admin.php?page=jetpack-beta&plugin=woocommerce-payments

Option 2. Jurassic Ninja - available for logged-in A12s

🚀 Launch a JN site with this branch 🚀

ℹ️ Install this Tampermonkey script to get more options.


Build info:

  • Latest commit: 8522eaf
  • Build time: 2024-03-11 17:02:35 UTC

Note: the build is updated when a new commit is pushed to this PR.

Copy link
Contributor

github-actions bot commented Feb 20, 2024

Size Change: +2.42 kB (0%)

Total Size: 1.27 MB

Filename Size Change
release/woocommerce-payments/dist/index-rtl.css 37.6 kB +268 B (+1%)
release/woocommerce-payments/dist/index.css 37.6 kB +269 B (+1%)
release/woocommerce-payments/dist/index.js 293 kB +1.88 kB (+1%)
ℹ️ View Unchanged
Filename Size
release/woocommerce-payments/assets/css/admin.css 1.06 kB
release/woocommerce-payments/assets/css/admin.rtl.css 1.06 kB
release/woocommerce-payments/assets/css/success.css 158 B
release/woocommerce-payments/assets/css/success.rtl.css 158 B
release/woocommerce-payments/dist/blocks-checkout-rtl.css 1.89 kB
release/woocommerce-payments/dist/blocks-checkout.css 1.89 kB
release/woocommerce-payments/dist/blocks-checkout.js 85.6 kB
release/woocommerce-payments/dist/cart.js 4.02 kB
release/woocommerce-payments/dist/checkout-rtl.css 400 B
release/woocommerce-payments/dist/checkout.css 400 B
release/woocommerce-payments/dist/checkout.js 36.9 kB
release/woocommerce-payments/dist/multi-currency-analytics.js 1.05 kB
release/woocommerce-payments/dist/multi-currency-rtl.css 3.25 kB
release/woocommerce-payments/dist/multi-currency-switcher-block.js 59.4 kB
release/woocommerce-payments/dist/multi-currency.css 3.25 kB
release/woocommerce-payments/dist/multi-currency.js 54.4 kB
release/woocommerce-payments/dist/order-rtl.css 707 B
release/woocommerce-payments/dist/order.css 708 B
release/woocommerce-payments/dist/order.js 41.7 kB
release/woocommerce-payments/dist/payment-gateways-rtl.css 1.19 kB
release/woocommerce-payments/dist/payment-gateways.css 1.19 kB
release/woocommerce-payments/dist/payment-gateways.js 38.4 kB
release/woocommerce-payments/dist/payment-request-rtl.css 153 B
release/woocommerce-payments/dist/payment-request.css 153 B
release/woocommerce-payments/dist/payment-request.js 12.4 kB
release/woocommerce-payments/dist/product-details-rtl.css 149 B
release/woocommerce-payments/dist/product-details.css 149 B
release/woocommerce-payments/dist/product-details.js 1.19 kB
release/woocommerce-payments/dist/settings-rtl.css 10.2 kB
release/woocommerce-payments/dist/settings.css 10.2 kB
release/woocommerce-payments/dist/settings.js 230 kB
release/woocommerce-payments/dist/subscription-edit-page.js 669 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal-rtl.css 519 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.css 519 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.js 19.4 kB
release/woocommerce-payments/dist/subscription-product-onboarding-toast.js 710 B
release/woocommerce-payments/dist/subscriptions-empty-state-rtl.css 117 B
release/woocommerce-payments/dist/subscriptions-empty-state.css 117 B
release/woocommerce-payments/dist/subscriptions-empty-state.js 18.5 kB
release/woocommerce-payments/dist/tos-rtl.css 230 B
release/woocommerce-payments/dist/tos.css 231 B
release/woocommerce-payments/dist/tos.js 21 kB
release/woocommerce-payments/dist/woopay-direct-checkout.js 4.15 kB
release/woocommerce-payments/dist/woopay-express-button-rtl.css 153 B
release/woocommerce-payments/dist/woopay-express-button.css 153 B
release/woocommerce-payments/dist/woopay-express-button.js 52.6 kB
release/woocommerce-payments/dist/woopay-rtl.css 4.18 kB
release/woocommerce-payments/dist/woopay.css 4.19 kB
release/woocommerce-payments/dist/woopay.js 71 kB
release/woocommerce-payments/includes/subscriptions/assets/css/plugin-page.css 622 B
release/woocommerce-payments/includes/subscriptions/assets/js/plugin-page.js 812 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/i18n-loader.js 2.43 kB
release/woocommerce-payments/vendor/automattic/jetpack-assets/src/js/i18n-loader.js 1.01 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-ajax.js 522 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-callables.js 581 B
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/babel.config.js 160 B
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/build/index.css 2.37 kB
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/build/index.js 13.5 kB
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/build/index.rtl.css 2.37 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/about.css 1.03 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-empty-state.css 291 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-order-statuses.css 403 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin.css 3.6 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/checkout.css 299 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/modal.css 742 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/view-subscription.css 572 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/wcs-upgrade.css 411 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin-pointers.js 544 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin.js 9.4 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.js 6.8 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.min.js 3.83 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-coupon.js 544 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-subscription.js 2.52 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.js 22.1 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.min.js 11.6 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/payment-method-restrictions.js 1.29 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/wcs-meta-boxes-order.js 502 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/payment-methods.js 355 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/single-product.js 429 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/view-subscription.js 1.38 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/wcs-cart.js 781 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/modal.js 1.1 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/wcs-upgrade.js 1.27 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.css 392 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.js 3.05 kB

compressed-size-action

Copy link
Contributor

@anu-rock anu-rock left a comment

Choose a reason for hiding this comment

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

Great work here 👏


Review checklist

Parameter Result
Approach ✅ All good
Implementation ✅ All good
Automated tests ✅ All good
Naming ✅ All good
Typing ✅ All good
Code comments 👍 Almost good (left a comment)
Changelog Skipped (until the PR is finalized)
Demo (video or JN site) Skipped (until the PR is finalized)
Manual testing ✅ Works as expected (tried the tpv !==0 hack)

} = wcpaySettings;
const [ before, setBefore ] = useState( moment() );
const [ after, setAfter ] = useState(
moment().subtract( 7, 'days' ).startOf( 'day' )
Copy link
Contributor

Choose a reason for hiding this comment

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

Is the idea to keep the number 7 always or read it from the filters when they are ready?

Copy link
Member Author

Choose a reason for hiding this comment

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

The idea is the default stats will be for the past week, hence using the 7 here. Once the user interacts with the filters, this value will change accordingly.

Copy link
Contributor

Choose a reason for hiding this comment

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

Does it make sense to read this value always from the "compared to" filter? We can probably depend on 7 being the default value for that filter.

Copy link
Contributor

Choose a reason for hiding this comment

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

I am not against having a default value here, just against the idea of hard-coding. In that way, this component seems to be doing more than its paygrade.

Copy link
Member Author

Choose a reason for hiding this comment

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

I agree that we shouldn't hard-code things when it's not needed, but I don't think that depending on the "compared to" filter is the way to go.

I think the two should be separate or at least the other way around, "Compared to:" depending on the "From:" filter. Users will select a date from the "From:" filter first and expect to have the "Compared to:" automatically follow the time range.

However, I believe these will be more apparent when starting the "data connection" phase. So if I'm handing this over to another team, I prefer to keep it separate so they can work on their preferred logic afterward. Otherwise, I might be introducing an extra burden to understand my logic...

What do you think?

Copy link
Contributor

Choose a reason for hiding this comment

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

Yep, that makes sense 👍 WDYT about putting a TODO note about it in code and keeping this thread open (unresolved)?

Copy link
Member Author

Choose a reason for hiding this comment

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

Agree! Added a TODO and linked to this thread 2903a10

<Welcome />
<AccountBalances />
</Card>
<Card>
Copy link
Contributor

Choose a reason for hiding this comment

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

Things have started to get repetitive in the if-else conditions. Time for a refactor?

@elazzabi
Copy link
Member Author

Not including a changelog here as this will depend on the team taking this forward...

@elazzabi elazzabi changed the title Add Payment Activity's empty state [WIP] Add Payment Activity's empty state and filters [WIP] Feb 29, 2024
@mordeth
Copy link
Contributor

mordeth commented Mar 5, 2024

Excellent job, @elazzabi ! The code appears to be well done. Something I observed is that tracks events are not yet implemented for both the empty state and filter interactions. It would be beneficial to have them in accordance with the acceptance criteria.

@elazzabi
Copy link
Member Author

elazzabi commented Mar 8, 2024

Handover notes pepjwh-Ok-p2#comment-926

@nagpai
Copy link
Contributor

nagpai commented Apr 22, 2024

Closing the PR since it was handed over and addressed via #8558

@nagpai nagpai closed this Apr 22, 2024
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.

Payments Overview Widget - Scaffolding and Empty State
6 participants