-
Notifications
You must be signed in to change notification settings - Fork 3k
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
[PAID] [$250] [Collect] Workspace - User name and avatar disappears when opening profile immediately after invite #38925
Comments
Triggered auto assignment to @strepanier03 ( |
We think that this bug might be related to #wave-control. |
ProposalPlease re-state the problem that we are trying to solve in this issue.The user name and avatar disappear if we view the recently added workspace member. We can easily reproduce this by adding the member while offline, viewing the member detail, and go online. What is the root cause of that problem?When we start adding a new member, we generate an optimistic personal detail for that user and clear it when the request is successful. App/src/libs/actions/Policy.ts Lines 1130 to 1138 in b3baa68
App/src/libs/actions/Policy.ts Lines 1143 to 1161 in b3baa68
That's why after the request is completed, the name and avatar disappear because we are viewing the optimistic personal detail data that is already gone. What changes do you think we should make in order to solve the problem?We can disable it when the personal detail is still an optimistic one until we receive the correct personal detail from the server. This is what we do in several places too, for example: App/src/components/ReportWelcomeText.tsx Lines 143 to 153 in b3baa68
App/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js Lines 422 to 425 in 1c632fe
First, add App/src/libs/PersonalDetailsUtils.ts Lines 125 to 138 in 1c632fe
Then, disable it when App/src/pages/workspace/WorkspaceMembersPage.tsx Lines 362 to 367 in 1c632fe
This will disable the checkbox too, we can customize to not disable the checkbox, but I don't think that's a good idea separating the checkbox disabled state and the row disabled state. Or we can keep it enable, but do nothing when clicked (or just toggle the checkbox when clicked). optionally we can show not found page on member detail page when it's an optimistic personal detail, but I see we don't do that for profile page, so not sure whether we want to do this or not What alternative solutions did you explore? (Optional)Don't clear the optimistic personal detail, but this would keep stacking unnecessary data every time we add a new member. Also, it's useless for the user to see the outdated optimistic personal detail when the server already sends us the correct data. or don't rerender the detail page when personal details change. we can use memo for this case. Another alternative is, save the member optimistic |
Just FYI, we don't need to perform the 5th step quickly. We can perform it while offline to reproduce it easier.
|
Hmmm, I'm having a slightly different experience with the avatar, but the username isn't an issue when testing Mac/Chrome and Android mobile web for me. On both here's what I am doing and seeing:
Expected Result: Actual Result: 2024-03-26_16-12-53.mp4 |
@strepanier03 did you test it on a collect workspace? Looking at the left side of the workspace menu, I guess it's a free workspace. The new RHP for workspace member detail (instead of a profile page that is shown in your video) is only available for collect workspace. |
I'll retest, I made a collect workspace but maybe clicked the wrong button afterward and added on the free workspace. |
Not sure what was different on the second collect workspace I made but I was able to repro with a fresh slate. 2024-03-27_12-53-12.mp4 |
@strepanier03 this issue was created 2 weeks ago. Are we close to a solution? Let's make sure we're treating this as a top priority. Don't hesitate to create a thread in #expensify-open-source to align faster in real time. Thanks! |
@strepanier03 10 days overdue. Is anyone even seeing these? Hello? |
@strepanier03 12 days overdue now... This issue's end is nigh! |
Job added to Upwork: https://www.upwork.com/jobs/~011d6aa43dad80012f |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @ikevin127 ( |
ProposalPlease re-state the problem that we are trying to solve in this issue.The user name disappears and avatar changes to placeholder avatar. What is the root cause of that problem?The problem here happens because when we add a new workspace member, if that member doesn't exist in personal details list yet, we'll create optimistic personal details for them and then clearing the personal details after the request is done, see here. This leads to the user seeing user name and avatar disappearing because the optimistic personal details is gone now. What changes do you think we should make in order to solve the problem?We had this same problem with the optimistic report: we create a new optimistic report with a user, but the report with that user already exists, so what we did is we'll navigate to the new report when the API request is successful. Here's exactly how we implement it, we should do the same for the optimistic personal detail in this case
This is the same approach as we did with the optimistic report, just that we do for optimistic personal details now. This will make sure the user has a seamless experience when using the product. What alternative solutions did you explore? (Optional)NA |
@ikevin127 - Friendly bump on the proposal here, thanks! |
PR is ready cc: @ikevin127 |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.5-13 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2024-07-17. 🎊 For reference, here are some details about the assignees on this issue:
|
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
I'll request in ND once payment is due. |
Regression Test ProposalPrecondition: User is admin of a Collect workspace.
Do we agree 👍 or 👎. |
@techievivek Could you help with the discussion here, thanks 🙇 |
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.6-8 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2024-07-22. 🎊 For reference, here are some details about the assignees on this issue:
|
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
@strepanier03 This was deployed to production 5 days ago (reference) meaning payment is due on 17th of July. |
As @ikevin127 mentioned, the payment is due on the 17, so I've requested it in ND. |
@bernhardoj - I closed the contract in Upwork without payment since you're requesting in Newdot now. @ikevin127 - I've paid your contract and closed it as well. @nkdengineer and @techievivek - What payment should I authorize here? The full $250? |
Payment summary
@JmillsExpensify - Request incoming. |
$250 approved for @bernhardoj |
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.4.56-2
Reproducible in staging?: Y
Reproducible in production?: Y
Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:
Precondition:
Expected Result:
The user name and avatar will not disappear.
Actual Result:
The user name disappears and avatar changes to placeholder avatar.
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
Bug6425580_1711344257027.20240325_132027.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @strepanier03The text was updated successfully, but these errors were encountered: