1
0
mirror of https://github.com/kremalicious/blog.git synced 2025-02-14 21:10:25 +01:00
blog/src/components/molecules/Featured.tsx

42 lines
1.0 KiB
TypeScript

import React from 'react'
import { Link, graphql, useStaticQuery } from 'gatsby'
import { Image } from '../atoms/Image'
import styles from './Featured.module.scss'
import { Post } from '../../@types/Post'
const query = graphql`
query {
allMarkdownRemark(
filter: { frontmatter: { featured: { eq: true } } }
sort: { fields: [fields___date], order: DESC }
) {
edges {
node {
...PostTeaser
}
}
}
}
`
export default function Featured() {
const data = useStaticQuery(query)
return (
<div className={styles.featured}>
{data.allMarkdownRemark.edges.map(({ node }: { node: Post }) => {
const { title, image } = node.frontmatter
const { slug } = node.fields
return (
<article className={styles.featuredItem} key={node.id}>
<Link to={slug}>
<Image fluid={image.childImageSharp.fluid} alt={title} />
<h1 className={styles.featuredTitle}>{title}</h1>
</Link>
</article>
)
})}
</div>
)
}