blob: ce3bd5754486a9a66314efd94587903a08a3f2c1 [file]
import Link from "@docusaurus/Link";
import React from "react";
import { motion } from 'framer-motion'
const container = {
hidden: { opacity: 1, scale: 0 },
visible: {
opacity: 1,
scale: 1,
transition: {
delayChildren: 0.3,
staggerChildren: 0.2,
},
},
}
const item = {
hidden: { y: 20, opacity: 0 },
visible: {
y: 0,
opacity: 1,
},
}
export default function BlogPostLisView({ items }: any): JSX.Element {
return (
<motion.div
className="bloghome__posts-list"
variants={container}
initial="hidden"
animate="visible"
>
{
items.map(({ content: BlogPostContent }, index) => {
const { metadata: blogMetaData, frontMatter } = BlogPostContent;
const { title } = frontMatter;
const { permalink, date, tags } = blogMetaData;
const dateObj = new Date(date);
const year = dateObj.getFullYear();
let month = ("0" + (dateObj.getMonth() + 1)).slice(-2);
const day = ("0" + dateObj.getDate()).slice(-2);
return (
<React.Fragment key={blogMetaData.permalink}>
<motion.div
className="post__list-item"
key={blogMetaData.permalink}
variants={item}
>
<Link to={permalink} className="post__list-title">
{title}
</Link>
<div className="post__list-tags">
{tags.length > 0 &&
tags
.slice(0, 2)
.map(
(
{ label, permalink: tagPermalink },
index
) => (
<Link
key={tagPermalink}
className={`post__tags ${index < tags.length
? "margin-right--sm"
: ""
}`}
to={tagPermalink}
style={{
fontSize: "0.75em",
fontWeight: 500,
}}
>
{label}
</Link>
)
)}
</div>
<div className="post__list-date">
{year}-{month}-{day}
</div>
</motion.div>
</React.Fragment>
);
})
}
</motion.div>
)
}