-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Replace the launchpad-first
flag with the goals-first cumulative experiment
#99914
Conversation
Jetpack Cloud live (direct link)
Automattic for Agencies live (direct link)
|
This PR modifies the release build for the following Calypso Apps: For info about this notification, see here: PCYsg-OT6-p2
To test WordPress.com changes, run |
Here is how your PR affects size of JS and CSS bundles shipped to the user's browser: Sections (~450 bytes added 📈 [gzipped])
Sections contain code specific for a given set of routes. Is downloaded and parsed only when a particular route is navigated to. 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. Generated by performance advisor bot at iscalypsofastyet.com. |
launchpad-first
flag with the goals-first cumulative experiment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✅ Test on a site you created a while ago (you should not get the focused launchpad)
✅ Test on a fresh site (you should get the focused launchpad if you were in the cumulative variant)
✅ Test with Big Sky, you should not see the launchpad
Might circle back to check the code more in detail tomorrow, but tested all the scenarios and it's working 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's working as expected, thanks @p-jackson!
Let's release it tomorrow morning :)
const [ isFullLaunchpadDismissed, setIsFullLaunchpadDismissed ] = useState( | ||
site.options?.launchpad_screen === undefined || | ||
site.options.launchpad_screen === 'skipped' || | ||
isSiteLaunched |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice improvement!
cb559f3
to
f93055d
Compare
Fixes #99879
Proposed Changes
I thought I would simply take the hook approach we've usually taken for experiments: replacing the
shouldShowLaunchpadFirst()
function with auseShouldShowLaunchpadFirst()
. And it'd even be able to share logic with theuseGoalsFirstCumulativeExperience()
hook 👍.The difference with this experiment though is that we need access to experiment assignment in the My Home control, and we can't use hooks there. So instead, this PR uses a promise-based approach to loading the experiment assignment, and wraps it in a hook when it needs to be used in React components.
shouldShowLaunchpadFirst()
into an async functionuseGoalsFirstCumulativeExperience()
hook for wrapping theshouldShowLaunchpadFirst()
With Experiment
CleanShot.2025-02-18.at.21.58.22.mp4
Control
(excuse the debugger 🙂)
CleanShot.2025-02-18.at.22.23.51.mp4
Why are these changes being made?
Testing Instructions
Pre-merge Checklist