chore(Portal): Listen for Escape keypress using addEventListener instead of event-stack #4504
+47
−21
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
It is only one removed EventStack instance from Portal. I wanna go step by step with it just to know that I am not going some wrong direction.
There are few decisions I would like to explain:
PortalInner
. It seems to me like the right place as PortalInner is only mounted when Portal is open (-> listeners only added when portal is open as well as with EventStack component).onClose
andcloseOnEscape
required inPortalInner
because it seems to me that PortalInner is and should only be used inside the Portal itself. Therefor there should not be option for SUIR developer to forget prop drill it.Overall, I looked into it a bit and I think that most of the listeners should be in the
PortalInner
as it has access to the ref which will be needed for other handlers. I should even makePortal
itself a bit lightweight when closed.I hope that it makes sense and does not disrespect some SUIR architecture.