-
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
[HOLD for payment 2024-04-05] [$500] Chat - 3 dot menu overlaps with the emoji menu #37266
Comments
Triggered auto assignment to @jliexpensify ( |
@jliexpensify I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors. |
We think that this bug might be related to #vip-vsb |
Yep, can repro and I think this should go in #vip-vsb - https://expensify.slack.com/archives/C066HJM2CAZ/p1709093964920179 |
Hold off on fixing this until we get final confirmation. My comment was that I don't think this is a bug because you can still hover other comments below and see the comment action bar. So unless we wanted to disable that, the overlay should stay as is. Though if we wanted to we could lower the overlay in the Y position to make sure it covers the comment action menu of the comment you've clicked on. I'm checking with @Expensify/design to see if they have strong feelings. |
Sweet, thanks @dubielzyk-expensify - have dropped a |
This is what I wrote in Slack: Oh interesting... I would expect this context menu to launch below the overflow icon if there is space, and if not, above the overflow icon in a way that wouldn't obscure the menu behind it at all. So I personally do think this is a bug. |
I agree with Shawn. I would expect it to sit in the same position as the emoji picker (but on the bottom in there's room). Weren't we just talking about this in another issue a week or so ago? Might be worth showing that like the emoji menu, this menu should have automatic viewport collision detection (which it seems like it already does). |
Job added to Upwork: https://www.upwork.com/jobs/~017349bd168876c6ff |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @DylanDylann ( |
ProposalPlease re-state the problem that we are trying to solve in this issue.3 dot menu overlaps with the emoji menu. What is the root cause of that problem?Right now the location of overflow menu is determined by click position of cursor that's why it is not consistent. What changes do you think we should make in order to solve the problem?We need to first pull the reference of 3 dot button in props. Through that reference we can determine the exact location of 3 dot button and can then align the overflow menu relatively and consistently. We can determine the position of 3 dot menu like this:
We can use the default anchor position as:
First we need to check if we have space below the 3 dot menu for the overflow menu. This will help us determine whether we can anchor the overflow menu in bottom:
We also need to determine the size of overflow / popover menu. We can get this through the child component in: App/src/pages/home/report/ContextMenu/BaseReportActionContextMenu.tsx Lines 224 to 227 in d22196a
function to calculate the height of popover menu:
Now that we have everything in place i.e. popOver menu height, 3 dot menu Button location. We can now use these to determine the location of the popOver menu location. This will give use consistent location of the popOver menu each time relative to 3 dot menu button:
What alternative solutions did you explore? (Optional)Results |
Wonderful work @usman-ghani564, that looks great to me. Just to confirm that the spacing between the overflow menu is Keen to get @Expensify/design feedback as well before settling in on this. |
ProposalPlease re-state the problem that we are trying to solve in this issue.The two modals are overlapping What is the root cause of that problem?According to this expectation, there're 2 problems:
What changes do you think we should make in order to solve the problem?
This will require quite many changes but here're the main steps:
so that the popover menu will have a fixed relative position at the bottom of the three dots button
And inside We can pass a prop to With this approach, there'll be no hardcoded value required, some minor style changes will be needed to accommodate the additional adjustments by the design team, but outlined above should be the core solution. What alternative solutions did you explore? (Optional)NA |
yes, @dubielzyk-expensify we can make the menu to left like this: We can take input from the design team to make sure the spacing is looking good. Also, one thing that I want to mention here about the existing logic on which we determine the |
Interesting, I would think this one should always launch respective of the overflow icon and not the mouse position. And it should be aligned on the right edge of the mini menu. |
+1. Is there a way for us to make all our popovers (that are triggered from a button, not a right-click) have consistent positions relative to the button that spawned them? Looking at the screenshots on this issue, the position/spacing looks different from the Emoji menu which also looks different from the three-dot overflow at the top. What's the rule? Always |
Yeah, +1 to what @dannymcclain and @shawnborton said. The screenshot above looks too far off now. Basically where the red outline is below is where we want it to line up: But like Danny said, this should be consistent with other parts of the app. It should be tied to the 3 dots and where the icon is, not the click itself. Does that make sense? |
@dubielzyk-expensify I think the horizontal position of the context menu is aligned with the position of a three-dot menu in the header Screen.Recording.2024-03-01.at.15.27.28.mov |
I'm working on the PR. |
Triggered auto assignment to @sonialiap ( |
Hello @sonialiap - I am headed OOO from the 21st to 31st March so have used the auto-assigner for a buddy. Assuming all goes well: PAYMENT SUMMARY:
Thanks! |
@DylanDylann The PR is ready for review. |
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. |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.57-5 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-04-05. 🎊 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:
|
Back, unassigning Sonia! |
PAYMENT SUMMARY:
|
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: [@DylanDylann] The PR that introduced the bug has been identified. Link to the PR: NA Regression Test Proposal
Do we agree 👍 or 👎 |
Paid and job closed! |
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.4.44-0
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers): [email protected]
Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal Team
Action Performed:
Expected Result:
User expects a modal to open but to be able to still see the previous modal
Actual Result:
The two modals are overlapping
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: