Skip to content

Feature request: Support for (Framer) Motion's AnimatePresence #209

@Undistraction

Description

@Undistraction

Motion provides a nice abstraction to handle animations when an item is added and removed through its AnimatePresence component. The requirement for this component to work is that it must directly wrap the component that is added or removed, i.e. it needs to be a constant, while its children are shown/hidden:

<AnimatePresence>
  isActive && <Example />
</AnimatePresence>

Unfortunately at the moment, wrapping the content will not not work, because the content is shown or hidden as needed, meaning <AnimatePresence> is also added and removed.

// Doesn't work

<Popover
  content={() => {
    return (
      <AnimatePresence>
        <motion.div  />
       </AnimatePresence>
    )
  } 

/>

To solve this, react-tiny-popover could expose a way to add a wrapper component that is permanently present, and into which content is added or removed.

It's a pretty popular library and getting more popular day by day, so this would be a useful feature to add, as I don't think there is a workaround at the moment. AnimatePresence does a great job of abstracting away the hassle with animating an element that is removed from the DOM and I'm sure other libraries will follow its approach.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions