diff --git a/dev/tests/animate-presence-remove.tsx b/dev/tests/animate-presence-remove.tsx new file mode 100644 index 0000000000..319ad2f583 --- /dev/null +++ b/dev/tests/animate-presence-remove.tsx @@ -0,0 +1,45 @@ +import { AnimatePresence, motion } from "framer-motion" +import * as React from "react" +import { useState } from "react" +import styled from "styled-components" + +const Container = styled.section` + position: relative; + display: flex; + flex-direction: column; + padding: 100px; + + div { + width: 100px; + height: 100px; + background-color: red; + } +` + +const Box = ({ id }: { id: number }) => { + return ( + + ) +} + +export const App = () => { + const [range, setRange] = useState([0, 1, 2]) + + return ( + + + + {range.map((i) => ( + + ))} + + + ) +} diff --git a/packages/framer-motion/cypress/integration/animate-presence-remove.ts b/packages/framer-motion/cypress/integration/animate-presence-remove.ts new file mode 100644 index 0000000000..f6f0b4532c --- /dev/null +++ b/packages/framer-motion/cypress/integration/animate-presence-remove.ts @@ -0,0 +1,15 @@ +describe("AnimatePresence", () => { + it("Ensures all elements are removed", () => { + cy.visit("?test=animate-presence-remove") + .wait(50) + .get("#remove") + .trigger("click", 1, 1, { force: true }) + .wait(100) + .trigger("click", 1, 1, { force: true }) + .wait(700) + .get(".box") + .should((results) => { + expect(results.length).to.equal(1) + }) + }) +}) diff --git a/yarn.lock b/yarn.lock index 97827d46d5..83e265e32f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7844,8 +7844,8 @@ __metadata: cache-loader: ^1.2.5 convert-tsconfig-paths-to-webpack-aliases: ^0.9.2 fork-ts-checker-webpack-plugin: ^6.2.0 - framer-motion: ^10.12.8 - framer-motion-3d: ^10.12.8 + framer-motion: ^10.12.9 + framer-motion-3d: ^10.12.9 path-browserify: ^1.0.1 react: ^18.2.0 react-dom: ^18.2.0 @@ -7911,14 +7911,14 @@ __metadata: languageName: unknown linkType: soft -"framer-motion-3d@^10.12.8, framer-motion-3d@workspace:packages/framer-motion-3d": +"framer-motion-3d@^10.12.9, framer-motion-3d@workspace:packages/framer-motion-3d": version: 0.0.0-use.local resolution: "framer-motion-3d@workspace:packages/framer-motion-3d" dependencies: "@react-three/fiber": ^8.2.2 "@react-three/test-renderer": ^9.0.0 "@rollup/plugin-commonjs": ^22.0.1 - framer-motion: ^10.12.8 + framer-motion: ^10.12.9 react-merge-refs: ^2.0.1 peerDependencies: "@react-three/fiber": ^8.2.2 @@ -7928,7 +7928,7 @@ __metadata: languageName: unknown linkType: soft -"framer-motion@^10.12.8, framer-motion@workspace:packages/framer-motion": +"framer-motion@^10.12.9, framer-motion@workspace:packages/framer-motion": version: 0.0.0-use.local resolution: "framer-motion@workspace:packages/framer-motion" dependencies: