import * as React from 'react'; import Button from '@mui/material/Button'; import Collapse from '@mui/material/Collapse'; import IconButton from '@mui/material/IconButton'; import List from '@mui/material/List'; import ListItem from '@mui/material/ListItem'; import ListItemText from '@mui/material/ListItemText'; import DeleteIcon from '@mui/icons-material/Delete'; import { TransitionGroup } from 'react-transition-group'; const FRUITS = [ '🍏 Apple', '🍌 Banana', '🍍 Pineapple', '🥥 Coconut', '🍉 Watermelon', ]; interface RenderItemOptions { item: string; handleRemoveFruit: (item: string) => void; } function renderItem({ item, handleRemoveFruit }: RenderItemOptions) { return ( handleRemoveFruit(item)} > } > ); } export default function TransitionGroupExample() { const [fruitsInBasket, setFruitsInBasket] = React.useState(FRUITS.slice(0, 3)); const handleAddFruit = () => { const nextHiddenItem = FRUITS.find((i) => !fruitsInBasket.includes(i)); if (nextHiddenItem) { setFruitsInBasket((prev) => [nextHiddenItem, ...prev]); } }; const handleRemoveFruit = (item: string) => { setFruitsInBasket((prev) => [...prev.filter((i) => i !== item)]); }; const addFruitButton = ( ); return (
{addFruitButton} {fruitsInBasket.map((item) => ( {renderItem({ item, handleRemoveFruit })} ))}
); }