Skip to content

Update content area of login screens to use StepContainerV2 #102811

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

Merged
merged 23 commits into from
May 14, 2025

Conversation

tellthemachines
Copy link
Contributor

@tellthemachines tellthemachines commented Apr 24, 2025

Related to #102039

Proposed Changes

  • Updates the login screens using isWhiteLogin design to make use of the Step.CenteredColumnLayout wireframe, including rendering titles with Step.Heading.

  • Removes Gravatar and GravPoweredClient login screens from isWhiteLogin condition (they were already overriding most of the styles anyway)

  • Re-adds WP Cloud logo to the WP Cloud login page which also uses isWhiteLogin, and which I missed in Update wp.com login screen designs [WIP] #102353 😅

  • In order to separate isWhiteLogin screens from all the other login screens using the same component, I extracted the header rendering logic into its own file, and further extracted the header text logic into its own function, so that we can use the header text for isWhiteLogin screens, and still render all the extra pre- and post-header bits and pieces for all the other screens.

Testing Instructions

Affects the following screens:

Content for "log in with existing account" should match the following design:

Screenshot 2025-04-24 at 1 44 17 pm

We're not quite there yet, mainly due to the notice used. Current state of this PR is:

Screenshot 2025-05-01 at 2 47 38 pm

There's also an additional notice that sometimes pops up about using different languages:

Screenshot 2025-05-01 at 2 48 32 pm

@fcoveram how should we deal with this other notice?

Also, should the existing account notice be using the WP component instead of the Calypso one?

Other affected screens

Screenshot 2025-05-01 at 2 47 55 pm Screenshot 2025-05-01 at 2 59 35 pm Screenshot 2025-05-01 at 2 59 51 pm

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 UI changes, have we tested the change in various languages (for example, ES, PT, FR, or DE)? The length of text and words vary significantly between languages.
  • 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)?

@tellthemachines tellthemachines self-assigned this Apr 24, 2025
Copy link

github-actions bot commented Apr 24, 2025

@matticbot
Copy link
Contributor

matticbot commented Apr 24, 2025

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

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

name                    parsed_size           gzip_size
entry-login                 +7499 B  (+0.3%)    +1173 B  (+0.2%)
entry-stepper               -2082 B  (-0.1%)     -166 B  (-0.0%)
entry-domains-landing         +65 B  (+0.0%)      -64 B  (-0.0%)
entry-dashboard-dotcom        +65 B  (+0.0%)      -64 B  (-0.0%)
entry-dashboard-a4a           +65 B  (+0.0%)      -64 B  (-0.0%)
entry-browsehappy             +65 B  (+0.0%)      -64 B  (-0.1%)
entry-subscriptions           +15 B  (+0.0%)      -75 B  (-0.0%)

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

Sections (~3096 bytes added 📈 [gzipped])

name                        parsed_size           gzip_size
async-step-use-my-domain         -349 B  (-0.1%)     -473 B  (-0.3%)
stepper-user-step                -196 B  (-0.0%)     -705 B  (-0.4%)
jetpack-connect                  +171 B  (+0.0%)     -240 B  (-0.1%)
site-setup-flow                   -50 B  (-0.0%)      -16 B  (-0.0%)
new-hosted-site-flow              -50 B  (-0.0%)      -16 B  (-0.0%)
hundred-year-plan                 -50 B  (-0.0%)      -16 B  (-0.0%)
hundred-year-domain               -50 B  (-0.0%)      -16 B  (-0.0%)
connect-domain                    -50 B  (-0.0%)      -16 B  (-0.0%)
async-step-unified-plans          -50 B  (-0.0%)      -16 B  (-0.0%)
async-step-unified-domains        -50 B  (-0.0%)      -16 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 (~256 bytes removed 📉 [gzipped])

name                                       parsed_size           gzip_size
async-load-design-blocks                        +171 B  (+0.0%)     -240 B  (-0.0%)
async-load-automattic-help-center-stepper        -50 B  (-0.0%)      -16 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.

@tellthemachines tellthemachines force-pushed the update/login-screens-content branch 4 times, most recently from de6c963 to 3db8cc9 Compare May 1, 2025 02:56
@@ -360,23 +359,6 @@ export class LoginForm extends Component {
}
}

renderLoginFromSignupNotice() {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Moving this notice outside of the form so we can render it just below the page heading.

>
{ this.renderI18nSuggestions() }

<DocumentHead
Copy link
Contributor Author

Choose a reason for hiding this comment

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

It feels super weird to have this DocumentHead inside the Main component but I'm guessing removing it would require a much larger refactor 😅

Copy link
Contributor

Choose a reason for hiding this comment

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

Why exactly? The only dependency of it is the canonicalUrl, which is defined right above the component.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Because JSX is supposed to emulate markup, and in HTML you'd never have the document head inside the main content. The code may work correctly, but it feels horribly unsemantic.

Copy link
Contributor

Choose a reason for hiding this comment

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

Not trying to speak on behalf of Luis, but I feel the question may have been "why is it a large refactor?".

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oh! I noticed we're using DocumentHead like this in many places, so if we decided to move it somewhere where it makes more sense semantically we should probably be consistent and do it for all instances.

Copy link
Member

Choose a reason for hiding this comment

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

For what is worth, Next.js also has a Head component that does exactly the same thing: set something in the <head> element.

Doing it with the proper nesting and "semantically" is probably outright impossible, because React apps never control the entire HTML document, they are always mounted in some sub-element of <body>.

Copy link
Member

Choose a reason for hiding this comment

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

React 19 does support all the metadata tags dropped anywhere in your component tree, so hopefully at some point we'll be able to migrate to it 🤞

}
heading={ <Step.Heading text={ headerText } /> }
>
{ mainContent }
Copy link
Contributor Author

Choose a reason for hiding this comment

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

We could further break down this mainContent to use StepContainer wrappers but that will require taking apart more bits of LoginBlock. It might be better left to a follow-up PR because this diff is already pretty big.

(I'm not 100% sure we need to have a LoginBlock component, because they're both looking at similar conditions to render things. There's no real separation of concerns.)

@tellthemachines tellthemachines requested review from fcoveram, zaguiini and a team May 1, 2025 05:28
@matticbot matticbot added [Status] Needs Review The PR is ready for review. This also triggers e2e canary tests and wp-desktop tests automatically. labels May 1, 2025
@tellthemachines tellthemachines added [Status] Needs Design Review Add this when you'd like to get a review / feedback from the Design team on your PR and removed [Status] Needs Review The PR is ready for review. This also triggers e2e canary tests and wp-desktop tests automatically. labels May 1, 2025
@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 May 1, 2025
@tellthemachines tellthemachines marked this pull request as ready for review May 1, 2025 05:28
@github-actions github-actions bot added the [Status] Design Input Requested Label automatically added to PRs where design feedback is requested label May 1, 2025
@tellthemachines
Copy link
Contributor Author

Note there are a bunch of other screens using the same Login components that should not be affected by these changes. These are the ones I have unearthed so far:

Gravatar

Screenshot 2025-05-01 at 3 30 57 pm

Gravatar-powered WP Job Manager:

Screenshot 2025-05-01 at 3 31 36 pm

Jetpack:

Screenshot 2025-05-01 at 3 32 16 pm

Blaze Pro:

Screenshot 2025-05-01 at 3 32 08 pm

Woo:

Screenshot 2025-05-01 at 3 32 37 pm

(The last two are pretty similar to the isWhiteLogin screens but they aren't using that logic)

@fcoveram
Copy link

fcoveram commented May 1, 2025

I don’t know how to run the PR in my local, but when I clicked on the calypso live link, I was able to land on the login page (https://container-agitated-matsumoto.calypso.live/log-in ). There, I noticed a few things.

The 6-cols container has a side padding that shrinks the area where actions are.

CleanShot 2025-05-01 at 10 32 39@2x

On the smallest breakpoints, the spacing breaks the alignment.

When changing the viewport from 480px to 479px there is a layout change that makes the actions smaller, I wonder if that also happens in other screens that stack buttons.

CleanShot.2025-05-01.at.11.04.42.mp4

The whole content area is not vertically aligned to balance the top and bottom spaces according to the browser window, leaving an empty space at the bottom.

CleanShot 2025-05-01 at 10 43 39@2x

I acknowledge the PR scope is not about copy change, yet I want to point out the different in

  • ToS and Privacy text. It's different than the mockup.
  • Input title. It should follow the sentence case logic.

Regarding your questions

how should we deal with this other (language change) notice?

Pinging @crisbusquets and @nuriapenya in case they know about an strategy for dealing with language change call outs. I remember seeing some tickets mentioning a general revision, but I'm unaware of the outcome.

…should the existing account notice be using the WP component instead of the Calypso one?

We're working on a new Notice component (dhW7zYBamXJIeJIE3wy5f4-fi-111_840), and on this thread (p1742928013644859/1742810438.892249-slack-CNGQYA3B9), there is an agreement to use an updated version of the Calypso component. But I'm unaware of the code state and the next steps.

Copy link
Contributor

@zaguiini zaguiini left a comment

Choose a reason for hiding this comment

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

I'll return to this later for a deeper review, but I'm asking for changes because introducing StepContainer overrides is the root of all evil, and I don't want it to happen again. 😅

@zaguiini zaguiini dismissed their stale review May 2, 2025 03:15

We're not overriding StepContainerV2 anymore!

@tellthemachines
Copy link
Contributor Author

Thanks for the reviews folks! I think I've addressed all the feedback so far.

When changing the viewport from 480px to 479px there is a layout change that makes the actions smaller, I wonder if that also happens in other screens that stack buttons.

This only happens on isWhiteLogin screens (so the ones affected by this PR, not the ones that I listed above as unchanged). The rules that do it are here. How do you reckon we should improve this?

@fcoveram
Copy link

fcoveram commented May 2, 2025

This only happens on isWhiteLogin screens (so the ones affected by this PR, not the ones that I listed above as unchanged). The rules that do it are here. How do you reckon we should improve this?

So if it's a rule for the whole form area, how is that at 482px the input and actions are full width? I don't want us to hack the max-width best practice, but I think that from 599px to the smallest, the sizes should be the same.

Copy link
Contributor

@zaguiini zaguiini left a comment

Choose a reason for hiding this comment

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

I'm noticing some things:

  1. I see the login form blink upon refresh (not happening in prod)
  2. It's not centered aligned on load. There's a layout shift
  3. I don't see the subheader text anymore. Is that expected? We have it in prod.
  4. Then I see a massive blank space between my user action and the change account escape hatch
  5. Finally, the page scrolls when it shouldn't
Registrazione.schermo.2025-05-02.alle.9.34.29.AM.mov

That layout shift happens even when entering the page as a guest:

Registrazione.schermo.2025-05-02.alle.9.38.01.AM.mov

Other than that, it's looking almost perfect. Some style comments:

  1. Depending on the screen size, there's some extra margin between the border and the UI elements. Can we make that consistent? By that, I mean always stretch it starting from the mobile breakpoint.
  2. The "Lost your password?" link has different styles compared to the "Create an account" one. It would be awesome if we could standardize that too.
Registrazione.schermo.2025-05-02.alle.10.17.27.AM.mov

Helpers

Login form blink

I managed to reproduce it both locally and on Calypso.live. This is caused by SSR, which as you'll read below, doesn't seem to be enabled in production? I don't know.

Layout shift

This is happening because the CenteredColumnLayout wireframes uses the context.isSmallViewport variable, which is false on SSR (after all, there is no viewport on the server), and we get the wireframe rendering its content at the top. This is very unfortunate 😅

When I enter production, I don't see the SSR part. There's no data-calypso-ssr="true" in div#wpcom. That's kind of weird. Maybe it's not using it in production? Or is it so fast I can't even notice it? 🤷🏻

Anyway... Luckily, the solution is straightforward (if we actually want to change it.) We'll need to delegate the decision of rendering the content at the center of the screen to the CSS realm instead of JS:

diff --git a/packages/onboarding/src/step-container-v2/components/ContentWrapper/style.scss b/packages/onboarding/src/step-container-v2/components/ContentWrapper/style.scss
index 5165e62bddf..52bfa8cf3f7 100644
--- a/packages/onboarding/src/step-container-v2/components/ContentWrapper/style.scss
+++ b/packages/onboarding/src/step-container-v2/components/ContentWrapper/style.scss
@@ -32,9 +32,11 @@
 	);
 
 	&.center-aligned {
-		justify-content: center;
-		padding-bottom: calc(
-			var( --step-container-v2-content-block-padding ) + var( --step-container-v2-top-bar-height )
-		);
+		@include break-small {
+			justify-content: center;
+			padding-bottom: calc(
+				var( --step-container-v2-content-block-padding ) + var( --step-container-v2-top-bar-height )
+			);
+		}
 	}
 }
diff --git a/packages/onboarding/src/step-container-v2/wireframes/CenteredColumnLayout/CenteredColumnLayout.tsx b/packages/onboarding/src/step-container-v2/wireframes/CenteredColumnLayout/CenteredColumnLayout.tsx
index d4d29a6167a..e676dd7e1ab 100644
--- a/packages/onboarding/src/step-container-v2/wireframes/CenteredColumnLayout/CenteredColumnLayout.tsx
+++ b/packages/onboarding/src/step-container-v2/wireframes/CenteredColumnLayout/CenteredColumnLayout.tsx
@@ -33,7 +33,7 @@ export const CenteredColumnLayout = ( {
 				return (
 					<>
 						<TopBarRenderer topBar={ topBar } />
-						<ContentWrapper centerAligned={ context.isSmallViewport && verticalAlign === 'center' }>
+						<ContentWrapper centerAligned={ verticalAlign === 'center' }>
 							{ heading && <ContentRow columns={ 6 }>{ heading }</ContentRow> }
 							<ContentRow columns={ columnWidth } className={ className }>
 								{ content }

Even with that, there's a small layout shift (restart the Calypso server for these changes to take effect since it's SSR), but I think it's caused by...

Page scroll fixer

The page scroll can be addressed by removing the padding-bottom and min-height from .layout.is-section-login.

Massive blank space in the "continue as user" block

Can be removed by setting height: auto and margin: 0 auto in .continue-as-user.

>
{ this.renderI18nSuggestions() }

<DocumentHead
Copy link
Contributor

Choose a reason for hiding this comment

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

Why exactly? The only dependency of it is the canonicalUrl, which is defined right above the component.

@tellthemachines tellthemachines force-pushed the update/login-screens-content branch from 6bef736 to 4c4fda0 Compare May 5, 2025 01:00
@a8ci18n
Copy link

a8ci18n commented May 13, 2025

Translation for this Pull Request has now been finished.

Copy link
Member

@andrewserong andrewserong left a comment

Choose a reason for hiding this comment

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

This is still testing well for me, and I like that the refactor splits out getHeaderText from the LoginHeader, and that the LoginHeader is extracted from Login. These feel like good steps forward to me 👍. getHeaderText's signature is pretty long and I could imagine it being easy to accidentally make a mistake on ordering of the params. Not a blocking comment, but if we were going to use this function in additional places, I'd suggest using an object as a param so that we don't need to worry about the positioning of the params.

I haven't been able to find any issues with each of the different logins I've attempted with this PR checked out, though it's very hard to be sure that I've covered everything, but from my perspective I think this change is looking pretty good to land. And we've certainly been covering the main known use cases a lot in our testing (WP.com, Woo, Jetpack, WPCloud, A4A, etc).

@jsnajdr I see you've been reviewing this PR — are you still looking through it, or do you think it's okay to ship? I'm aware it looks like there've been other discussions about ideas for how to improve the login code, so wasn't sure where this sits in priorities. IMO it'd be nice to get the design improvements from this PR in.

What we should do is to offer just a handful of focused customization points: color, logo, header text and font. The rest of the UI would be unified. That's something that's possible to maintain and test.

That does like a good idea for the long-term to me!

@tellthemachines
Copy link
Contributor Author

getHeaderText's signature is pretty long and I could imagine it being easy to accidentally make a mistake on ordering of the params. Not a blocking comment, but if we were going to use this function in additional places, I'd suggest using an object as a param

The intention is not to make it reusable 😅 as this header text is very specific to its context. I only extracted the function so I could keep that horrible pile of conditions unchanged while applying it both to the redesigned (isWhiteLogin) login screens and all the other ones (which require extra markup that LoginHeader provides). Ideally we'll work to simplify the conditions in follow ups so that function becomes less gnarly.

This PR has been going on for a while and I think it's in a pretty stable state now, so if no one is opposed I'm going to go ahead and merge it within the next few hours. Otherwise the chance of further merge conflicts is high and it's becoming a bit of a time sink.

Copy link
Member

@andrewserong andrewserong left a comment

Choose a reason for hiding this comment

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

Just re-tested, and I think there's one more area of styling that needs resolving. When I log in with an account that uses 2FA, the screen after submitting my username and passwords has alignment that's a bit off:

image

It looks similar to the margin: 0 issue we were looking at earlier?

image

@tellthemachines
Copy link
Contributor Author

When I log in with an account that uses 2FA, the screen after submitting my username and passwords has alignment that's a bit off:

Oh weird, I was sure I'd tested that. Thanks for spotting it!

@tellthemachines
Copy link
Contributor Author

Ok I've fixed the margins on the 2fa screen, but I'm not really happy with the fix as I had to leverage the is-social-first classname attached to the form element. The problem with this is that the 2fa screen also technically falls under the isSocialFirst umbrella (it has the classname on its main element), though the fix works because it renders a different form element from the other screens, which doesn't have that class.

I opted for this because I don't want to further complicate and increase testing scope for this PR. I hope to follow up with another PR to untangle isSocialFirst.

@tellthemachines tellthemachines merged commit 7097c24 into trunk May 14, 2025
14 checks passed
@tellthemachines tellthemachines deleted the update/login-screens-content branch May 14, 2025 04:28
@github-actions github-actions bot removed [Status] String Freeze Add the [Status] String Freeze label to your PR to ensure new strings are translated before merging [Status] Design Input Requested Label automatically added to PRs where design feedback is requested [Status] Needs Design Review Add this when you'd like to get a review / feedback from the Design team on your PR [Status] Needs Review The PR is ready for review. This also triggers e2e canary tests and wp-desktop tests automatically. labels May 14, 2025
@jsnajdr
Copy link
Member

jsnajdr commented May 14, 2025

Could you please save any further cleanup until after this PR is merged? Merge conflicts aren't fun to deal with.

@tellthemachines Oh, I apologize for being so unhelpful while attempting to be helpful 🙁

I see you've been reviewing this PR — are you still looking through it, or do you think it's okay to ship?

@andrewserong I got to review it again only now, after merge. Given that the login page is such a monster, it's really hard to determine if such a big change is OK to ship. I'm afraid we'll need to do a few post-merge fixes as problems are discovered.

Here's the first one: the Woo Core Profiler Lost Password Flow (whatever that is 🙂) is broken. Go to:

https://wordpress.com/log-in?from=woocommerce-onboarding&lostpassword_flow=true

both logged in and logged out. The logged out page is broken in this way:
Screenshot 2025-05-14 at 8 59 17

There's a WooCoreProfilerMasterbar component conflicting with the WordPress.com logo header. Also there should be a different heading, with an explanatory text below. This is the version before this PR:

Screenshot 2025-05-14 at 9 16 15

The logged-in version, with ContinueAsUser, is broken in a similar way: double header, wrong heading.

Screenshot 2025-05-14 at 9 00 13

Additionally, the ContinueAsUser UI is broken, with cut "Continue" button and displaced "Not you" text. But interestingly this i a pre-existing bug, this part was already broken.

Copy link
Member

@jsnajdr jsnajdr left a comment

Choose a reason for hiding this comment

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

We have one more trouble with the isWhiteLogin value: it's assigned at several places: login controller, logged-out layout (masterbar display is determined there), and each time the condition is a bit different 🤦

);
}
}
} else if ( isWooJPC ) {
Copy link
Member

Choose a reason for hiding this comment

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

When the flow is isWooJPC then isWhiteLogin is false and this LoginHeader component is not even rendered. That's one reason why this flow (including "lost password") has incorrect header and sub-header.

const isLostPasswordFlow = currentQuery.lostpassword_flow === 'true';
switch ( true ) {
case isLostPasswordFlow:
headerText = translate( "You've got mail" );
Copy link
Member

Choose a reason for hiding this comment

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

There are missing break statements in this switch. The isLostPasswordFlow condition falls through to the following condtions and the headerText is overwritten.

Personally I would rewrite these switch ( true ) statements to a regular if ... else if ... else.

@jsnajdr
Copy link
Member

jsnajdr commented May 14, 2025

One more broken page, again the WooJPC flow. Double masterbar, and misaligned icons on the social login buttons:

Screenshot 2025-05-14 at 13 53 31

@tellthemachines
Copy link
Contributor Author

Thanks for reviewing and testing @jsnajdr! I suspect those Woo screens have been broken since #102353, when I updated isWhiteLogin screens to use Step.TopBar 😬 The only real changes I made to isWhiteLogin in this PR were to remove Gravatar from the condition, so I'm guessing the Woo screens were already included in the condition back then.

Question: how did you get to those screens? If I go to woo.com and try to login from there, I get different layouts from those (which are displaying correctly, because I knew to test them 😅 ) but it looks like those screens are reached by a different path?

Given that the login page is such a monster, it's really hard to determine if such a big change is OK to ship. I'm afraid we'll need to do a few post-merge fixes as problems are discovered.

This was absolutely what I was expecting when I merged the PR! Given it had been open for 3 weeks and had a substantial amount of testing I was fairly sure nothing major was broken, but any large change to a piece of spaghetti like this is bound to break something. I'll follow up with some fixes 😄

@jsnajdr
Copy link
Member

jsnajdr commented May 15, 2025

Question: how did you get to those screens?

I was reading the code, inspected the various conditions and then tried to reconstruct the actual URL to match that condition. I didn't test the full flows that start somewhere on woocommerce.com or inside a self-hosted site's WP Admin.

With that approach, it's possible that some URLs don't really exist in practice. For example, it's possible that the real flow sends you to /log-in/jetpack?from=woocommerce-core-profiler and never to /log-in?from=woocommerce-core-profiler. The combination "no Jetpack + Woo Core" doesn't occur in real use and yet we might be testing and fixing it.

@adamwoodnz
Copy link
Contributor

I'm not 100% sure it's related to this PR but I discovered an issue on the Blaze Pro 2FA screen where the logos are clashing in the header:

wordpress com_log-in_lostpassword_redirect_to=https%3A%2F%2Fpublic-api wordpress com%2Foauth2%2Fauthorize%3Fresponse_type%3Dcode%26client_id%3D99370%26state%3D6e545c7a9932a0a612817faa07992930afae8229e4b11a219e9db95944038cb9%26redirect_u (2)

@andrewserong
Copy link
Member

andrewserong commented May 20, 2025

Good catch @adamwoodnz! @tellthemachines won't be around for the next few weeks, but I'm happy to try to help out here where I can. I've opened up #103537 with a tentative fix for the Blaze Pro 2FA screen, though I'm not 100% sure if it's the right way to go about it. As far as I can tell that screen's layout has been a bit broken for a while (possibly longer than this PR landing)

That PR seems to be working okay for me so far, but might need a bit of extra testing to confirm. I can continue looking at that tomorrow!

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.

10 participants