-
Notifications
You must be signed in to change notification settings - Fork 115
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
Fix issue where dialog is unable to be closed #2288
Conversation
🦋 Changeset detectedLatest commit: a108bca The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
// Find the top level dialog that is open. | ||
const topLevelDialog = overlayStack[overlayStack.length - 1] | ||
if (!topLevelDialog) return |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It did not seem like we needed to rely on checking if the "top level" dialog was open at this point. The function should only be ran the moment a user clicks the close button. This should only target the dialog where that event stemmed, and shouldn't affect any other dialogs that are open.
I removed this logic and replaced it with a conditional that will only check if one of the two acceptable button data-*
attributes exist.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Would you be able to write some tests?
Authors: Please fill out this form carefully and completely.
Reviewers: By approving this Pull Request you are approving the code change, as well as its deployment and mitigation plans.
Please read this description carefully. If you feel there is anything unclear or missing, please ask for updates.
What are you trying to accomplish?
Fixes bug where dialog is unable to be closed if another dialog is opened at the time.
Screenshots
Integration
List the issues that this change affects.
https://github.com/github/primer/issues/2748
Risk Assessment
What approach did you choose and why?
We currently store active dialogs in an array named
overlayStack
. When clicking the close button, we check if the button is within the dialog that was most recently opened. If it is not, then you are unable to close the dialog through clicking the button.This PR aims to fix that issue by removing the
topLevelDialog
dependency.Anything you want to highlight for special attention from reviewers?
Merge checklist
Take a look at the What we look for in reviews section of the contributing guidelines for more information on how we review PRs.