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

[$500] Opens report instead of LHN on Native apps for new users when invited to a workspace #29207

Closed
2 of 6 tasks
m-natarajan opened this issue Oct 10, 2023 · 74 comments
Closed
2 of 6 tasks
Assignees
Labels
Bug Something is broken. Auto assigns a BugZero manager. Daily KSv2 External Added to denote the issue can be worked on by a contributor

Comments

@m-natarajan
Copy link

m-natarajan commented Oct 10, 2023

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


Version Number: 1.3.80-3
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @c3024
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1696954351917789

Action Performed:

  1. Create a workspace from User A
  2. Invite a User B who is not an Expensify member yet to this workspace
  3. Login with User B (the new user who does not have an Expensify account yet) from iOS or Android app

Expected Result:

LHN should open on the app

Actual Result:

The workspace chat opens on the app

Workaround:

Unknown

Platforms:

Which of our officially supported platforms is this issue occurring on?

  • Android: Native
  • Android: mWeb Chrome
  • iOS: Native
  • iOS: mWeb Safari
  • MacOS: Chrome / Safari
  • MacOS: Desktop

Screenshots/Videos

Android: Native
AndroidUnavailableWorkspace.mp4
Android: mWeb Chrome
AndroidUnavailableWorkspace.1.mp4
iOS: Native
rpreplay-final1696953027_Rdb3DKBX.mp4
iOS: mWeb Safari
iossafari_tlxmIu3D.mp4
MacOS: Chrome / Safari
web_NrW4jzHh.mp4
new.user.mp4
MacOS: Desktop
desktop.1.mov

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~0174b94be9389d33ad
  • Upwork Job ID: 1711788460798902272
  • Last Price Increase: 2024-03-13
  • Automatic offers:
    • dukenv0307 | Contributor | 0
@m-natarajan m-natarajan added the External Added to denote the issue can be worked on by a contributor label Oct 10, 2023
@melvin-bot melvin-bot bot changed the title Opens report instead of LHN on Native apps for new users when invited to a workspace [$500] Opens report instead of LHN on Native apps for new users when invited to a workspace Oct 10, 2023
@melvin-bot
Copy link

melvin-bot bot commented Oct 10, 2023

Job added to Upwork: https://www.upwork.com/jobs/~0174b94be9389d33ad

@melvin-bot melvin-bot bot added the Help Wanted Apply this label when an issue is open to proposals by contributors label Oct 10, 2023
@melvin-bot
Copy link

melvin-bot bot commented Oct 10, 2023

Triggered auto assignment to Contributor-plus team member for initial proposal review - @0xmiroslav (External)

@melvin-bot melvin-bot bot added the Daily KSv2 label Oct 10, 2023
@deomaius
Copy link

deomaius commented Oct 12, 2023

Proposal

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

The onboarding process of a newly invited user - specificially to a workspace - is misaligned to the intended logic.

What is the root cause of that problem?

There is pre-coded logic to in Welcome.js to enforce this behaviour, it is not a result of a bug.

Navigation.navigate(ROUTES.REPORT_WITH_ID.getRoute(workspaceChatReport.reportID));

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

The conditional parameter shouldNavigateToWorkspaceChat and if statement to enforce the redirect should be redacted.

if (shouldNavigateToWorkspaceChat && workspaceChatReport) {
Navigation.navigate(ROUTES.REPORT_WITH_ID.getRoute(workspaceChatReport.reportID));
// If showPopoverMenu exists and returns true then it opened the Popover Menu successfully, and we can update isFirstTimeNewExpensifyUser
// so the Welcome logic doesn't run again
if (showPopoverMenu()) {
isFirstTimeNewExpensifyUser = false;
}
return;
}

@melvin-bot
Copy link

melvin-bot bot commented Oct 16, 2023

@0xmiroslav Eep! 4 days overdue now. Issues have feelings too...

@melvin-bot melvin-bot bot added the Overdue label Oct 16, 2023
@melvin-bot
Copy link

melvin-bot bot commented Oct 17, 2023

📣 It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? 💸

@melvin-bot
Copy link

melvin-bot bot commented Oct 18, 2023

@0xmiroslav Still overdue 6 days?! Let's take care of this!

@0xmiros
Copy link
Contributor

0xmiros commented Oct 18, 2023

This is tagged as native only issue. If that's true, the root cause should explain why issue doesn't happen on mWeb.

Awaiting more proposals

@melvin-bot melvin-bot bot removed the Overdue label Oct 18, 2023
@deomaius
Copy link

deomaius commented Oct 18, 2023

This is tagged as native only issue. If that's true, the root cause should explain why issue doesn't happen on web.

It occurs on web also would you know, so what are the next steps? Eager to submit a PR and waiting on your words.

@deomaius
Copy link

@miljakljajic can you provide some assistance here, been waiting for a sufficient review for two of my proposals for over 2 weeks yet your reviewer - who is assigned to both issues - has failed to follow through.

I am heavily contemplating not contributing to this organisation again because of this situation, I am eager to contribute but not if there is unprofessional treatment for external contributors present.

@melvin-bot melvin-bot bot added the Overdue label Oct 23, 2023
@melvin-bot
Copy link

melvin-bot bot commented Oct 24, 2023

📣 It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? 💸

@deomaius
Copy link

Pinging @m-natarajan as maybe they could give a response since being the author of this specific issue.

@melvin-bot
Copy link

melvin-bot bot commented Oct 25, 2023

@0xmiroslav 6 days overdue. This is scarier than being forced to listen to Vogon poetry!

@melvin-bot
Copy link

melvin-bot bot commented Oct 27, 2023

@0xmiroslav 8 days overdue is a lot. Should this be a Weekly issue? If so, feel free to change it!

@melvin-bot
Copy link

melvin-bot bot commented Oct 31, 2023

@0xmiroslav 12 days overdue. Walking. Toward. The. Light...

Copy link

melvin-bot bot commented Oct 31, 2023

📣 It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? 💸

@melvin-bot melvin-bot bot added Weekly KSv2 and removed Daily KSv2 labels Nov 3, 2023
Copy link

melvin-bot bot commented Nov 3, 2023

This issue has not been updated in over 14 days. @0xmiroslav eroding to Weekly issue.

@melvin-bot melvin-bot bot removed the Overdue label Nov 3, 2023
@deomaius
Copy link

deomaius commented Nov 4, 2023

I will not be recommending contributing to expensify to any engineers from my expierence upon three individual proposals; #29212, #29110 and this issue #29207.

I have been mislead consitently par in part because of negilgent reviewers such as @0xmiroslav and poor originisational discourse on the viability of a issue - preimposed to issuing it and a contributor submitting work (@miljakljajic). I feel wasted of my time and my skills and treated horribly in this situation. I wish you the best working with air, if this proposal goes through so be it - but my opinion will not change about the organisational management of this entity.

Goodday.

Copy link

melvin-bot bot commented Nov 7, 2023

📣 It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? 💸

@melvin-bot melvin-bot bot removed the Overdue label Mar 18, 2024
Copy link

melvin-bot bot commented Mar 18, 2024

Triggered auto assignment to @iwiznia, see https://stackoverflow.com/c/expensify/questions/7972 for more details.

@zanyrenney
Copy link
Contributor

zanyrenney commented Mar 18, 2024

@iwiznia would you mind reviewing and choose which of the proposals to go with, please? @dukenv0307 has said either @DylanDylann or @ikevin127 proposals seem most suitable. Thanks!

@ikevin127
Copy link
Contributor

IMO we don't need to show the modal in this case since it can cause the inconsistency.

@dukenv0307 This does not make sense, what inconsistency are you referring to ?

Since if we don't redirect the user to the workspace report, they are just going to land on the LHN on their first login.

Currently for all other cases where no navigation is called (user lands on LHN) on first login, we always show the welcome modal.

I think we should do the same here, otherwise should we change BE and not send the Welcome email for this specific case ? 👀

@dukenv0307
Copy link
Contributor

This does not make sense, what inconsistency are you referring to ?

I mean the inconsistency between desktop and mobile devices. Currently, if the welcome modal is shown on large screens, it will be shown on small screens too. If we add the condition to check isNarrowLayout here the welcome modal will be shown on small screen but not large one.

Let's dig deeper into the reason why we shouldn't navigate to WS chat in this case. It's because on large screens we can show both LHN and chat, but on small screens, we need to choose one (in this case it's LHN), so I just wonder if we should show the welcome modal just because it's on small screens.

Anyway, we need to hear the final expectation from @iwiznia

@ikevin127
Copy link
Contributor

Thanks for the explanation, indeed it makes sense to be aligned and have the Welcome modal (RHP on large screens) pop up regardless - if that's what we want to do here.

This means that on large screens we see LHN + the report opened on the right side + the Welcome modal (RHP).

For this we would have to remove this check: Object.keys(allPolicies ?? {}).length === 1 (checks if we have more than one reports (Concierge) on first login).

While for narrow layout devices we have 2 options:

  • navigate and open workspace report on login + show welcome modal
  • don't navigate to workspace report, landing on LHN upon first login + show welcome modal (my proposal)

@iwiznia
Copy link
Contributor

iwiznia commented Mar 18, 2024

ok let me see if I get this correctly.
In large screens, all works great because we:

  • Open the chat in the main pane
  • Open the welcome page in the RHP

But on small screens, we can't do that, there's no RHP, so we need to chose to either:

  • Show the workspace chat
  • Show the welcome page

Is that correct?

@iwiznia
Copy link
Contributor

iwiznia commented Mar 18, 2024

Not 100% sure about this, but in small screens I think we could/should do:

  • Open the welcome page
  • When you close it, behind it is the workspace chat page

This both ensures you see the welcome page and that you see the workspace chat and it's the closest thing to what large screens do

@ikevin127
Copy link
Contributor

ikevin127 commented Mar 18, 2024

What is currently happening:

Large screens:

  • user part of a workspace logins first time
  • workspace report opens on right side of LHN
  • no welcome message (RHP not opening - by design)

Small screens exactly the same thing as for large screens (except you don't see the LHN on small screens, you see only the report you're navigated to).

Also on small screens there's no RHP so the modal pops up from the bottom of the screen.

This issue was created because the behaviour on small screens is apparently not desired.

My suggestion is we should show welcome message regardless of screen size.

My proposal achieved the expected result of the issue + mentioned the welcome modal consideration.

@iwiznia
Copy link
Contributor

iwiznia commented Mar 18, 2024

workspace report opens on right side of LHN

You mean it opens in the RHP? If so, what do we show in the main pane?

My suggestion is we should show welcome message regardless of screen size.

I think I agree with this

@ikevin127
Copy link
Contributor

You mean it opens in the RHP? If so, what do we show in the main pane?

@iwiznia No, right side of LHN = main pane, not RHP.

@iwiznia
Copy link
Contributor

iwiznia commented Mar 18, 2024

ok cool, we agree. To summarize what we want:
Large screens:

  • Open welcome page in RHP
  • Open worskapce chat in main pane

Small screens:

  • Open welcome page in RHP that takes the whole screen
  • When closing RHP, behind it should be the workspace chat open

@ikevin127
Copy link
Contributor

Updated proposal

  • updated RCA and solution to align w/ latest expectations as per #29207 (comment)

cc @iwiznia

@DylanDylann
Copy link
Contributor

@iwiznia I think there is conflict between the new expected behavior and this one. What do you think?

@iwiznia
Copy link
Contributor

iwiznia commented Mar 19, 2024

Why you say that? From a quick look seems like that is already implemented what I said above?

@DylanDylann
Copy link
Contributor

DylanDylann commented Mar 19, 2024

  • In this comment, we only open welcome banner if there is only personal policy (user is not invited to any workspace, allPolicy.length === 1).
  • In your comment: When user is invited to any workspace, the welcome banner still appears (allPolicy.length > 1)

@iwiznia
Copy link
Contributor

iwiznia commented Mar 19, 2024

Ohhhh 🤔 you are correct and I was wrong... in this flow we are already invited to a policy, so we don't need to show the welcome card.

@DylanDylann
Copy link
Contributor

@iwiznia Based on this C+ comment, my proposal will fix the original issue

@ikevin127
Copy link
Contributor

Reverted proposal

  • reverted to previous solution according to latest decision from #29207 (comment)

Note

The other proposal is not using the correct methods for implementing the proposed solution.

I think a 50/50 split is fair if @DylanDylann will handle the issue using the correct logic mentioned in my proposal's solution.

cc @iwiznia

@DylanDylann
Copy link
Contributor

@ikevin127 Why did you say: "The other proposal is not using the correct methods for implementing the proposed solution."?

@ikevin127
Copy link
Contributor

Because isSmallScreenWidth (suggested in your solution) comes from the useWindowDimensions hook which we cannot use within action files like @libs/actions/Welcome.ts.

@DylanDylann
Copy link
Contributor

@ikevin127 We can create a 3rd param in show function, named isSmallScreenWidth and then when calling show in BottomTabBar component, we can use useWindowDimensions to get the isSmallScreenWidth. I think it is very straightforward

@ikevin127
Copy link
Contributor

These details are missing from your proposal, but sure - no problem if you're gonna do it like that.
I'll keep an eye on the PR and will make sure to ask for that split if my solution's implementation will be used ✌

@dukenv0307
Copy link
Contributor

Based on this comment. proposal from @DylanDylann looks good to me cc @iwiznia

@iwiznia
Copy link
Contributor

iwiznia commented Mar 20, 2024

I am confused, isn't that proposal making it so that we do not navigate to the report?

@ikevin127
Copy link
Contributor

@iwiznia Yes it is, as per this issue's expected result.

To recap, the options here are either of the two:

  1. Don't navigate to workapace report on first login on narrow layout devices.
  2. Do navigate (current behaviour).

If we want to keep option 2, then this issue can be closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something is broken. Auto assigns a BugZero manager. Daily KSv2 External Added to denote the issue can be worked on by a contributor
Projects
No open projects
Archived in project
Development

No branches or pull requests