import BLOG from '@/blog.config'
import Link from 'next/link'
import { useRouter } from 'next/router'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faAngleLeft, faAngleRight } from '@fortawesome/free-solid-svg-icons'
/**
* 数字翻页插件
* @param page 当前页码
* @param showNext 是否有下一页
* @returns {JSX.Element}
* @constructor
*/
const PaginationNumber = ({ page, showNext, totalPage }) => {
const router = useRouter()
const currentPage = +page
const pages = generatePages(page, currentPage, totalPage)
return (
{/* 上一页 */}
{pages}
{/* 下一页 */}
)
}
function getPageElement (page, currentPage) {
return
{page}
}
function generatePages (page, currentPage, totalPage) {
const pages = []
const startPage = 1 // 分组开始页码
const groupCount = 5 // 页码分组
if (totalPage <= 10) {
for (let i = 1; i <= totalPage; i++) {
pages.push(getPageElement(i, page))
}
} else {
pages.push(getPageElement(1, page))
let pageLength = 0
if (groupCount + startPage > totalPage) {
pageLength = totalPage
} else {
pageLength = groupCount + startPage
}
if (currentPage >= groupCount) {
pages.push(...
)
}
for (let i = startPage; i < pageLength; i++) {
if (i <= totalPage - 1 && i > 1) {
pages.push(getPageElement(i, page))
}
}
if (totalPage - startPage >= groupCount + 1) {
pages.push(...
)
}
pages.push(getPageElement(totalPage, page))
}
return pages
}
export default PaginationNumber