| | import Link from 'next/link' |
| | import { siteConfig } from '@/lib/config' |
| | import { checkContainHttp, sliceUrlFromHttp } from '@/lib/utils' |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | const BlogPostArchive = ({ posts = [], archiveTitle }) => { |
| | if (!posts || posts.length === 0) { |
| | return <></> |
| | } else { |
| | return ( |
| | <div> |
| | <div |
| | className="pt-16 pb-4 text-3xl dark:text-gray-300" |
| | id={archiveTitle} |
| | > |
| | {archiveTitle} |
| | </div> |
| | <ul> |
| | {posts?.map(post => { |
| | const url = checkContainHttp(post.slug) ? sliceUrlFromHttp(post.slug) : `${siteConfig('SUB_PATH', '')}/${post.slug}` |
| | return <li |
| | key={post.id} |
| | className="border-l-2 p-1 text-xs md:text-base items-center hover:scale-x-105 hover:border-indigo-500 dark:hover:border-indigo-300 dark:border-indigo-400 transform duration-500" |
| | > |
| | <div id={post?.publishDay}> |
| | <span className="text-gray-400">{post.date?.start_date}</span>{' '} |
| | |
| | <Link |
| | href={url} |
| | passHref |
| | className="dark:text-gray-400 dark:hover:text-indigo-300 overflow-x-hidden hover:underline cursor-pointer text-gray-600"> |
| | |
| | {post.title} |
| | |
| | </Link> |
| | </div> |
| | </li> |
| | })} |
| | </ul> |
| | </div> |
| | ) |
| | } |
| | } |
| |
|
| | export default BlogPostArchive |
| |
|