Stats: Clean up tooltip delay logic
Related to:
- https://github.com/Automattic/red-team/issues/192
- https://github.com/Automattic/wp-calypso/pull/95466
Proposed Changes
Updates the logic checking for new sites to properly handle a null value from getSiteOption(). In this way, the tooltip is not addressed until the timestamp is available.
Refactors the code to encapsulate the necessary checks and clarify the intent.
Why are these changes being made?
Keeps the additional state setup together instead of doing some setup in the connect() function and then needing additional checks for validity inside the component.
Testing Instructions
See steps in: https://github.com/Automattic/wp-calypso/pull/95466
To force the bug condition you'll need to build locally, force the showSettingsTooltip to true, and set the siteCreatedTimeStamp to a value representing a date less than one week old. With those conditions in place, reload the Traffic page a few times and confirm the tooltip is never flashed on screen temporarily.
Pre-merge Checklist
- [ ] Has the general commit checklist been followed? (PCYsg-hS-p2)
- [ ] Have you written new tests for your changes?
- [ ] Have you tested the feature in Simple (P9HQHe-k8-p2), Atomic (P9HQHe-jW-p2), and self-hosted Jetpack sites (PCYsg-g6b-p2)?
- [ ] Have you checked for TypeScript, React or other console errors?
- [ ] Have you used memoizing on expensive computations? More info in Memoizing with create-selector and Using memoizing selectors and Our Approach to Data
- [ ] Have we added the "[Status] String Freeze" label as soon as any new strings were ready for translation (p4TIVU-5Jq-p2)?
- [ ] For changes affecting Jetpack: Have we added the "[Status] Needs Privacy Updates" label if this pull request changes what data or activity we track or use (p4TIVU-aUh-p2)?
Jetpack Cloud live (direct link)
|
|
https://calypso.live?image=registry.a8c.com/calypso/app:build-122315&env=jetpack |
Automattic for Agencies live (direct link)
|
|
https://calypso.live?image=registry.a8c.com/calypso/app:build-122315&env=a8c-for-agencies |
This PR modifies the release build for the following Calypso Apps:
For info about this notification, see here: PCYsg-OT6-p2
- odyssey-stats
To test WordPress.com changes, run install-plugin.sh $pluginSlug update/stats-clean-up-tooltip-delay-logic on your sandbox.
Here is how your PR affects size of JS and CSS bundles shipped to the user's browser:
Sections (~23 bytes added 📈 [gzipped])
name parsed_size gzip_size
stats +62 B (+0.0%) +13 B (+0.0%)
google-my-business +62 B (+0.0%) +10 B (+0.0%)
Sections contain code specific for a given set of routes. Is downloaded and parsed only when a particular route is navigated to.
Async-loaded Components (~10 bytes added 📈 [gzipped])
name parsed_size gzip_size
async-load-store-app-store-stats +62 B (+0.0%) +10 B (+0.0%)
React components that are loaded lazily, when a certain part of UI is displayed for the first time.
Legend
What is parsed and gzip size?
Parsed Size: Uncompressed size of the JS and CSS files. This much code needs to be parsed and stored in memory. Gzip Size: Compressed size of the JS and CSS files. This much data needs to be downloaded over network.
Generated by performance advisor bot at iscalypsofastyet.com.