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

Stepper: Unify loading states #99158

Merged
merged 19 commits into from
Feb 6, 2025
Merged

Stepper: Unify loading states #99158

merged 19 commits into from
Feb 6, 2025

Conversation

escapemanuele
Copy link
Contributor

@escapemanuele escapemanuele commented Jan 31, 2025

Conversation: p1738260526318899/1738058408.252399-slack-C07H21B2W59

Fixes #99258

This PR will not change the W logo before the start of the flow and before checkout

Proposed Changes

Replace the pulsating WordPress logo with a ProgressBar during Onboarding, having the processing step and Stepper share the StepperLoader.

image

Why

The experience is really fragmented:
https://github.com/user-attachments/assets/6d53f2a7-e855-4714-8467-c7fcd2340635

Testing Instructions

  • Live Link
  • Go through /setup/onboarding
  • Test BigSky
  • Test WooExpress flow
  • Test Newsletter flow
  • Test Free flow
  • Test Launchpad step

Following work

Use StepperLoader, or a more general step, also for Checkout here

@escapemanuele escapemanuele changed the title First iteration on the unified loading bar Stepper: Unify loading states Jan 31, 2025
@escapemanuele escapemanuele self-assigned this Jan 31, 2025
@matticbot
Copy link
Contributor

matticbot commented Jan 31, 2025

Here is how your PR affects size of JS and CSS bundles shipped to the user's browser:

App Entrypoints (~1246 bytes added 📈 [gzipped])

name                   parsed_size           gzip_size
entry-stepper             +12944 B  (+1.0%)    +5607 B  (+1.5%)
entry-main                 -5750 B  (-0.3%)     -126 B  (-0.0%)
entry-domains-landing      -1511 B  (-0.2%)     -307 B  (-0.1%)
entry-browsehappy          -1511 B  (-0.7%)     -307 B  (-0.5%)
entry-subscriptions        -1468 B  (-0.1%)       -2 B  (-0.0%)
entry-login                -1436 B  (-0.1%)     -102 B  (-0.0%)

Common code that is always downloaded and parsed every time the app is loaded, no matter which route is used.

Sections (~145288 bytes added 📈 [gzipped])

name                                parsed_size           gzip_size
copy-site-flow                         -18477 B  (-1.7%)    -6073 B  (-1.8%)
transferring-hosted-site-flow          -18243 B  (-6.9%)    -7158 B  (-8.1%)
write-flow                             -18215 B  (-1.5%)    -6402 B  (-1.8%)
build-flow                             -18215 B  (-1.5%)    -6387 B  (-1.8%)
import-hosted-site-flow                -18026 B  (-1.4%)    -6848 B  (-1.8%)
plugin-bundle-flow                     -17699 B  (-3.4%)    -6412 B  (-4.0%)
link-in-bio-tld-flow                   -17167 B  (-0.8%)    -6862 B  (-1.0%)
entrepreneur-flow                      -14315 B  (-7.1%)    -5150 B  (-7.8%)
update-design-flow                     -13024 B  (-0.8%)    -5063 B  (-1.1%)
newsletter-post-setup-flow             -10690 B  (-3.9%)    -4558 B  (-5.0%)
link-in-bio-post-setup-flow            -10690 B  (-3.9%)    -4558 B  (-5.0%)
stepper-user-step                       -6779 B  (-2.6%)    -2799 B  (-3.4%)
domain-user-transfer-flow               -6779 B  (-1.8%)    -2802 B  (-3.0%)
a8c-for-agencies-team                    +978 B  (+0.1%)     -786 B  (-0.3%)
signup                                   +824 B  (+0.3%)      +60 B  (+0.1%)
hundred-year-plan                        -624 B  (-0.3%)      -49 B  (-0.1%)
a8c-for-agencies-overview                +525 B  (+0.1%)     -798 B  (-0.3%)
security                                 +483 B  (+0.1%)     -353 B  (-0.1%)
start-writing-flow                       -408 B  (-1.5%)      -54 B  (-1.0%)
design-first-flow                        -408 B  (-1.4%)      -41 B  (-0.7%)
plans                                    +395 B  (+0.0%)    +1450 B  (+0.3%)
a8c-for-agencies-referrals               +366 B  (+0.0%)    -2508 B  (-0.9%)
newsletter-flow                          -300 B  (-1.3%)       -7 B  (-0.1%)
a8c-for-agencies-sites                   +251 B  (+0.0%)    -1209 B  (-0.2%)
jetpack-connect                          +230 B  (+0.0%)     +857 B  (+0.3%)
jetpack-cloud-pricing                    +230 B  (+0.0%)     +857 B  (+0.4%)
jetpack-cloud-features-comparison        +230 B  (+0.0%)     +857 B  (+0.4%)
a8c-for-agencies-migrations              +225 B  (+0.0%)    -1821 B  (-0.7%)
devdocs                                  -216 B  (-0.1%)       +0 B
new-hosted-site-flow-user-included       -192 B  (-0.1%)      -20 B  (-0.0%)
new-hosted-site-flow                     -192 B  (-0.1%)       -8 B  (-0.0%)
account                                  -174 B  (-0.0%)     +154 B  (+0.1%)
jetpack-cloud-plugin-management          -166 B  (-0.0%)    -1127 B  (-0.2%)
a8c-for-agencies-plugins                 -166 B  (-0.0%)    -1126 B  (-0.2%)
account-close                            -162 B  (-0.0%)     -183 B  (-0.1%)
plugins                                  -152 B  (-0.0%)    -1109 B  (-0.1%)
subscribers                              +150 B  (+0.0%)     -947 B  (-0.3%)
jetpack-cloud-partner-portal             +143 B  (+0.0%)      +68 B  (+0.0%)
import                                   +138 B  (+0.0%)    +1154 B  (+0.5%)
site-blocks                              +137 B  (+0.0%)      -46 B  (-0.0%)
notification-settings                    +137 B  (+0.0%)     +585 B  (+0.3%)
help                                     +137 B  (+0.0%)      +51 B  (+0.0%)
reader                                   +131 B  (+0.0%)     -869 B  (-0.2%)
jetpack-cloud-agency-signup              +128 B  (+0.2%)      +34 B  (+0.1%)
sites-dashboard                          -127 B  (-0.0%)    -1092 B  (-0.3%)
site-performance                         -127 B  (-0.0%)    -1092 B  (-0.2%)
site-overview                            -127 B  (-0.0%)    -1092 B  (-0.2%)
site-monitoring                          -127 B  (-0.0%)    -1092 B  (-0.3%)
site-marketing                           -127 B  (-0.0%)    -1092 B  (-0.3%)
site-logs                                -127 B  (-0.0%)    -1092 B  (-0.3%)
hosting-features                         -127 B  (-0.0%)    -1092 B  (-0.3%)
github-deployments                       -127 B  (-0.0%)    -1092 B  (-0.3%)
staging-site                             -126 B  (-0.0%)    -1100 B  (-0.3%)
site-tools                               -126 B  (-0.0%)    -1100 B  (-0.2%)
site-settings                            -126 B  (-0.0%)    -1100 B  (-0.3%)
onboarding-flow                          -123 B  (-0.1%)       +2 B  (+0.0%)
site-purchases                           +112 B  (+0.0%)     -192 B  (-0.0%)
purchases                                +112 B  (+0.0%)     -196 B  (-0.0%)
a8c-for-agencies-marketplace             -112 B  (-0.0%)    -1088 B  (-0.4%)
hosting                                  -101 B  (-0.0%)     -763 B  (-0.1%)
domains                                  -101 B  (-0.0%)     -785 B  (-0.1%)
checkout                                  +91 B  (+0.0%)     +633 B  (+0.1%)
reblogging-flow                           -84 B  (-1.1%)       +0 B
hundred-year-domain-transfer              -84 B  (-1.3%)       +7 B  (+0.4%)
hundred-year-domain                       -84 B  (-0.0%)      +16 B  (+0.0%)
google-transfer                           -84 B  (-1.5%)       +8 B  (+0.5%)
domain-transfer                           -84 B  (-1.6%)       +5 B  (+0.3%)
connect-domain                            -84 B  (-0.0%)      -11 B  (-0.0%)
people                                    -82 B  (-0.0%)      -32 B  (-0.0%)
earn                                      +63 B  (+0.0%)      -66 B  (-0.0%)
a8c-for-agencies-partner-directory        +60 B  (+0.0%)     +308 B  (+0.2%)
a8c-for-agencies-client                   +57 B  (+0.0%)    -1040 B  (-0.3%)
stats                                     -54 B  (-0.0%)      +44 B  (+0.0%)
a8c-for-agencies-signup                   -51 B  (-0.0%)      -77 B  (-0.2%)
accept-invite                             +49 B  (+0.0%)      +36 B  (+0.1%)
a8c-for-agencies-landing                  +49 B  (+0.0%)      +29 B  (+0.1%)
a8c-for-agencies                          +49 B  (+0.0%)      +27 B  (+0.1%)
settings                                  +35 B  (+0.0%)      +47 B  (+0.0%)
jetpack-app                               +35 B  (+0.0%)      +17 B  (+0.0%)
woocommerce-installation                  +34 B  (+0.0%)      +55 B  (+0.1%)
woocommerce                               +34 B  (+0.0%)      +55 B  (+0.1%)
themes                                    +34 B  (+0.0%)      +55 B  (+0.0%)
theme                                     +34 B  (+0.0%)      +55 B  (+0.0%)
switch-site                               +34 B  (+0.0%)      +23 B  (+0.0%)
settings-writing                          +34 B  (+0.0%)      +55 B  (+0.0%)
settings-security                         +34 B  (+0.0%)      +55 B  (+0.0%)
settings-reading                          +34 B  (+0.0%)      +55 B  (+0.0%)
settings-podcast                          +34 B  (+0.0%)      +55 B  (+0.0%)
settings-performance                      +34 B  (+0.0%)      +55 B  (+0.0%)
settings-newsletter                       +34 B  (+0.0%)      +55 B  (+0.0%)
settings-jetpack                          +34 B  (+0.0%)      +55 B  (+0.0%)
settings-discussion                       +34 B  (+0.0%)      +55 B  (+0.0%)
scan                                      +34 B  (+0.0%)      +46 B  (+0.0%)
promote-post-i2                           +34 B  (+0.0%)      +55 B  (+0.0%)
privacy                                   +34 B  (+0.0%)     +396 B  (+0.2%)
preview                                   +34 B  (+0.0%)      +55 B  (+0.1%)
posts-custom                              +34 B  (+0.0%)      +55 B  (+0.0%)
posts                                     +34 B  (+0.0%)      +55 B  (+0.0%)
performance-profiler                      +34 B  (+0.0%)      +21 B  (+0.0%)
patterns                                  +34 B  (+0.0%)      +23 B  (+0.0%)
pages                                     +34 B  (+0.0%)      +55 B  (+0.0%)
migrate                                   +34 B  (+0.0%)      +67 B  (+0.1%)
media                                     +34 B  (+0.0%)      +55 B  (+0.0%)
me                                        +34 B  (+0.0%)      -39 B  (-0.0%)
marketplace                               +34 B  (+0.0%)      +55 B  (+0.0%)
marketing                                 +34 B  (+0.0%)      +55 B  (+0.0%)
jetpack-social                            +34 B  (+0.0%)      +70 B  (+0.0%)
jetpack-search                            +34 B  (+0.0%)      +39 B  (+0.0%)
jetpack-cloud-settings                    +34 B  (+0.0%)      +55 B  (+0.0%)
jetpack-cloud-overview                    +34 B  (+0.0%)      +74 B  (+0.1%)
jetpack-cloud                             +34 B  (+0.0%)      +55 B  (+0.0%)
gutenberg-editor                          +34 B  (+0.0%)      +56 B  (+0.0%)
google-my-business                        +34 B  (+0.0%)      +55 B  (+0.0%)
export                                    +34 B  (+0.0%)      +55 B  (+0.1%)
email                                     +34 B  (+0.0%)     +611 B  (+0.3%)
developer                                 +34 B  (+0.0%)     +359 B  (+0.2%)
customize                                 +34 B  (+0.0%)      +55 B  (+0.1%)
concierge                                 +34 B  (+0.0%)      +55 B  (+0.0%)
comments                                  +34 B  (+0.0%)      +55 B  (+0.0%)
backup                                    +34 B  (+0.0%)      +54 B  (+0.0%)
add-ons                                   +34 B  (+0.0%)      +55 B  (+0.1%)
activity                                  +34 B  (+0.0%)      +55 B  (+0.0%)
a8c-for-agencies-settings                 +34 B  (+0.0%)      +23 B  (+0.0%)
a8c-for-agencies-agency-tier              +34 B  (+0.0%)      +24 B  (+0.0%)
jetpack-cloud-agency-dashboard            +31 B  (+0.0%)    -1280 B  (-0.4%)
jetpack-cloud-manage-pricing              +15 B  (+0.0%)       +6 B  (+0.0%)
a8c-for-agencies-purchases                +15 B  (+0.0%)      +75 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 (~755 bytes removed 📉 [gzipped])

name                                                            parsed_size            gzip_size
async-load-automattic-help-center-stepper                          -14248 B   (-1.5%)    -5109 B   (-1.7%)
async-load-calypso-my-sites-checkout-modal                          -9004 B   (-0.5%)    -3840 B   (-0.8%)
async-load-automattic-search                                        -7300 B  (-22.1%)    -2288 B  (-20.0%)
async-load-calypso-components-global-notices                        -2244 B  (-20.5%)     -862 B  (-23.3%)
async-load-site-build-showcase                                      -2231 B  (-48.0%)     -906 B  (-45.3%)
async-load-design-playground                                         +277 B   (+0.0%)     -346 B   (-0.1%)
async-load-design                                                    +277 B   (+0.0%)     -344 B   (-0.1%)
async-load-signup-steps-initial-intent                               +230 B   (+0.2%)     +312 B   (+0.9%)
async-load-signup-steps-domains                                      +171 B   (+0.0%)     +282 B   (+0.1%)
async-load-calypso-my-sites-stats-pages-subscribers                  -132 B   (-0.1%)     -678 B   (-1.3%)
async-load-design-wordpress-components-gallery                       -107 B   (-0.0%)      +34 B   (+0.0%)
async-load-automattic-help-center                                    -107 B   (-0.0%)     +103 B   (+0.1%)
async-load-signup-steps-website-content-section-types                 -88 B   (-0.1%)      -18 B   (-0.0%)
async-load-signup-steps-website-content                               -88 B   (-0.0%)      -18 B   (-0.0%)
async-load-signup-steps-site-picker                                   +59 B   (+0.0%)      +37 B   (+0.0%)
async-load-signup-steps-difm-site-picker                              +59 B   (+0.0%)      +37 B   (+0.0%)
async-load-design-blocks                                              +59 B   (+0.0%)      +80 B   (+0.0%)
async-load-signup-steps-user                                          +49 B   (+0.0%)      +29 B   (+0.0%)
async-load-signup-steps-plans-theme-preselected                       +35 B   (+0.0%)       -7 B   (-0.0%)
async-load-signup-steps-plans                                         +35 B   (+0.0%)       -6 B   (-0.0%)
async-load-signup-steps-woocommerce-install-step-business-info        +34 B   (+0.0%)      +24 B   (+0.1%)
async-load-signup-steps-theme-selection                               +34 B   (+0.0%)      +21 B   (+0.0%)
async-load-quick-language-switcher                                    +34 B   (+0.0%)      +26 B   (+0.1%)
async-load-calypso-lib-account-settings-helper                        +34 B   (+0.0%)      +24 B   (+0.0%)
async-load-calypso-layout-command-palette                             +34 B   (+0.0%)      +23 B   (+0.0%)
async-load-calypso-blocks-jitm-templates-modal                        +34 B   (+0.1%)      +16 B   (+0.1%)
async-load-automattic-whats-new                                       +34 B   (+0.1%)      +20 B   (+0.2%)
async-load-signup-steps-social-profiles                               +15 B   (+0.0%)       +8 B   (+0.0%)
async-load-signup-steps-site-options                                  +15 B   (+0.0%)       +7 B   (+0.0%)
async-load-signup-steps-site                                          +15 B   (+0.0%)       +8 B   (+0.0%)
async-load-signup-steps-p2-site                                       +15 B   (+0.0%)       +7 B   (+0.0%)
async-load-signup-steps-p2-complete-profile                           +15 B   (+0.0%)       +7 B   (+0.0%)
async-load-calypso-layout-community-translator                        +15 B   (+0.1%)       +9 B   (+0.1%)

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.

@escapemanuele escapemanuele force-pushed the stepper-loading-progress branch from f3372f0 to adf6316 Compare February 4, 2025 10:35
@escapemanuele escapemanuele marked this pull request as ready for review February 4, 2025 18:30
@escapemanuele escapemanuele requested a review from a team as a code owner February 4, 2025 18:30
@matticbot matticbot added the [Status] Needs Review The PR is ready for review. This also triggers e2e canary tests and wp-desktop tests automatically. label Feb 4, 2025
@escapemanuele escapemanuele requested a review from a team February 4, 2025 18:35
@youknowriad
Copy link
Contributor

What would it take to move this component to a shared component. Should that be within @automattic/components ? elsewhere? Does it need to be Stepper specific for some reason?

@escapemanuele
Copy link
Contributor Author

@youknowriad, what you ask is right.
I reused the existing StepperLoader, as it already existed, and this PR wanted to unify the Processing step (inside Stepper) and Stepper loading screen.

And I didn't want to overcomplicate this. Maybe I could go on in the next PR, where I foresee unifying Checkout loading screen, and moving the loader to a shared component.
Or not, and do it here if it is the best thing to do.

<div className="stepper-loader">
<h1 className="stepper-loader__title processing-step__progress-step">{ title }</h1>
{ renderProgressComponent() }
{ subtitle && <p className="processing-step__subtitle">{ subtitle }</p> }
Copy link
Member

Choose a reason for hiding this comment

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

I've lost track a bit about how we add classes, but where are these coming from and why aren't they namespaced to stepper-loader?

Copy link
Member

Choose a reason for hiding this comment

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

That's a great question. We should change this. These come from the processing step in Stepper but it's not guaranteed to be loaded in all flows.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Totally right. It was a pre-existing class name taken from the Processing step. It is now stepper-loader__subtitle

Copy link
Member

@alshakero alshakero left a comment

Choose a reason for hiding this comment

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

Aesthetically, it look absolutely beautiful. Left code comments.

@@ -20,6 +18,7 @@
margin: 0;
}

.stepper-loader__progress-bar,
Copy link
Member

Choose a reason for hiding this comment

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

It would be better if we don't entangle the framework with the steps. Can we pass a class name to the progress bar from the processing step then stylize against that class?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Nice catch. I removed it because it was not used anymore!

@youknowriad
Copy link
Contributor

  • So when loading the onboarding page I was redirected to /setup/onboarding/goals. I refreshed the page to check the loaders, and I can see the "w" loader and then it's followed by the progress bar. I'm assuming this is expected as this PR could be just one step but I wanted to confirm.
  • I also noticed that /setup/onboarding/plans use another custom loader.

Now, I was thinking about something else, When validating a step, it seems there's always a small period of time when the next step is being loaded. We show the loader at that moment. I think it would be way more smooth if we find a way to preload the next step when the current step is visible. How possible would that be? I feel like these intermediary loaders are largely unnecessary and that there must be a way to avoid them entirely.

@escapemanuele
Copy link
Contributor Author

escapemanuele commented Feb 5, 2025

I appreciate the time spent here @youknowriad.

I refreshed the page to check the loaders, and I can see the "w" loader and then it's followed by the progress bar. I'm assuming this is expected as this PR could be just one step but I wanted to confirm.

Yes! That's the Calypso loading state. I have an issue to work on that after this and checkout work is done.

I also noticed that /setup/onboarding/plans use another custom loader.

Yes, we I see a spinner there. I'll add this to the list of things, thank you for pointing that out!

We show the loader at that moment. I think it would be way more smooth if we find a way to preload the next step when the current step is visible. How possible would that be?

Interesting. I'll put some thinking into this.

@youknowriad
Copy link
Contributor

A small thing I noticed (might be considered a follow-up similar to the other remarks) is that in addition to the progress bar the following step /setup/onboarding/designSetup?categories=newsletter%2Cblog&theme=strand has a moment where it's just an empty page without content and without any loader.

@youknowriad
Copy link
Contributor

Testing this PR and trying to compare it with trunk. For the moment, I wouldn't say that this PR makes a significant difference on the user experience. It still feels that there's too much loaders and too much inconsistencies. That said, I think that's probably understandable because this one seems to focus on one specific loader only.

I'm happy to move forward with this PR knowing that we'll tackle all the other inconsistencies in the follow-ups.

Copy link
Member

@alshakero alshakero left a comment

Choose a reason for hiding this comment

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

Found one tiny issue.

</div>
</div>
<>
<StepperLoader title={ __( 'Launching the AI Website Builder' ) } />
Copy link
Member

Choose a reason for hiding this comment

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

The loading bar will stay rendered when there is an error.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Addressed!

Comment on lines 15 to 22
progress = -1,
className,
} ) => {
return (
<div className={ clsx( 'stepper-loader', className ) }>
<h1 className="stepper-loader__title">{ title }</h1>
<ProgressBar
value={ progress >= 0 ? progress * 100 : undefined }
Copy link
Member

Choose a reason for hiding this comment

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

We should probably make the progress prop range from 0-100 and do the calculation on the consumer side. This way we can just do

Suggested change
progress = -1,
className,
} ) => {
return (
<div className={ clsx( 'stepper-loader', className ) }>
<h1 className="stepper-loader__title">{ title }</h1>
<ProgressBar
value={ progress >= 0 ? progress * 100 : undefined }
progress,
className,
} ) => {
return (
<div className={ clsx( 'stepper-loader', className ) }>
<h1 className="stepper-loader__title">{ title }</h1>
<ProgressBar
value={ progress }

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I updated the codebase to use setProgress with 0-100 in mind. But to have the indefinite loading (the bar that doesn't follow numbers but goes on indefinitely), we have to not pass a number to value, as

const isIndeterminate = ! Number.isFinite( value );

Any suggestion?

Copy link
Member

Choose a reason for hiding this comment

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

Now we're failing over to -1 when it's undefined, so if remove the -1, it will be undefined.

@alshakero
Copy link
Member

Now, I was thinking about something else, When validating a step, it seems there's always a small period of time when the next step is being loaded.

We do that, but the next step is a guess because Signup is not a series of consecutive steps and we sometimes Stepper guesses incorrectly.

@youknowriad
Copy link
Contributor

We do that, but the next step is a guess because Signup is not a series of consecutive steps and we sometimes Stepper guesses incorrectly.

Can we pre-load all possibilities? Anyway, don't want to derail too much the conversation here but maybe there are options to explore separately here.

@alshakero
Copy link
Member

alshakero commented Feb 5, 2025

Can we pre-load all possibilities?

That's what we did before. We preloaded all the steps once the site info was loaded. But turns out preloading too much is a net negative. Maybe we should preload the two most likely steps, that should cover 90% of the cases.

@escapemanuele
Copy link
Contributor Author

the following step /setup/onboarding/designSetup?categories=newsletter%2Cblog&theme=strand has a moment where it's just an empty page without content and without any loader.

This may be due to how the designSetup step works, I see the same happens in production. Created an issue to work on that.

I wouldn't say that this PR makes a significant difference on the user experience

I believe it makes some difference to slower devices, but to normal users with fast internet it will probably not change much. That said, I find this also is a good starting point for the unification and sharing of Loading components. With the next PRs it will become better and better.

@matticbot
Copy link
Contributor

This PR modifies the release build for the following Calypso Apps:

For info about this notification, see here: PCYsg-OT6-p2

  • notifications
  • wpcom-block-editor

To test WordPress.com changes, run install-plugin.sh $pluginSlug stepper-loading-progress on your sandbox.

@alshakero
Copy link
Member

This may be due to how the designSetup step works, I see the same happens in production. Created an #99353 to work on that.

Yes, IIRC, the design step has some async logic of its own.

Copy link
Member

@alshakero alshakero left a comment

Choose a reason for hiding this comment

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

Code shaped up and everything works as expected.

@alshakero
Copy link
Member

Preloading improvements are ready for review #99352

@alshakero
Copy link
Member

Hi @Automattic/serenity! This PR touched on site-migration-plugin a fair bit. Can someone smoke test the flow 🙏🏼

@escapemanuele escapemanuele merged commit d13b159 into trunk Feb 6, 2025
13 checks passed
@escapemanuele escapemanuele deleted the stepper-loading-progress branch February 6, 2025 11:34
@github-actions github-actions bot removed the [Status] Needs Review The PR is ready for review. This also triggers e2e canary tests and wp-desktop tests automatically. label Feb 6, 2025
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.

Stepper: Update loading page with ProgressBar
5 participants