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] Details - App needs revisit to chat to update profile details #30183

Closed
6 tasks done
kbecciv opened this issue Oct 23, 2023 · 35 comments
Closed
6 tasks done

[$500] Details - App needs revisit to chat to update profile details #30183

kbecciv opened this issue Oct 23, 2023 · 35 comments
Assignees
Labels
Bug Something is broken. Auto assigns a BugZero manager. Engineering External Added to denote the issue can be worked on by a contributor Help Wanted Apply this label when an issue is open to proposals by contributors Internal Requires API changes or must be handled by Expensify staff Reviewing Has a PR in review Weekly KSv2

Comments

@kbecciv
Copy link

kbecciv commented Oct 23, 2023

If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!


Version Number: 1.3.89.5
Reproducible in staging?: y
Reproducible in production?: y
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: @dhanashree-sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1698043790998699

Action Performed:

  1. Open the app and login with user A
  2. Open search
  3. Search for existing user with whom you don't have any chat history
  4. Open that user and send any message
  5. Click on header and observe that user details are not visible
  6. From any other device, login with user used in step 4
  7. Open the message sent in step 4 and reply with any text
  8. From user A, again click on header of user and observe that even after reply from that user, still no user details are displayed
  9. Visit any other user and revisit the user used in step 4
  10. Again click on header and observe that now it displays user details

Expected Result:

App should update user details when we receive message from that user

Actual Result:

App needs revisit to user report to update user details after we receive message from that user

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
Android.native.revisit.to.display.profile.details.mp4
Android: mWeb Chrome
Android.chrome.revisit.needed.to.update.profile.details.mp4
iOS: Native
ios.native.needs.revisit.to.update.profile.details.mov
iOS: mWeb Safari
ios.native.needs.revisit.to.update.profile.details.mov
MacOS: Chrome / Safari
windows.chrome.revisit.needed.to.update.profile.details.mp4
mac.chrome.needs.revisit.to.update.profile.details.mov
MacOS: Desktop
mac.desktop.needs.revisit.to.update.profile.details.mov

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~019a77b71b60ac003e
  • Upwork Job ID: 1716483855667945472
  • Last Price Increase: 2023-11-06
@kbecciv kbecciv added External Added to denote the issue can be worked on by a contributor Daily KSv2 Bug Something is broken. Auto assigns a BugZero manager. labels Oct 23, 2023
@melvin-bot melvin-bot bot changed the title Details - App needs revisit to chat to update profile details [$500] Details - App needs revisit to chat to update profile details Oct 23, 2023
@melvin-bot
Copy link

melvin-bot bot commented Oct 23, 2023

Triggered auto assignment to @sonialiap (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

@melvin-bot
Copy link

melvin-bot bot commented Oct 23, 2023

Job added to Upwork: https://www.upwork.com/jobs/~019a77b71b60ac003e

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

melvin-bot bot commented Oct 23, 2023

Bug0 Triage Checklist (Main S/O)

  • This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
  • This bug is not a duplicate report (check E/App issues and #expensify-bugs)
    • If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead
  • This bug is reproducible using the reproduction steps in the OP. S/O
    • If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
    • If the reproduction steps aren't clear and you determine the correct steps, please update the OP.
  • This issue is filled out as thoroughly and clearly as possible
    • Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.
  • I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

@melvin-bot
Copy link

melvin-bot bot commented Oct 23, 2023

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

@akamefi202
Copy link
Contributor

I think this can be fixed from backend side.
If user A sends a message, the backend sends updated report data to user B using Pusher.
The backend could send latest personal details data of user A too.
It will update profile details immediately without revisiting the report page.

@melvin-bot
Copy link

melvin-bot bot commented Oct 23, 2023

📣 @brandond98! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

  1. Make sure you've read and understood the contributing guidelines.
  2. Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
  3. Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
  4. Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.
    Screen Shot 2022-11-16 at 4 42 54 PM
    Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

@brandond98
Copy link

Contributor details
Your Expensify account email: [email protected]
Upwork Profile Link: https://www.upwork.com/freelancers/~01c302220b00dc40f9

@melvin-bot
Copy link

melvin-bot bot commented Oct 23, 2023

✅ Contributor details stored successfully. Thank you for contributing to Expensify!

@parasharrajat
Copy link
Member

parasharrajat commented Oct 24, 2023

I am sure that the backend was already sending that but something might have changed. It will be great to see an analysis of a proposal. Currently, none of the proposals is in good shape.

@parasharrajat
Copy link
Member

Waiting on proposals.

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

shahinyan11 commented Oct 27, 2023

Proposal

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

App needs revisit to chat to update profile details

What is the root cause of that problem?

In page ReportsScreen calls Report.openReport when the screen is focused .
https://github.com/Expensify/App/blob/f3e2cde0a84c7f0073b0a1fb55fbf23651d8c3e8/src/pages/home/ReportScreen.js#L289C1-L289C52
Report.openReport makes request to endpoint /api?command=OpenReport .
https://github.com/Expensify/App/blob/f3e2cde0a84c7f0073b0a1fb55fbf23651d8c3e8/src/libs/actions/Report.js#L633C1-L633C51
The above endpoint call returns response with onyxData which includes the following 3 objects objects on the basis of which the ONYX date is updated.
{onyxMethod: "merge", key: "report_<id>", …}
{onyxMethod: "merge", key: "reportActions_<id>", …}
{onyxMethod: "merge", key: "personalDetailsList", …}

The object with key personalDetailsList contain info to display in ProfileDetails screen which displays after click on header . Until the current user have not received message back the call of /api?command=OpenReport endpoint returns a personalDetailsList which is not contain info about user Email and Local time the keys of which are login and timezone .

When the user receives a message back the socket data contains the two objects below.
{onyxMethod: "merge", key: "report_<id>", …}
{onyxMethod: "merge", key: "reportActions_<id>", …}

There is no object with the key personalDetailsList. And therefore personalDetailsList is not updated in onyxData after receiving message. But when we leave ReportsScreen and come back, the /api?command=OpenReport endpoint is called when the screen is focused and the data is updated

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

There is not need to change any code in frontend side. We need the backend to send a personalDetailsList in the socket data (with the event name multipleEvents) the problem will be solved

What alternative solutions did you explore? (Optional)

NO

@parasharrajat
Copy link
Member

@sonialiap Let's make it internal.

@melvin-bot melvin-bot bot removed the Overdue label Oct 29, 2023
@shahinyan11
Copy link

@parasharrajat I would like to see some comments on my proposal

@parasharrajat
Copy link
Member

parasharrajat commented Oct 30, 2023

@shahinyan11 This issue is a backend issue as you mentioned in the proposal so it is better handled internally. The first openReport API call should return the user details as well when it is already present on the backend. Good findings in the root cause which might be useful in root cause analysis.

I was expecting the PR to be found which caused this. But it seems that it is a backend regression.

@melvin-bot
Copy link

melvin-bot bot commented Oct 30, 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 the Overdue label Nov 1, 2023
@sonialiap
Copy link
Contributor

Sounds like this calls for an Internal label 🥁

@melvin-bot melvin-bot bot removed the Overdue label Nov 1, 2023
@sonialiap sonialiap added the Internal Requires API changes or must be handled by Expensify staff label Nov 1, 2023
Copy link

melvin-bot bot commented Nov 1, 2023

Current assignee @parasharrajat is eligible for the Internal assigner, not assigning anyone new.

@sonialiap
Copy link
Contributor

@parasharrajat is this something you can tackle or do we need an internal engineer?

@parasharrajat
Copy link
Member

It needs an internal engineer.

Copy link

melvin-bot bot commented Nov 6, 2023

Triggered auto assignment to @techievivek (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

@melvin-bot melvin-bot bot removed the Overdue label Nov 6, 2023
@sonialiap
Copy link
Contributor

Adding internal engineer

Copy link

melvin-bot bot commented Nov 6, 2023

@sonialiap @parasharrajat @techievivek this issue was created 2 weeks ago. Are we close to approving a proposal? If not, what's blocking us from getting this issue assigned? Don't hesitate to create a thread in #expensify-open-source to align faster in real time. Thanks!

Copy link

melvin-bot bot commented Nov 6, 2023

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

@parasharrajat parasharrajat removed their assignment Nov 7, 2023
@parasharrajat
Copy link
Member

Please assign me back when needed.

@melvin-bot melvin-bot bot added the Overdue label Nov 9, 2023
Copy link

melvin-bot bot commented Nov 10, 2023

@sonialiap, @techievivek Whoops! This issue is 2 days overdue. Let's get this updated quick!

1 similar comment
Copy link

melvin-bot bot commented Nov 10, 2023

@sonialiap, @techievivek Whoops! This issue is 2 days overdue. Let's get this updated quick!

@techievivek
Copy link
Contributor

Working on this now.

@melvin-bot melvin-bot bot removed the Overdue label Nov 13, 2023
@techievivek
Copy link
Contributor

Looked through the backend code and the solution that appears to me is to send the personal details of the commenter to the chat report participants.
For public reports, we will only send to the users who have already commented or reacted with emojis to any message(using getPublicRoomActors). For other cases, we will use the sharedReportList entry.

However, I am unable to figure out when do we need to push this update. IMO I think every time a new user adds a comment on the report we will need to send the personal details of that user to the above actors.

@techievivek techievivek added the Reviewing Has a PR in review label Nov 13, 2023
Copy link

melvin-bot bot commented Nov 20, 2023

@sonialiap, @techievivek Whoops! This issue is 2 days overdue. Let's get this updated quick!

Copy link

melvin-bot bot commented Nov 22, 2023

@sonialiap, @techievivek Huh... This is 4 days overdue. Who can take care of this?

Copy link

melvin-bot bot commented Nov 24, 2023

@sonialiap, @techievivek Still overdue 6 days?! Let's take care of this!

Copy link

melvin-bot bot commented Nov 28, 2023

@sonialiap, @techievivek 10 days overdue. Is anyone even seeing these? Hello?

Copy link

melvin-bot bot commented Nov 30, 2023

@sonialiap, @techievivek 12 days overdue now... This issue's end is nigh!

@melvin-bot melvin-bot bot added Weekly KSv2 and removed Daily KSv2 labels Dec 4, 2023
Copy link

melvin-bot bot commented Dec 4, 2023

This issue has not been updated in over 14 days. @sonialiap, @techievivek eroding to Weekly issue.

@sonialiap
Copy link
Contributor

Closing as low priority

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. Engineering External Added to denote the issue can be worked on by a contributor Help Wanted Apply this label when an issue is open to proposals by contributors Internal Requires API changes or must be handled by Expensify staff Reviewing Has a PR in review Weekly KSv2
Projects
None yet
Development

No branches or pull requests

7 participants