mirror of
https://github.com/vercel/next-learn.git
synced 2026-06-28 23:24:18 +00:00
58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
import Head from 'next/head'
|
||
import Layout, { siteTitle } from '../components/layout'
|
||
import utilStyles from '../styles/utils.module.css'
|
||
import { getSortedPostsData } from '../lib/posts'
|
||
import Link from 'next/link'
|
||
import Date from '../components/date'
|
||
import { GetStaticProps } from 'next'
|
||
|
||
export default function Home({
|
||
allPostsData
|
||
}: {
|
||
allPostsData: {
|
||
date: string
|
||
title: string
|
||
id: string
|
||
}[]
|
||
}) {
|
||
return (
|
||
<Layout home>
|
||
<Head>
|
||
<title>{siteTitle}</title>
|
||
</Head>
|
||
<section className={utilStyles.headingMd}>
|
||
<p>[Your Self Introduction]</p>
|
||
<p>
|
||
(This is a sample website - you’ll be building a site like this on{' '}
|
||
<a href="https://nextjs.org/learn">our Next.js tutorial</a>.)
|
||
</p>
|
||
</section>
|
||
<section className={`${utilStyles.headingMd} ${utilStyles.padding1px}`}>
|
||
<h2 className={utilStyles.headingLg}>Blog</h2>
|
||
<ul className={utilStyles.list}>
|
||
{allPostsData.map(({ id, date, title }) => (
|
||
<li className={utilStyles.listItem} key={id}>
|
||
<Link href="/posts/[id]" as={`/posts/${id}`}>
|
||
<a>{title}</a>
|
||
</Link>
|
||
<br />
|
||
<small className={utilStyles.lightText}>
|
||
<Date dateString={date} />
|
||
</small>
|
||
</li>
|
||
))}
|
||
</ul>
|
||
</section>
|
||
</Layout>
|
||
)
|
||
}
|
||
|
||
export const getStaticProps: GetStaticProps = async () => {
|
||
const allPostsData = getSortedPostsData()
|
||
return {
|
||
props: {
|
||
allPostsData
|
||
}
|
||
}
|
||
}
|