rsnext/examples/cms-cosmic/components/post-preview.tsx

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

39 lines
1 KiB
TypeScript
Raw Normal View History

import Avatar from "./avatar";
import Date from "./date";
import CoverImage from "./cover-image";
import Link from "next/link";
import { AuthorType, ImgixType } from "interfaces";
type PostPreviewProps = {
title: string;
coverImage: ImgixType;
date: string;
excerpt: string;
author: AuthorType;
slug: string;
};
const PostPreview = (props: PostPreviewProps) => {
const { title, coverImage, date, excerpt, author, slug } = props;
return (
<div>
<div className="mb-5">
<CoverImage slug={slug} title={title} url={coverImage.imgix_url} />
</div>
<h3 className="text-3xl mb-3 leading-snug">
<Link href={`/posts/${slug}`} className="hover:underline">
{title}
</Link>
</h3>
<div className="text-lg mb-4">
<Date dateString={date} />
</div>
<p className="text-lg leading-relaxed mb-4">{excerpt}</p>
<Avatar name={author.title} picture={author.metadata.picture.imgix_url} />
</div>
);
};
export default PostPreview;