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

Reporting: Add a parent wrapper component for Payment Activity #8412

Merged
merged 24 commits into from
Mar 28, 2024

Conversation

nagpai
Copy link
Contributor

@nagpai nagpai commented Mar 18, 2024

Fixes #8389

Changes proposed in this Pull Request

  • The PR creates a parent wrapper component for Payment Activity widget, that will be visible on the Payment Overview page ( Payments > Overview )
  • The component will serve as a wrapper for other sub-components forming the Payment Activity widget. Other PR's will add these components subsequently
  • The PR also hides the Payment Activity widget behind a feature flag - _wcpay_feature_payment_overview_widget. It will appear only when this flag is set to true. ( meant to hide the widget during development phase )

Additional context

Testing instructions

  • Checkout this branch on your local client test site
  • Browse to the Payments overview page - Payments > Overview
  • Without the feature flag added / enabled yet, you will see the overview page without the Payment Activity wrapper. Similar to the screenshot below:


  • Via CLI, add the feature flag to the client site using the following command:
    wp option update _wcpay_feature_payment_overview_widget 1
  • Reload the Payments Overview page and you will now see the empty Payment Activity wrapper with only the title.

  • 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

@nagpai nagpai self-assigned this Mar 18, 2024
@botwoo
Copy link
Collaborator

botwoo commented Mar 18, 2024

Test the build

Option 1. Jetpack Beta

  • Install and activate Jetpack Beta.
  • Use this build by searching for PR number 8412 or branch name add/8389-create-payment-activity-wrapper 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: d54b0b9
  • Build time: 2024-03-27 08:51:27 UTC

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

Copy link
Contributor

github-actions bot commented Mar 18, 2024

Size Change: +144 B (0%)

Total Size: 1.2 MB

Filename Size Change
release/woocommerce-payments/dist/index-rtl.css 40.1 kB -14 B (0%)
release/woocommerce-payments/dist/index.css 40 kB -10 B (0%)
release/woocommerce-payments/dist/index.js 290 kB +168 B (0%)
ℹ️ 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.92 kB
release/woocommerce-payments/dist/blocks-checkout.css 1.91 kB
release/woocommerce-payments/dist/blocks-checkout.js 54.1 kB
release/woocommerce-payments/dist/cart.js 4.45 kB
release/woocommerce-payments/dist/checkout-rtl.css 405 B
release/woocommerce-payments/dist/checkout.css 406 B
release/woocommerce-payments/dist/checkout.js 37 kB
release/woocommerce-payments/dist/multi-currency-analytics.js 1.05 kB
release/woocommerce-payments/dist/multi-currency-rtl.css 3.28 kB
release/woocommerce-payments/dist/multi-currency-switcher-block.js 59.4 kB
release/woocommerce-payments/dist/multi-currency.css 3.29 kB
release/woocommerce-payments/dist/multi-currency.js 54.5 kB
release/woocommerce-payments/dist/order-rtl.css 733 B
release/woocommerce-payments/dist/order.css 735 B
release/woocommerce-payments/dist/order.js 41.7 kB
release/woocommerce-payments/dist/payment-gateways-rtl.css 1.21 kB
release/woocommerce-payments/dist/payment-gateways.css 1.21 kB
release/woocommerce-payments/dist/payment-gateways.js 38.5 kB
release/woocommerce-payments/dist/payment-request-rtl.css 155 B
release/woocommerce-payments/dist/payment-request.css 155 B
release/woocommerce-payments/dist/payment-request.js 12.4 kB
release/woocommerce-payments/dist/product-details-rtl.css 155 B
release/woocommerce-payments/dist/product-details.css 155 B
release/woocommerce-payments/dist/product-details.js 16.6 kB
release/woocommerce-payments/dist/settings-rtl.css 11 kB
release/woocommerce-payments/dist/settings.css 10.8 kB
release/woocommerce-payments/dist/settings.js 199 kB
release/woocommerce-payments/dist/subscription-edit-page.js 669 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal-rtl.css 527 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.css 527 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 120 B
release/woocommerce-payments/dist/subscriptions-empty-state.css 120 B
release/woocommerce-payments/dist/subscriptions-empty-state.js 18.5 kB
release/woocommerce-payments/dist/tos-rtl.css 235 B
release/woocommerce-payments/dist/tos.css 236 B
release/woocommerce-payments/dist/tos.js 21 kB
release/woocommerce-payments/dist/woopay-direct-checkout.js 4.58 kB
release/woocommerce-payments/dist/woopay-express-button-rtl.css 155 B
release/woocommerce-payments/dist/woopay-express-button.css 155 B
release/woocommerce-payments/dist/woopay-express-button.js 21.1 kB
release/woocommerce-payments/dist/woopay-rtl.css 4.44 kB
release/woocommerce-payments/dist/woopay.css 4.41 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

@nagpai nagpai changed the title Draft Add/8389 create payment activity wrapper Reporting: Add a parent wrapper component for Payment Activity Mar 18, 2024
@nagpai nagpai marked this pull request as ready for review March 18, 2024 15:06
@nagpai nagpai requested a review from a team March 18, 2024 15:08
Copy link
Contributor

@naman03malhotra naman03malhotra left a comment

Choose a reason for hiding this comment

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

Thanks, @nagpai, for kicking it off 🎉 , nice one, though for merging let's wait while we align on the execution strategy.

client/overview/index.js Outdated Show resolved Hide resolved
client/overview/index.js Outdated Show resolved Hide resolved
client/components/payment-activity/test/index.tsx Outdated Show resolved Hide resolved
@nagpai nagpai added the status: blocked The issue is blocked from progressing, waiting for another piece of work to be done. label Mar 19, 2024
@nagpai
Copy link
Contributor Author

nagpai commented Mar 19, 2024

Marking the PR as blocked for now, since we are still in the exploratory phase of the project. I tried this PR to check how easy is it to extract and reuse code from an existing PR.

Copy link
Contributor

@naman03malhotra naman03malhotra left a comment

Choose a reason for hiding this comment

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

Thanks for making the changes, a few suggestion about using the camelCase rather than using the snake case with linter exception rule.

client/overview/index.js Outdated Show resolved Hide resolved
) }
{
// eslint-disable-next-line camelcase
has_active_loan && (
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
has_active_loan && (
hasActiveLoan && (

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done!

844c9cc

@nagpai nagpai removed the status: blocked The issue is blocked from progressing, waiting for another piece of work to be done. label Mar 27, 2024
client/overview/index.js Outdated Show resolved Hide resolved
Comment on lines +15 to +19
<Card className="wcpay-payments-activity__card">
<CardHeader
className="wcpay-payments-activity__card__header"
isBorderless={ true }
>
Copy link
Member

Choose a reason for hiding this comment

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

💭 There may be an opportunity to reduce the amount of custom css applied here.

I attempted the following and see no major difference with the rendered component (yet, I know there may be more to come, but we can let that be implemented as-needed).

Suggested change
<Card className="wcpay-payments-activity__card">
<CardHeader
className="wcpay-payments-activity__card__header"
isBorderless={ true }
>
<Card>
<CardHeader>

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks, @Jinksi. I have added these classes since:

  1. I found that the Card by default does not have any padding and the inner individual constituents have their own padding. I thought it is better to add the padding to the whole wrapper as per our design, for uniformity. This will also help have same padding for upcoming components.

  2. The CSS on header card removes its own padding and there is an isBorderless prop set to true to remove bottom border on the header.

I hope this makes sense.

Copy link
Contributor

Choose a reason for hiding this comment

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

Agree with @Jinksi here – not so much "let's avoid css classes", more that we should avoid overriding / customising styles.

If the components aren't doing what we want (i.e. differ from design in subtle or major ways), we should:

  • adapt the design to match the components - i.e. we can implement the intended design but it looks a little different (though likely more consistent with rest of app)
  • or
  • adapt the components so they have the flexibility we need - i.e. this design proposes changes or additions to components, and we need to implement in component

Copy link
Contributor Author

@nagpai nagpai Mar 28, 2024

Choose a reason for hiding this comment

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

Thanks for sharing some very helpful guidance. I removed the custom css, and found the only difference it made was adding some extra 8 px padding. I also now see that has been removed in the new simplified design update, making it consistent with the headings of other widgets.

The latest design also has a bottom border ( default view ) for the card header.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Since I had already merged this PR before @haszari 's comment, i have created a fresh PR with the tweak

#8507

Copy link
Contributor

@naman03malhotra naman03malhotra 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 🎉, thanks for laying down the foundational PR work.

@nagpai nagpai added this pull request to the merge queue Mar 28, 2024
Merged via the queue into develop with commit b9ab150 Mar 28, 2024
22 checks passed
@nagpai nagpai deleted the add/8389-create-payment-activity-wrapper branch March 28, 2024 02:49
@nagpai nagpai restored the add/8389-create-payment-activity-wrapper branch March 28, 2024 05:47
@nagpai
Copy link
Contributor Author

nagpai commented Mar 28, 2024

I am reopening the branch to address the feedback here
#8412 (comment)

nagpai added a commit that referenced this pull request Apr 1, 2024
…ses added in #8412 (#8507)

Co-authored-by: Nagesh Pai <nagesh.pai@automattic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Create Payment Activity Parent Component | Simplify UX Phase 1 | Iteration 1
5 participants