1
0
Fork 0
blog/src/components/atoms/Image.tsx

57 lines
1.2 KiB
TypeScript
Raw Normal View History

2020-05-22 14:38:19 +02:00
import React, { ReactElement } from 'react'
2019-10-02 13:35:50 +02:00
import { graphql } from 'gatsby'
2021-03-06 02:58:10 +01:00
import { GatsbyImage } from 'gatsby-plugin-image'
2019-10-28 23:00:55 +01:00
import { ImageProps } from '../../@types/Image'
import * as styles from './Image.module.css'
2019-10-02 13:35:50 +02:00
2020-05-22 14:38:19 +02:00
export const Image = ({
title,
2021-03-06 02:58:10 +01:00
image,
2020-05-22 14:38:19 +02:00
alt,
2021-03-04 01:20:39 +01:00
original,
className
2020-05-22 14:38:19 +02:00
}: ImageProps): ReactElement => (
2021-03-04 01:20:39 +01:00
<figure
className={`${styles.image} ${className ? className : ''}`}
2021-03-13 04:11:44 +01:00
data-original={original?.src}
2021-03-04 01:20:39 +01:00
>
2021-11-28 22:49:16 +01:00
<GatsbyImage image={image} alt={alt} objectFit="contain" />
{title && <figcaption className={styles.imageTitle}>{title}</figcaption>}
2019-11-08 18:06:56 +01:00
</figure>
2019-10-28 23:00:55 +01:00
)
2019-10-02 13:35:50 +02:00
export const imageSizeDefault = graphql`
fragment ImageFluid on ImageSharp {
2019-10-28 23:00:55 +01:00
original {
src
}
2021-12-02 19:23:17 +01:00
gatsbyImageData(width: 1040)
2019-10-02 13:35:50 +02:00
}
`
export const imageSizeThumb = graphql`
fragment ImageFluidThumb on ImageSharp {
2019-10-28 23:00:55 +01:00
original {
src
}
2021-03-22 23:17:31 +01:00
gatsbyImageData(
width: 480
height: 180
transformOptions: { cropFocus: CENTER }
)
2020-07-19 13:31:27 +02:00
}
`
export const photoSizeThumb = graphql`
fragment PhotoFluidThumb on ImageSharp {
original {
src
}
2021-03-21 22:49:39 +01:00
gatsbyImageData(
width: 316
height: 316
transformOptions: { cropFocus: CENTER }
)
2019-10-02 13:35:50 +02:00
}
`