Не работают анимации в React(React Transition Group)

Не работает анимация появления и удаления элемнта из списка

App.js:

import './App.css';
import {useMemo, useState} from "react";
import PostList from "./components/PostList";
import PostForm from "./components/PostForm";
import PostFilter from "./components/PostFilter";
import Modal from "./components/UI/Modal/Modal";
import Button from "./components/UI/Button/Button";

function App() {

    const [posts, setPosts] = useState([
        {id: 1, title: "JavaScript", body: "Programming language"}
    ]);


    const [modal , setModal] = useState(false);


    const [filter , setFilter] = useState({sort: "" , search: ""});


    const sortedPosts = useMemo(() => {
        console.log("getSortedPosts worked")
        if (filter.sort) {
            return [...posts].sort((a, b) => a[filter.sort].localeCompare(b[filter.sort]))
        }
        return posts
    }, [filter.sort, posts])



    const searchedAndSortedPosts = useMemo(() => {
        return sortedPosts.filter(post => post.title.toLowerCase().includes(filter.search.toLowerCase()))
    }, [sortedPosts, filter.search]);



    function deleteItem(id) {
        setPosts(posts.filter(post => post.id !== id))
    }



    function createItem(title, body) {
        const newItem = {
            title: title,
            body: body,
            id: Date.now(),
        }
        setPosts([...posts, newItem])
        setModal(false)
    }



    return (
        <div className="App">
            <Button
                style={{marginTop:"10px"}}
                onClick = {() => {
                    setModal(true);
                }}
            >Create post</Button>


            <Modal visible={modal} setVisible={setModal}>
                <PostForm createItem={createItem}/>
            </Modal>


            <PostFilter filter={filter} setFilter={setFilter}/>


            <PostList posts={searchedAndSortedPosts} title={"ToDo"} deleteItem{deleteItem}/>
        </div>
    );
}

export default App;

PostList.jsx:

import React from 'react';
import {CSSTransition, TransitionGroup} from "react-transition-group";
import PostItem from "./PostItem";
import "../styles/PostList.css"

function PostList({title, posts, deleteItem}) {

    if(posts.length === 0){
        return(
            <div className="post-list">
                <h1>
                    {title}
                </h1>

                <h1 style={{color:"gray" , fontSize:"5em"}}>
                    No Post
                </h1>
            </div>
        );
    }

    return (
        <div className="post-list">
            <h1>
                {title}
            </h1>

            <div>
                <TransitionGroup>
                    {posts.map((post, index) =>
                        <CSSTransition
                            key={post.id}
                            timeout={500}
                            classNames="post"
                        >
                            <PostItem deleteItem={deleteItem} number={index + 1} post={post} />
                        </CSSTransition>
                    )}
                </TransitionGroup>
            </div>

        </div>
    );
}

App.css:

.App{
  width: 800px;
  max-width: 800px;
  height: 100vh;
  display: flex;
  flex-direction: column;
}

.post-enter {
  transform: translateX(-350px);
}
.post-enter-active {
  transform: translateX(0px);
  transition: all 500ms ease-in;
}
.post-exit {
  opacity: 1;
}
.post-exit-active {
  transform: translateX(-350px);
  transition: all 500ms ease-in;
}

Ответы (0 шт):