mirror of
https://github.com/hanzoai/next.js.git
synced 2026-10-30 14:46:38 +00:00
Uses the improved TypeGen just released in `sanity` [v3.53.0](https://github.com/sanity-io/sanity/releases/tag/v3.53.0) 🥳
47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import Link from "next/link";
|
|
|
|
import Avatar from "./avatar";
|
|
import CoverImage from "./cover-image";
|
|
import DateComponent from "./date";
|
|
|
|
import { sanityFetch } from "@/sanity/lib/fetch";
|
|
import { moreStoriesQuery } from "@/sanity/lib/queries";
|
|
|
|
export default async function MoreStories(params: {
|
|
skip: string;
|
|
limit: number;
|
|
}) {
|
|
const data = await sanityFetch({ query: moreStoriesQuery, params });
|
|
|
|
return (
|
|
<>
|
|
<div className="mb-32 grid grid-cols-1 gap-y-20 md:grid-cols-2 md:gap-x-16 md:gap-y-32 lg:gap-x-32">
|
|
{data?.map((post) => {
|
|
const { _id, title, slug, coverImage, excerpt, author } = post;
|
|
return (
|
|
<article key={_id}>
|
|
<Link href={`/posts/${slug}`} className="group mb-5 block">
|
|
<CoverImage image={coverImage} priority={false} />
|
|
</Link>
|
|
<h3 className="text-balance mb-3 text-3xl leading-snug">
|
|
<Link href={`/posts/${slug}`} className="hover:underline">
|
|
{title}
|
|
</Link>
|
|
</h3>
|
|
<div className="mb-4 text-lg">
|
|
<DateComponent dateString={post.date} />
|
|
</div>
|
|
{excerpt && (
|
|
<p className="text-pretty mb-4 text-lg leading-relaxed">
|
|
{excerpt}
|
|
</p>
|
|
)}
|
|
{author && <Avatar name={author.name} picture={author.picture} />}
|
|
</article>
|
|
);
|
|
})}
|
|
</div>
|
|
</>
|
|
);
|
|
}
|