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
Tracking: Fix hosting flow related issues #90440
base: trunk
Are you sure you want to change the base?
Conversation
Jetpack Cloud live (direct link)
Automattic for Agencies live (direct link)
|
Here is how your PR affects size of JS and CSS bundles shipped to the user's browser: App Entrypoints (~30 bytes added 📈 [gzipped])
Common code that is always downloaded and parsed every time the app is loaded, no matter which route is used. Sections (~1059 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. |
@daledupreez @southp Would like to gather your thoughts on this approach so that we grant granular control of the flow tracking to flows. wp-calypso/client/landing/stepper/declarative-flow/internals/types.ts Lines 112 to 130 in 6add167
Re thinking this but the idea remains mostly similar but with hooks. |
Thanks for looping us in @ddc22 :) Although I think eventually this will work, my only concern is that it's lots of manual chores for the developers to follow, hence not a strong enough guarantee. Since Stepper is a general flow framework, the overall coherence of whether a flow is a signup flow seems to rely too much on the manual configuration from the developer. Roughly speaking, there are now:
Since a "flow" in Stepper is a general concept, I'm wondering whether such a flag should be a pervasive prop existing in all flow instances, causing all flow to have to configure it whether it's a signup flow or not. I'm seeing that Stepper already uses class extension in several places; I'm wondering if we can do similar thing to hide all these configuration away from the developers. e.g. a signup flow has to implement a
and a signup flow on Stepper would only need to implement this interface and have all the signup-related configuration in-place. Currently it'd be mainly about the data tracking. In the future we might also need to port the new site managing functionality(i.e. when users navigate back-and-forth in the flow, they are actually editing the same site). If it's possible, it might be a good way to abstract all the manual chores away and make the signup-related code more reusable. Also, last but not least, if we can move the user step onto Stepper, the whole finer configuration thing might not be needed, and a major pain of implementing a signup flow on Stepper will be removed. 🙃 |
Related to #
Proposed Changes
Tracking events generated on hosting flow surfaced an issue in tracking that's related to the stepper framework.
Previously whenever a flow was marked as a signup flow via
isSignupFlow
acalypso_signup_complete
was logged whenever the flow started. However when the user is not logged in we redirect the user to the signup framework to log them in. This results in a signup start being logged.Due to this requirement a change in the tracking approach is suggested in more fine grain controls for events logged by the framework.
wp-calypso/client/landing/stepper/declarative-flow/internals/index.tsx
Lines 165 to 169 in e974e3b
However if the user is not logged in they will be redirected tht e
Testing Instructions
Pre-merge Checklist