Update components/blog-card.tsx
This commit is contained in:
parent
7467de2b19
commit
eafd12217d
|
|
@ -0,0 +1,51 @@
|
||||||
|
import Link from "next/link";
|
||||||
|
import React from "react";
|
||||||
|
import { BlurImage } from "./blur-image";
|
||||||
|
import { Logo } from "./Logo";
|
||||||
|
import Image from "next/image";
|
||||||
|
import Balancer from "react-wrap-balancer";
|
||||||
|
import { BlogWithSlug } from "@/lib/blog";
|
||||||
|
|
||||||
|
export const BlogCard = ({ blog }: { blog: BlogWithSlug }) => {
|
||||||
|
const truncate = (text: string, length: number) => {
|
||||||
|
return text.length > length ? text.slice(0, length) + "..." : text;
|
||||||
|
};
|
||||||
|
return (
|
||||||
|
<Link
|
||||||
|
className="shadow-derek rounded-3xl border dark:border-neutral-800 w-full bg-white dark:bg-neutral-900 overflow-hidden hover:scale-[1.02] transition duration-200"
|
||||||
|
href={`/blog/${blog.slug}`}
|
||||||
|
>
|
||||||
|
{blog.image ? (
|
||||||
|
<BlurImage
|
||||||
|
src={blog.image || ""}
|
||||||
|
alt={blog.title}
|
||||||
|
height="800"
|
||||||
|
width="800"
|
||||||
|
className="h-52 object-cover object-top w-full"
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<div className="h-52 flex items-center justify-center bg-white dark:bg-neutral-900">
|
||||||
|
<Logo />
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
<div className="p-4 md:p-8 bg-white dark:bg-neutral-900">
|
||||||
|
<div className="flex space-x-2 items-center mb-2">
|
||||||
|
<Image
|
||||||
|
src={blog.author.src}
|
||||||
|
alt={blog.author.name}
|
||||||
|
width={20}
|
||||||
|
height={20}
|
||||||
|
className="rounded-full h-5 w-5"
|
||||||
|
/>
|
||||||
|
<p className="text-sm font-normal text-muted">{blog.author.name}</p>
|
||||||
|
</div>
|
||||||
|
<p className="text-lg font-bold mb-4">
|
||||||
|
<Balancer>{blog.title}</Balancer>
|
||||||
|
</p>
|
||||||
|
<p className="text-left text-sm mt-2 text-muted">
|
||||||
|
{truncate(blog.description, 100)}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Link>
|
||||||
|
);
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue