import { ContentContainer, Page } from "@/components/layouts/layouts"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Footer } from "@/components/utils/Footer"; import { NavBar } from "@/components/utils/NavBar"; import { PostList } from "@/components/utils/PostList"; import { SEO } from "@/components/utils/SEO"; import { PostCountPerPagination } from "@/consts/consts"; import { Config } from "@/data/config"; import { sortedPosts } from "@/lib/post-process"; import { paginateArray } from "@/lib/utils"; import { fontFangZhengXiaoBiaoSongCN } from "@/styles/font"; import { TPostListItem } from "@/types/post-list"; import { GetStaticPaths, GetStaticProps } from "next"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { ChangeEvent, KeyboardEvent, useEffect, useState } from "react"; import { LuPenTool } from "react-icons/lu"; type PostsPageProps = { pageAmount: number; pageNumber: number; postList: TPostListItem[]; }; export default function PostsPage(props: PostsPageProps) { const router = useRouter(); const [pageNumber, setPageNumber] = useState(props.pageNumber.toString()); const handleEnterKeyJump = (event: KeyboardEvent) => { setPageNumber(pageNumber.replace(/[^\d]/g, "")); if (parseInt(pageNumber) > 0 && parseInt(pageNumber) < props.pageAmount + 1) { (event.key === "Go" || event.key === "Enter") && router.push(`/posts/${pageNumber}`); return; } }; const handleChangePageNumber = (event: ChangeEvent) => { setPageNumber(event.target.value); }; useEffect(() => { setPageNumber(props.pageNumber.toString().replace(/[^\d]/g, "")); }, [props.pageNumber]); return (

{"ALL POSTS"}


{props.pageNumber !== 1 && ( )}
{` / ${props.pageAmount}`}
{props.pageNumber !== props.pageAmount && ( )}