|
import { DeletePost, EditPost } from '@/features/Post'; |
|
import { PostCard, useFetchPosts } from '@/entities/Post'; |
|
import { classNames } from '@/shared/lib/classNames/classNames'; |
|
import cls from './PostList.module.scss'; |
|
|
|
interface PostListProps { |
|
className?: string; |
|
} |
|
|
|
export const PostList = (props: PostListProps) => { |
|
const { className } = props; |
|
const { data, isPending, isError } = useFetchPosts(); |
|
|
|
if (isPending) { |
|
return <div>...Идет загрузка</div>; |
|
} |
|
if (isError) { |
|
return <div>Произошла непредвиденная ошибка</div>; |
|
} |
|
|
|
return ( |
|
<div className={classNames(cls.PostList, {}, [className])}> |
|
{data?.map((post) => ( |
|
<PostCard |
|
key={post.id} |
|
post={post} |
|
editButton={<EditPost postId={post.id} />} |
|
deleteButton={<DeletePost postId={post.id} />} |
|
/> |
|
))} |
|
</div> |
|
); |
|
}; |
|
|