App: [HOLD for payment 2024-04-25] [$500] Remove `Save the World` from Global Create, and move it into Settings

Problem

Global create is designed to call out quick actions to use New Expensify, whether its creating an expense or starting a chat. It’s prime real estate for users to understand how to use our platform. Save the World is a unique campaign to help increase adoption, but it’s not usable for everyone (especially those who don’t know teachers). For that reason, it causes confusion and distraction from everything else in global create.

Solution

  1. Remove Save The World from Global Create
image
  1. Move Save The World over to Account Settings (by selecting the avatar) > Under the General section underneath About and Help. See below:
image

Notes:

  • We’ll want to confirm with design with icon we want to use
  • We’ll want to confirm the same RHP (right-hand pane) signup flow still works when it’s selected. When someone clicks the new Save the World button, it’ll take them to https://new.expensify.com/teachersunite while alsp sparning the RHP signup flow: See below for what the RHP looks like:
image
Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~01ac6974700a830749
  • Upwork Job ID: 1758271776871825408
  • Last Price Increase: 2024-02-15
  • Automatic offers:
    • Ollyws | Reviewer | 0
    • Amarparab2024 | Contributor | 0
Issue OwnerCurrent Issue Owner: @Amarparab2024

About this issue

  • Original URL
  • State: closed
  • Created 5 months ago
  • Comments: 86 (66 by maintainers)

Most upvoted comments

I agree with what Danny has mocked up. That’s the new standard we have for all of our settings pages, so we should 100% go with that.

@Ollyws Let’s implement the https://new.expensify.com/settings/teachersunite route and we can add 301 reditect from https://new.expensify.com/teachersunite to https://new.expensify.com/settings/teachersunite to catch anyone coming from old links

We waited on whether we should delete /teachersunite route or redirect it and how the redirect logic should be, the PR is currently waiting on this question, otherwise it has been completed

Thanks you’re the best @dannymcclain 🔫

Will update it in the code accordingly

Thanks @shawnborton , I had literally spend an hour looking for that illustration 😅

I think we should leave it alone/keep it.

Works for me!

You should be able to find that illustration in the Web-Static repo

I think that repo is internal only. That being said, you can just link to it like so: https://d2k5nsl2zxldvw.cloudfront.net/images/illustrations/simple-illustration__handheart.svg

Yeah, I understand the original description stated one expected solution, but from a UI perspective, it was not the correct one. @badeggg made a good observation about it, and that’s why we asked the design team to corroborate. From my perspective, I think it’s fair because your proposal was selected based on the description, but again, that doesn’t mean it was the correct one for the product.

That’s where I’m at. I tried to think of some when I initially did the mock but was struggling so I decided to leave them out. But I would love for them to have icons lol.

Just chiming in that, I agree. I think it’ll be hard to find appropriate icons. I don’t mind them without icons though

Will come up with a PR by thursday 😃

I personally think the screenshot you linked here is good. I think we want keep the existing RHP in place no matter what

Proposal

Please re-state the problem that we are trying to solve in this issue.

Remove Save the World from Global Create, and move it into Settings

What is the root cause of that problem?

new feature request

What changes do you think we should make in order to solve the problem?

I don’t think it’s complete to simply move the place of link button. The ‘save the world’ page is not consistent with other account settings page.

  1. (like other proposals say) Delete https://github.com/Expensify/App/blob/d28f86fbeed6f81c3d95e64653ff466cc865566c/src/pages/home/sidebar/SidebarScreen/FloatingActionButtonAndPopover.js#L188-L192 add similar config
                {
                   translationKey: 'sidebarScreen.saveTheWorld',
                   icon: Expensicons.Heart,
                   routeName: ROUTES.SETTINGS_SAVE_THE_WORLD,
                   action: () => {
                       interceptAnonymousUser(
                           waitForNavigate(() => {
                               Navigation.navigate(ROUTES.SETTINGS_SAVE_THE_WORLD);
                           })
                       );
                   },
               },

below code https://github.com/Expensify/App/blob/d28f86fbeed6f81c3d95e64653ff466cc865566c/src/pages/settings/InitialSettingsPage.js#L231-L235

  1. Change file src/pages/TeachersUnite/SaveTheWorldPage.tsx to make it’s layout align with other account settings items. The code change is too large to fit in this proposal, although it’s not difficult. The result looks like: image The icon need redesign, I demo it with PalmTree, which is used in ‘about’ setting page.

  2. Other small code changes to coordinate the main change. e.g. add

        [SCREENS.SETTINGS.SAVE_THE_WORLD]: () => require('../../../pages/TeachersUnite/SaveTheWorldPage').default as React.ComponentType,

below https://github.com/Expensify/App/blob/d28f86fbeed6f81c3d95e64653ff466cc865566c/src/libs/Navigation/AppNavigator/ModalStackNavigators.tsx#L196

What alternative solutions did you explore? (Optional)

N/A

Proposal

Please re-state the problem that we are trying to solve in this issue.

Remove Save the World from Global Create, and move it into Settings

What is the root cause of that problem?

New request

What changes do you think we should make in order to solve the problem?

We must remove the save the world part from below:

https://github.com/Expensify/App/blob/6fb924e9f8f8adc80d3eda2153da5e2f2d409009/src/pages/home/sidebar/SidebarScreen/FloatingActionButtonAndPopover.js#L188-L192

And then move it under settings just below about over here:

https://github.com/Expensify/App/blob/6fb924e9f8f8adc80d3eda2153da5e2f2d409009/src/pages/settings/InitialSettingsPage.js#L231-L235

What alternative solutions did you explore? (Optional)

N/A