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

Update Selection Panels to be in-view aware #9631

Open
wants to merge 10 commits into
base: develop
Choose a base branch
from

Conversation

ankitrox
Copy link
Collaborator

@ankitrox ankitrox commented Nov 7, 2024

Summary

Addresses issue:

Relevant technical choices

PR Author Checklist

  • My code is tested and passes existing unit tests.
  • My code has an appropriate set of unit tests which all pass.
  • My code is backward-compatible with WordPress 5.2 and PHP 7.4.
  • My code follows the WordPress coding standards.
  • My code has proper inline documentation.
  • I have added a QA Brief on the issue linked above.
  • I have signed the Contributor License Agreement (see https://cla.developers.google.com/).

Do not alter or remove anything below. The following sections will be managed by moderators only.

Code Reviewer Checklist

  • Run the code.
  • Ensure the acceptance criteria are satisfied.
  • Reassess the implementation with the IB.
  • Ensure no unrelated changes are included.
  • Ensure CI checks pass.
  • Check Storybook where applicable.
  • Ensure there is a QA Brief.
  • Ensure there are no unexpected significant changes to file sizes.

Merge Reviewer Checklist

  • Ensure the PR has the correct target branch.
  • Double-check that the PR is okay to be merged.
  • Ensure the corresponding issue has a ZenHub release assigned.
  • Add a changelog message to the issue.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This will be removed when #9630 will be merged.

Copy link

github-actions bot commented Nov 7, 2024

Build files for 0c3c078 are ready:

Copy link

github-actions bot commented Nov 7, 2024

Size Change: +401 B (+0.02%)

Total Size: 1.88 MB

Filename Size Change
./dist/assets/js/42-********************.js 3.12 kB +1 B (+0.03%)
./dist/assets/js/googlesitekit-activation-********************.js 24 kB -8 B (-0.03%)
./dist/assets/js/googlesitekit-ad-blocking-recovery-********************.js 55 kB +7 B (+0.01%)
./dist/assets/js/googlesitekit-adminbar-********************.js 34.6 kB -13 B (-0.04%)
./dist/assets/js/googlesitekit-api-********************.js 10.1 kB +1 B (+0.01%)
./dist/assets/js/googlesitekit-components-gm2-********************.js 6.17 kB -1 B (-0.02%)
./dist/assets/js/googlesitekit-components-gm3-********************.js 10.1 kB -2 B (-0.02%)
./dist/assets/js/googlesitekit-data-********************.js 2.37 kB +2 B (+0.08%)
./dist/assets/js/googlesitekit-datastore-forms-********************.js 8.97 kB -1 B (-0.01%)
./dist/assets/js/googlesitekit-datastore-site-********************.js 20.5 kB +5 B (+0.02%)
./dist/assets/js/googlesitekit-datastore-ui-********************.js 10.1 kB -1 B (-0.01%)
./dist/assets/js/googlesitekit-datastore-user-********************.js 27.2 kB +6 B (+0.02%)
./dist/assets/js/googlesitekit-entity-dashboard-********************.js 81.8 kB +13 B (+0.02%)
./dist/assets/js/googlesitekit-main-dashboard-********************.js 161 kB +165 B (+0.1%)
./dist/assets/js/googlesitekit-modules-ads-********************.js 33.4 kB +8 B (+0.02%)
./dist/assets/js/googlesitekit-modules-adsense-********************.js 117 kB -100 B (-0.09%)
./dist/assets/js/googlesitekit-modules-analytics-4-********************.js 185 kB +79 B (+0.04%)
./dist/assets/js/googlesitekit-modules-pagespeed-insights-********************.js 22.9 kB +69 B (+0.3%)
./dist/assets/js/googlesitekit-modules-reader-revenue-manager-********************.js 40.8 kB -16 B (-0.04%)
./dist/assets/js/googlesitekit-modules-search-console-********************.js 64.9 kB -9 B (-0.01%)
./dist/assets/js/googlesitekit-modules-sign-in-with-google-********************.js 24.3 kB -10 B (-0.04%)
./dist/assets/js/googlesitekit-modules-tagmanager-********************.js 32.2 kB +1 B (0%)
./dist/assets/js/googlesitekit-notifications-********************.js 22.8 kB -5 B (-0.02%)
./dist/assets/js/googlesitekit-settings-********************.js 126 kB +16 B (+0.01%)
./dist/assets/js/googlesitekit-splash-********************.js 69 kB +115 B (+0.17%)
./dist/assets/js/googlesitekit-vendor-********************.js 322 kB -15 B (0%)
./dist/assets/js/googlesitekit-widgets-********************.js 96.3 kB +96 B (+0.1%)
./dist/assets/js/googlesitekit-wp-dashboard-********************.js 62.6 kB -5 B (-0.01%)
./dist/assets/js/runtime-********************.js 1.4 kB +3 B (+0.21%)
ℹ️ View Unchanged
Filename Size
./dist/assets/css/googlesitekit-admin-css-********************.min.css 60 kB
./dist/assets/css/googlesitekit-adminbar-css-********************.min.css 11.8 kB
./dist/assets/css/googlesitekit-authorize-application-css-********************.min.css 846 B
./dist/assets/css/googlesitekit-wp-dashboard-css-********************.min.css 8.2 kB
./dist/assets/js/32-********************.js 2.76 kB
./dist/assets/js/33-********************.js 2.25 kB
./dist/assets/js/34-********************.js 3.64 kB
./dist/assets/js/35-********************.js 935 B
./dist/assets/js/36-********************.js 893 B
./dist/assets/js/37-********************.js 1.61 kB
./dist/assets/js/38-********************.js 1.57 kB
./dist/assets/js/39-********************.js 1.61 kB
./dist/assets/js/40-********************.js 1.59 kB
./dist/assets/js/41-********************.js 1.83 kB
./dist/assets/js/analytics-advanced-tracking-********************.js 901 B
./dist/assets/js/googlesitekit-consent-mode-********************.js 25.6 kB
./dist/assets/js/googlesitekit-datastore-location-********************.js 2.08 kB
./dist/assets/js/googlesitekit-events-provider-contact-form-7-********************.js 646 B
./dist/assets/js/googlesitekit-events-provider-easy-digital-downloads-********************.js 624 B
./dist/assets/js/googlesitekit-events-provider-mailchimp-********************.js 630 B
./dist/assets/js/googlesitekit-events-provider-ninja-forms-********************.js 712 B
./dist/assets/js/googlesitekit-events-provider-optin-monster-********************.js 675 B
./dist/assets/js/googlesitekit-events-provider-popup-maker-********************.js 634 B
./dist/assets/js/googlesitekit-events-provider-woocommerce-********************.js 657 B
./dist/assets/js/googlesitekit-events-provider-wpforms-********************.js 633 B
./dist/assets/js/googlesitekit-i18n-********************.js 3.93 kB
./dist/assets/js/googlesitekit-modules-********************.js 22.2 kB
./dist/assets/js/googlesitekit-polyfills-********************.js 377 B
./dist/assets/js/googlesitekit-user-input-********************.js 43.6 kB

compressed-size-action

Copy link
Collaborator

@nfmohit nfmohit left a comment

Choose a reason for hiding this comment

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

Brilliant work on this, @ankitrox, thank you! Please see the following notes:

  1. In the QAB, it might be worth specifying the following AC:

The flicker that PR #7779 fixed in the Metrics Selection Panel should not return as a result of these changes.

  1. Additionally, I think it might also be worth doing a QA:Eng on this one in addition to general QA to ensure the following AC is met:

An observable result of this is that the panels should not trigger any API requests upon page load, unless the request is explicitly determined to be required.

  1. I've left a few comments in the code, please take a look, thank you!

Please let me know if you have any questions, thanks!

} ) }
<InViewProvider
value={ {
key: 'WPDashboardApp',
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
key: 'WPDashboardApp',
key: 'MetricsSelectionPanel',

<InViewProvider
value={ {
key: 'AudienceSelectionPanel',
value: isOpen,
Copy link
Collaborator

Choose a reason for hiding this comment

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

Do you think it would be a good idea to enforce a boolean value here, since core/ui getValue can return undefined if it can't find the key?

Suggested change
value: isOpen,
value: !! isOpen,

.dispatch( MODULES_ANALYTICS_4 )
.receiveError( error, storeFunctionName, args );

afterEach( async () => {
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think I understand what you're doing here, but this feels quite unorthodox compared to how we usually compose tests, namely:

  1. We usually do not do assertions in beforeEach or afterEach.
  2. All test cases usually read as natural language, e.g. "it should do something".

Could you possibly enlighten why we can't stick to the previous it.each() approach which was much cleaner?

Comment on lines 1798 to 1810
describe( 'should display an error message', () => {
const error = {
code: 'test_error',
message: 'Error message.',
data: {},
};

beforeEach( () => {
provideModules( registry );
provideModuleRegistrations( registry );
} );

afterEach( async () => {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Same question as above.

/**
* Selection Panel
*
* Site Kit by Google, Copyright 2023 Google LLC
Copy link
Collaborator

Choose a reason for hiding this comment

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

Very nitpicky, but as this is a newer component, should we update the year?

Suggested change
* Site Kit by Google, Copyright 2023 Google LLC
* Site Kit by Google, Copyright 2024 Google LLC

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