Skip to content

task(settings): Full production rollout of react email-first#18747

Merged
vpomerleau merged 1 commit intomainfrom
FXA-11221-fullProd
May 1, 2025
Merged

task(settings): Full production rollout of react email-first#18747
vpomerleau merged 1 commit intomainfrom
FXA-11221-fullProd

Conversation

@vpomerleau
Copy link
Copy Markdown
Contributor

@vpomerleau vpomerleau commented Apr 22, 2025

Because

  • We want to route all traffic to the react app version of the email-first pages

This pull request

  • remove these pages from the experiment
  • Set fullProdRollout to true for email first routes
  • Update navigation to stay in react app (no hard navigation)
  • Clearly name all uses of the useNavigateWithQuery to make it clearer that params will persist (no renaming to useNavigate/navigate)
  • Update webChannel on react app start check to only send (and wait for) message if the browser is Firefox/Firefox iOS
  • Resolve inconsistent suggested account if signed in to browser and a different account on web at the same time
  • Update tests

Issue that this pull request solves

Closes: FXA-11221

Checklist

Put an x in the boxes that apply

  • My commit is GPG signed.
  • If applicable, I have modified or added tests which pass locally.
  • I have added necessary documentation (if appropriate).
  • I have verified that my changes render correctly in RTL (if appropriate).

Screenshots (Optional)

Please attach the screenshots of the changes made in case of change in user interface.

Other information (Optional)

Note to reviewers: Recommend restarting the app locally with these updates and doing some exploratory testing with dev launcher

@vpomerleau vpomerleau force-pushed the FXA-11221-fullProd branch 3 times, most recently from 555d85b to fd56adc Compare April 28, 2025 15:39
@vpomerleau vpomerleau marked this pull request as ready for review April 28, 2025 16:46
@vpomerleau vpomerleau requested a review from a team as a code owner April 28, 2025 16:46
@vpomerleau vpomerleau changed the title WIP task(settings): Full production rollout of react email-first task(settings): Full production rollout of react email-first Apr 28, 2025
Comment thread packages/functional-tests/pages/signin.ts
Comment thread packages/fxa-content-server/server/config/local.json-dist
const isFirefox = /firefox/i.test(ua) || /FxiOS/i.test(ua);

let userFromBrowser;
if (isFirefox) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'm a little confused by this... is it in this PR because we cannot have it before the full react email-first rollout?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This can be separated from this PR, I'll issue it separately.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Feel free to leave it. I was confused in the literal sense; I was not able to make the connection between the full rollout and that.

Do we need to call this out for QA at all? Or is it going to be part of their tests anyway?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

These changes could be done separately (and there is a separate ticket - https://mozilla-hub.atlassian.net/browse/FXA-11520), but I'd ended up pulling them in because the changes were needed to get the tests working for full prod rollout.

One bit of the other Jira issue that is not covered here is checking if the environment matches before sending up a webchannel message (e.g., webchannel fails if running localhost without the dev launcher) - I'm not sure if that's fully needed. If there's a mismatch, there would just be a short delay (and warning in console) when loading the app but no error. What do you think?

Good callout about qa, I'll label the ticket qa+ and will add some notes for QA.


if (userFromBrowser && userFromBrowser.sessionToken) {
const ua = navigator.userAgent;
const isFirefox = /firefox/i.test(ua) || /FxiOS/i.test(ua);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I don't think the match needs to be case insensitive. And I think string.includes should work.

const metricsEnabled = useMemo(() => {
if (metricsLoading || !integration || isSignedIn === undefined) {
return;
return undefined;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there an advantage in making the undefined explicit here?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Not really, I'll revert this bit

Copy link
Copy Markdown
Contributor

@chenba chenba left a comment

Choose a reason for hiding this comment

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

Let's Roll

@vpomerleau vpomerleau force-pushed the FXA-11221-fullProd branch 2 times, most recently from ea125de to fac2ec2 Compare April 30, 2025 19:09
Because:

* We want to route all traffic to the react app version of the email-first pages

This commit:

* remove these pages from the experiment
* Set fullProdRollout to true for email first routes
* Update navigation to stay in react app (no hard navigation)
* Update tests

Closes #FXA-11221
@vpomerleau vpomerleau force-pushed the FXA-11221-fullProd branch from fac2ec2 to 96efced Compare May 1, 2025 19:38
@vpomerleau vpomerleau merged commit 43d58c3 into main May 1, 2025
21 checks passed
@vpomerleau vpomerleau deleted the FXA-11221-fullProd branch May 1, 2025 21:14
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.

2 participants