diff --git a/components/examples-tests.js b/components/examples-tests.js index 8f037ba..de104dc 100644 --- a/components/examples-tests.js +++ b/components/examples-tests.js @@ -11,4 +11,10 @@ export default [ link: 'https://codesandbox.io/embed/j0y0vpz59', tags: ['useChain'], }, + { + name: 'tests/remove_multiple_items', + title: 'Remove multiple items', + link: '#', + tags: ['useTransition'], + }, ] diff --git a/demos/tests/remove_multiple_items/index.js b/demos/tests/remove_multiple_items/index.js new file mode 100644 index 0000000..f4ab024 --- /dev/null +++ b/demos/tests/remove_multiple_items/index.js @@ -0,0 +1,35 @@ +import React, { useState, useCallback } from "react"; +import { useTransition, animated } from "react-spring"; +import range from "lodash-es/range"; + +export default function Container() { + const [items, setItems] = useState(range(10)); + + const removeItems = useCallback(() => setItems(range(5))); + + const addItems = useCallback(() => setItems(range(10))); + + const transitions = useTransition(items, null, { + from: { transform: "translate3d(0,40px,0)", opacity: 0 }, + enter: { transform: "translate3d(0,0px,0)", opacity: 1 }, + leave: { transform: "translate3d(0,40px,0)", opacity: 0 } + }); + + return ( +