-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
[HOLD for payment 2023-09-27] [$2000] Chat - Main composer is displayed when editing two messages #23908
Comments
Job added to Upwork: https://www.upwork.com/jobs/~01230125fc5ec18c7d |
Triggered auto assignment to @garrettmknight ( |
Bug0 Triage Checklist (Main S/O)
|
Triggered auto assignment to @flaviadefaria ( |
Current assignee @s77rt is eligible for the External assigner, not assigning anyone new. |
For context, we discovered and discussed about this issue here: https://expensify.slack.com/archives/C02NK2DQWUX/p1690561889854179 |
@s77rt Can you confirm if this issue is reproducible on other platforms? or just on Android? |
ProposalPlease re-state the problem that we are trying to solve in this issue.Main composer is displayed when editing two messages There are several cases we should handle in this issue Case 1
Case 2
Case 3
After all, if there is no focused editing messages, main composer should be shown. If not, main composer should be hidden What is the root cause of that problem?We store the App/src/libs/actions/Composer.js Lines 7 to 9 in 93957f0
The main composer will be shown when this function is called with On blur event, we add event listener for When there are multiple messages in edit mode, if blur event on any element(with keyborad hidden) or save/delete action happens, the
What changes do you think we should make in order to solve the problem?Summarycase 1When we need to show or hide the main composer, remove the event listener added before. Doing this prevents the unexpected hide of main composer case 2Show composer only when the active message is canceled/saved or unmounted.
case 3When a message in edit mode gets focused, clear the active action of the EmojiPicker. Doing this prevents the incorrect active reportAction of Detailed implementation
And replace all
We can now safely remove the code below App/src/pages/home/report/ReportActionItemMessageEdit.js Lines 332 to 335 in e555022
and update the context menu's
We clear the active report action when another composer gets focused I think there won't be race condition you mentioned here
In deleteDraft
In unmount
In order to solve this issue, we need to sync the This works for all cases as expected What alternative solutions did you explore? (Optional) |
@techievivek Yes, on all platforms (as long as the window width is small). Just a note the second video in OP does not reflect the current state. #23618 is not deployed to staging yet. |
@s-alves10 Thanks for the proposal. Your RCA is correct. The suggested solution although it looks like it would work it may cause a race condition 1 2. The alternative solution looks more like a workaround (we are not clearing the report action in the right place). It would better to fix the first solution race condition e.g. have Footnotes |
Proposal |
@s-alves10 Thanks for the update. I think the race condition fix may result in a regression
It's related to the message itself as well e.g. you open the EmojiPicker to react to a message. If the message got deleted the picker should be hidden. |
ProposalPlease re-state the problem that we are trying to solve in this issue.Chat - Main composer is displayed when editing two messages when the first one is cancelled/save What is the root cause of that problem?After canceling or saving the draft message, we will display the main composer again by this logic
What changes do you think we should make in order to solve the problem?We only should display main composer if the number of the draft message of this report is 0 What alternative solutions did you explore? (Optional) |
@dukenv0307 Thanks for the proposal. I don't think your RCA is correct. This issue only occurs after opening the emoji picker. Can you please update your proposal taking this into account? |
This comment was marked as outdated.
This comment was marked as outdated.
@rojiphil Thanks for the proposal but isn't this proposed already by @s-alves10? |
But, he is also suggesting other things. If that is required, then, his proposal is a good choice. I do not think that is required. That way, my proposal is different. But, then, you can decide. I just provided my proposal. |
|
@kavimuru Do you have any additional details on being able to reproduce this one? |
Gentle bump @kavimuru ^ |
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results. If a regression has occurred and you are the assigned CM follow the instructions here. If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future. |
Can I have a status update on this issue? |
We can move forward with the payment here. CC @garrettmknight can we pay the contributors here since the regression period is over, thanks. |
Should the payment here be $1000 because this issue is coming from #17531 where we had a regression there |
Good catch @s77rt - to recap, we didn't pay out the previous issue because we rolled the PR back, opened up this issue with a $2k start price and since this was created as part of a regression, we'll pay 50%. Summmary of payments for this issue:
|
This solved new issues like https://expensify.slack.com/archives/C049HHMV9SM/p1692747837798019 I hope you explain why |
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results. If a regression has occurred and you are the assigned CM follow the instructions here. If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future. |
I think you can consider this like an extension of #17531. If the automation had allowed, we would have reopened that issue, had you fix the regression and paid out at 50% for the regression. If that had happened and we'd separately focused this issue on the other cases (and no regressions were reported) we'd have paid out $1000 as standard at the time. With that in mind, I could see paying $1500 total out for this issue. |
Added $500 to both contracts. |
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Action Performed:
Case 1:
Case 2:
Case 3:
Notes:
Additional testing (regression) steps:
Expected Result:
Main compose box should not be displayed
Actual Result:
Main compose box is displayed
Workaround:
Don't edit two messages at once.
Platforms:
Which of our officially supported platforms is this issue occurring on?
Version Number: 1.3.47
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
Notes/Photos/Videos: Any additional supporting documentation
Bug6018008_IMG_9466.mp4
Kooha-2023-07-28-17-55-44.mp4
Expensify/Expensify Issue URL:
Issue reported by: @s77rt
Slack conversation: https://expensify.slack.com/archives/C02NK2DQWUX/p1690561889854179
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: