// @ts-nocheck import { useMemo, useEffect } from "react" import MainTemplate from "@/templates/MainTemplate" import { useParams, useNavigate } from "react-router" import { convertDate } from "@/utils/convertDate" import { Pagination, PaginationContent, PaginationItem, PaginationNext, PaginationPrevious, } from "@/components/ui/pagination" import { Card, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card" import { Badge } from "@/components/ui/badge" import { Link } from "react-router" import { usePosts } from "@/hooks/usePosts" const PostsPage = () => { const { page } = useParams() const navigate = useNavigate() const { posts } = usePosts() const postsPerPage = 10 const currentPage = Number(page) || 1 const totalPages = Math.ceil(posts.length / postsPerPage) useEffect(() => { if (currentPage < 1 || currentPage > totalPages) { navigate(`/posts/page/1`, { replace: true }) } }, [currentPage, totalPages, navigate]) const currentPosts = useMemo(() => { const startIndex = (currentPage - 1) * postsPerPage const endIndex = startIndex + postsPerPage return posts.slice(startIndex, endIndex) }, [posts, currentPage, postsPerPage]) const hasNextPage = currentPage < totalPages const hasPrevPage = currentPage > 1 const goToNextPage = () => { if (hasNextPage) { navigate(`/posts/page/${currentPage + 1}`) } } const goToPrevPage = () => { if (hasPrevPage) { navigate(`/posts/page/${currentPage - 1}`) } } return (

All posts

{currentPosts.map((post) => ( {post.title}
{convertDate(post.date)}
{post.tags.map((tag, i) => ( { e.preventDefault() e.stopPropagation() navigate(`/tags/${tag}`) }} > {tag} ))}
))}
) } export { PostsPage }