react-reverse-portal icon indicating copy to clipboard operation
react-reverse-portal copied to clipboard

Props stay the same when InPortal content is hidden

Open ARival opened this issue 3 years ago • 3 comments

We use an Intersection Observer to determine whether a video is in view and to render it. The problem arises when the video leaves all OutPortals: it maintains the props that it received before going back 'into hiding', so inView prop never gets set to false and

Is there a way to force the detached component to revert back to default props whenever it is hidden? Or some sort of workaround? I'm just looking for any way for the component to have state that triggers when it is detached from the DOM.

ARival avatar Mar 20 '22 07:03 ARival

Hi, can you share a repro of the issue so I can see it for myself?

I'm not totally clear, but it sounds like this is a bug, since leaving the OutPortal should indeed reset props to their original state. A repro would be very helpful to confirm that. If you've already found the cause, a PR to fix this would also be very welcome!

pimterry avatar Mar 21 '22 13:03 pimterry

Hey there! If I get some bandwidth, I'll try to set up a project with a repro.

I'm diving into the code to as well to see if there's anything obvious to fix.

ARival avatar Mar 21 '22 17:03 ARival

Hey there, I've encountered the same issue. It's because nothing in <OutPortal/> calls node.setPortalProps on unmount.

Edit: I've created a PR with an initial implementation of portal prop resetting. Let me know what you think! https://github.com/httptoolkit/react-reverse-portal/pull/38

adri1wald avatar Jul 11 '22 14:07 adri1wald