-
Notifications
You must be signed in to change notification settings - Fork 77
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
update(Tooltip): Render Popover's popup in Overlay component #392
Conversation
Size Changes
View raw build statsPrevious (master){
"apollo": {
"esm": 10832,
"lib": 14147
},
"app-shell": {
"esm": 12906,
"lib": 19874
},
"composer": {
"esm": 68247,
"lib": 101805
},
"core": {
"esm": 580157,
"lib": 725612
},
"forms": {
"esm": 37350,
"lib": 49298
},
"icons": {
"esm": 156355,
"lib": 205626
},
"layouts": {
"esm": 15298,
"lib": 20770
},
"metrics": {
"esm": 5467,
"lib": 7729
},
"test-utils": {
"esm": 4279,
"lib": 5937
}
} Current{
"apollo": {
"esm": 10832,
"lib": 14147
},
"app-shell": {
"esm": 12906,
"lib": 19874
},
"composer": {
"esm": 68247,
"lib": 101805
},
"core": {
"esm": 580380,
"lib": 725857
},
"forms": {
"esm": 37350,
"lib": 49298
},
"icons": {
"esm": 156355,
"lib": 205626
},
"layouts": {
"esm": 15298,
"lib": 20770
},
"metrics": {
"esm": 5467,
"lib": 7729
},
"test-utils": {
"esm": 4279,
"lib": 5937
}
} |
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.
Awesome! Had one question but LGTM overall.
Glad John will forever be immortalized in the new story 😅
@@ -314,23 +314,17 @@ export class Tooltip extends React.Component<TooltipProps & WithStylesProps, Too | |||
marginTop: above ? -(tooltipHeight + targetRect.height + distance) : distance, | |||
textAlign: align, | |||
})} | |||
onMouseEnter={handleMouseEnter} |
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.
can you elaborate on why this change was needed? Seems fine, wanted to check that the margin
areas didn't trigger the event listeners tho (like to the top/left of the actual content)
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.
wanted to check that the margin areas didn't trigger the event listeners tho (like to the top/left of the actual content)
I can assure this is ok with a gif (hacked in a larger margin so we can see the gif easily).
can you elaborate on why this change was needed?
Yesterday Erik and I ran into a weird case where if the mouse was on the trigger while the popup was opening in the direction the mouse came from, there wouldn't be a continuity between mouse enter trigger -> mouse leave trigger (because of the popup animation) -> mouse entering popup -> mouse leaving popup (when animations passes the cursor) -> mouse back on trigger.
Oddly enough, I don't seem to be encountering that today if I move the mouse handlers back down to the content div. But the first screenshot shows margins weren't causing an issue with the current implementation, so I think the handlers should be fine on either div.
horizontalAlign?: 'center' | 'left' | 'right'; | ||
/** True to use a light background with dark text. */ | ||
inverted?: boolean; | ||
/** Callback fired when the tooltip is closed. */ | ||
onClose?: () => void; | ||
/** Callback fired when the tooltip is shown. */ | ||
onShow?: () => void; | ||
/** True to enable interactive popover functionality */ | ||
/** True to enable interactive popover functionality. */ |
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.
thanks for adding these 😄
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.
np, I said I would in the last PR :)
b84aa90
to
ed856c4
Compare
ed856c4
to
004f789
Compare
to: @williaster @alecklandgraf
Description
This PR refactors Popover to render inside an
<Overlay>
component, just like the plain tooltip. It also moves the popupmouseEnter
andmouseLeave
handlers up to the popup content's outermost div.Note: We'll want to land #391 first, and then update the target of this PR to master. I set the base of this PR to the Overlay PR to facilitate code review.
Motivation and Context
The original Popover component rendered in a simple div with a style of
zIndex:1
. This was naive on my part for several reasons:Testing
Tested with existing unit tests and new story book story.
Screenshots
Checklist