refactor: update frontmatter type and change React to Astro

This commit is contained in:
satnaing
2023-01-26 22:54:24 +06:30
parent 57bf6d77a8
commit 7c1de46462
2 changed files with 40 additions and 31 deletions
+40
View File
@@ -0,0 +1,40 @@
---
import Datetime from "./Datetime";
import type { BlogFrontmatter } from "@content/schemas";
export interface Props {
href?: string;
frontmatter: BlogFrontmatter;
secHeading?: boolean;
}
const { href, frontmatter, secHeading } = Astro.props;
const { title, publishDatetime, description } = frontmatter;
---
<li class="card-container">
<a href={href} class="card-link">
{
secHeading ? (
<h2 class="card-heading">{title}</h2>
) : (
<h3 class="card-heading">{title}</h3>
)
}
</a>
<Datetime datetime={publishDatetime} />
<p>{description}</p>
</li>
<style>
.card-container {
@apply my-6;
}
.card-link {
@apply text-skin-accent font-medium text-lg underline-offset-4 decoration-dashed focus-visible:no-underline focus-visible:underline-offset-0 inline-block;
}
.card-heading {
@apply font-medium text-lg decoration-dashed hover:underline;
}
</style>
-31
View File
@@ -1,31 +0,0 @@
import Datetime from "./Datetime";
import type { Frontmatter } from "src/types";
export interface Props {
href?: string;
post: Frontmatter;
secHeading?: boolean;
}
const styles = {
cardContainer: "my-6",
titleLink:
"text-skin-accent font-medium text-lg underline-offset-4 decoration-dashed focus-visible:no-underline focus-visible:underline-offset-0 inline-block",
titleHeading: "font-medium text-lg decoration-dashed hover:underline",
};
export default function Card({ href, post, secHeading = true }: Props) {
return (
<li className={styles.cardContainer}>
<a href={href} className={styles.titleLink}>
{secHeading ? (
<h2 className={styles.titleHeading}>{post.title}</h2>
) : (
<h3 className={styles.titleHeading}>{post.title}</h3>
)}
</a>
<Datetime datetime={post.datetime} />
<p>{post.description}</p>
</li>
);
}