import React, { useReducer } from 'react'; import { useAnimatedListItems } from './useAnimatedListItems'; type Mutation = 'reverse' | 'randomize' | 'insert' | 'remove'; export const AnimatedListDemo = () => { const [items, mutateItems] = useReducer( (prevState: string[], mutation: Mutation) => { switch (mutation) { case 'reverse': const newState = [...prevState]; newState.reverse(); return newState; default: return prevState; } }, ['Item 0', 'Item 1', 'Item 2', 'Item 3'], ); const { updateItemRef, updateItemPositions, itemStyles } = useAnimatedListItems({ keys: items }); return (
    {items.map((item) => { return (
  1. updateItemRef(item, li)} style={itemStyles[item]} > {item}
  2. ); })}
); };