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

Feature/9217 top traffic source driving leads #9320

Merged
merged 20 commits into from
Oct 1, 2024

Conversation

zutigrm
Copy link
Collaborator

@zutigrm zutigrm commented Sep 10, 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.

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

github-actions bot commented Sep 10, 2024

Size Change: +726 B (+0.04%)

Total Size: 1.85 MB

Filename Size Change
./dist/assets/js/googlesitekit-activation-********************.js 24 kB +14 B (+0.06%)
./dist/assets/js/googlesitekit-ad-blocking-recovery-********************.js 70.4 kB -3 B (0%)
./dist/assets/js/googlesitekit-adminbar-********************.js 34.7 kB -276 B (-0.79%)
./dist/assets/js/googlesitekit-api-********************.js 10.1 kB +12 B (+0.12%)
./dist/assets/js/googlesitekit-components-gm2-********************.js 6 kB -1 B (-0.02%)
./dist/assets/js/googlesitekit-datastore-forms-********************.js 8.95 kB -1 B (-0.01%)
./dist/assets/js/googlesitekit-datastore-location-********************.js 2.08 kB -1 B (-0.05%)
./dist/assets/js/googlesitekit-datastore-site-********************.js 20.5 kB +17 B (+0.08%)
./dist/assets/js/googlesitekit-datastore-ui-********************.js 10 kB +12 B (+0.12%)
./dist/assets/js/googlesitekit-datastore-user-********************.js 26.6 kB +100 B (+0.38%)
./dist/assets/js/googlesitekit-entity-dashboard-********************.js 81.7 kB -4 B (0%)
./dist/assets/js/googlesitekit-main-dashboard-********************.js 156 kB +32 B (+0.02%)
./dist/assets/js/googlesitekit-modules-********************.js 22.1 kB +13 B (+0.06%)
./dist/assets/js/googlesitekit-modules-ads-********************.js 32.8 kB +17 B (+0.05%)
./dist/assets/js/googlesitekit-modules-adsense-********************.js 123 kB +213 B (+0.17%)
./dist/assets/js/googlesitekit-modules-analytics-4-********************.js 175 kB +542 B (+0.31%)
./dist/assets/js/googlesitekit-modules-reader-revenue-manager-********************.js 22 kB +10 B (+0.05%)
./dist/assets/js/googlesitekit-modules-search-console-********************.js 59.3 kB +52 B (+0.09%)
./dist/assets/js/googlesitekit-modules-tagmanager-********************.js 32.1 kB +21 B (+0.07%)
./dist/assets/js/googlesitekit-notifications-********************.js 22.5 kB +13 B (+0.06%)
./dist/assets/js/googlesitekit-settings-********************.js 125 kB +10 B (+0.01%)
./dist/assets/js/googlesitekit-splash-********************.js 86.7 kB -153 B (-0.18%)
./dist/assets/js/googlesitekit-user-input-********************.js 60.8 kB +18 B (+0.03%)
./dist/assets/js/googlesitekit-vendor-********************.js 321 kB +5 B (0%)
./dist/assets/js/googlesitekit-widgets-********************.js 89.5 kB +47 B (+0.05%)
./dist/assets/js/googlesitekit-wp-dashboard-********************.js 62.2 kB +17 B (+0.03%)
ℹ️ View Unchanged
Filename Size
./dist/assets/css/googlesitekit-admin-css-********************.min.css 58.1 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 891 B
./dist/assets/js/37-********************.js 3.12 kB
./dist/assets/js/analytics-advanced-tracking-********************.js 901 B
./dist/assets/js/googlesitekit-components-gm3-********************.js 10.1 kB
./dist/assets/js/googlesitekit-consent-mode-********************.js 25.6 kB
./dist/assets/js/googlesitekit-data-********************.js 2.37 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-pagespeed-insights-********************.js 22.5 kB
./dist/assets/js/googlesitekit-modules-sign-in-with-google-********************.js 1.01 kB
./dist/assets/js/googlesitekit-polyfills-********************.js 377 B
./dist/assets/js/runtime-********************.js 1.3 kB

compressed-size-action

Copy link

github-actions bot commented Sep 10, 2024

Build files for 66761b3 have been deleted.

@zutigrm
Copy link
Collaborator Author

zutigrm commented Sep 10, 2024

Note to the reviewer: The E2E tests are failing for reasons not related to this PR, but they originate from different issue that was merged, and causes E2E failures in all PR's

Update: I pushed the latest sync with developed, and removed showWidget logic as mentioned in the channel yesterday

Copy link
Collaborator

@tofumatt tofumatt 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, but I think there are some code improvements to make (mostly formatting/readability) and some VRTs to remove.

Comment on lines 151 to 162
const loading = useSelect( ( select ) =>
eventNames.length
? ! select( MODULES_ANALYTICS_4 ).hasFinishedResolution(
'getReport',
[ totalLeadsReportOptions ]
) ||
! select( MODULES_ANALYTICS_4 ).hasFinishedResolution(
'getReport',
[ trafficSourceReportOptions ]
)
: undefined
);
Copy link
Collaborator

Choose a reason for hiding this comment

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

The ternary with the || is very tough to read. In general, multi-line ternary statements aren't great, but this one is overkill 😅

Let's change it to return early with if statements and simplify it at least a bit:

Suggested change
const loading = useSelect( ( select ) =>
eventNames.length
? ! select( MODULES_ANALYTICS_4 ).hasFinishedResolution(
'getReport',
[ totalLeadsReportOptions ]
) ||
! select( MODULES_ANALYTICS_4 ).hasFinishedResolution(
'getReport',
[ trafficSourceReportOptions ]
)
: undefined
);
const loading = useSelect( ( select ) => {
if ( ! eventNames.length ) {
return undefined;
}
return ! select( MODULES_ANALYTICS_4 ).hasFinishedResolution(
'getReport',
[ totalLeadsReportOptions ]
) ||
! select( MODULES_ANALYTICS_4 ).hasFinishedResolution(
'getReport',
[ trafficSourceReportOptions ]
)
} );

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Good point, updated

Comment on lines 164 to 165
const makeFilter = ( dateRange, dimensionIndex ) => ( row ) =>
get( row, `dimensionValues.${ dimensionIndex }.value` ) === dateRange;
Copy link
Collaborator

Choose a reason for hiding this comment

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

The multiple implicit returns make this hard to follow/tell what's what in terms of the functions this is creating. How about:

Suggested change
const makeFilter = ( dateRange, dimensionIndex ) => ( row ) =>
get( row, `dimensionValues.${ dimensionIndex }.value` ) === dateRange;
const makeFilter = ( dateRange, dimensionIndex ) => {
return ( row ) => {
return get( row, `dimensionValues.${ dimensionIndex }.value` ) === dateRange
}
};

Copy link
Collaborator

Choose a reason for hiding this comment

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

This isn't an error state specific to this widget, so let's remove this test. We already have a lot of VRTs and the size is often causing them to fail/timeout, plus it takes longer to run for every test we add. When they add value that's worth it, but this one doesn't add much, so let's remove it 🙂

Copy link
Collaborator

Choose a reason for hiding this comment

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

This isn't an error state specific to this widget, so let's remove this test. We already have a lot of VRTs and the size is often causing them to fail/timeout, plus it takes longer to run for every test we add. When they add value that's worth it, but this one doesn't add much, so let's remove it 🙂

Copy link
Collaborator

Choose a reason for hiding this comment

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

Not sure this one is worth a VRT either, this can probably be removed 🙂

Copy link
Collaborator

Choose a reason for hiding this comment

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

Even this is covered by other VRTs/the base KMW VRTs, so I'd say this is probably safe to remove as well.

I think our amount of VRTs is probably overkill 😅

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I kept this one only, as it still handy to have it, so we can see if something goes wrong with it, as although it displays data similarly to the base traffic metric, it still has different options that are needed in order to work.

@zutigrm
Copy link
Collaborator Author

zutigrm commented Sep 26, 2024

Thanks @tofumatt I updated the PR, although I removed .scenario for most stories, they seems not be detected as removed in my local VRT runs, so they are still present in the PR files. Do you have an idea, why that might be?

@tofumatt
Copy link
Collaborator

Usually you need to run npm run test:visualapprove to update the VRTs, I'll try it out locally.

@tofumatt tofumatt merged commit 198cedb into develop Oct 1, 2024
16 of 20 checks passed
@tofumatt tofumatt deleted the feature/9217-top-traffic-source-driving-leads branch October 1, 2024 22:39
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