All files / src/templates/ContentPage template.tsx

0% Statements 0/6
0% Branches 0/2
0% Functions 0/1
0% Lines 0/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57                                                                                                                 
import React from 'react';
import { graphql } from 'gatsby';
import { Helmet } from 'react-helmet';
import { Content, Layout } from '../../components';
import { GatsbyImage, getImage } from 'gatsby-plugin-image';
import { useTranslation } from 'react-i18next';
 
export const query = graphql`
  query ContentPage($slug: String!) {
    page: strapiContentPage(slug: {eq: $slug}) {
      title
      content {
        text
        items {
          title
          content
        }
      }
      image {
        childImageSharp {
          gatsbyImageData(formats: JPG, layout: FULL_WIDTH)
        }
      }  
    }
  }
`;
 
const ContentPage = ({ data }) => {
  const page = data.page;
  const image = getImage(page.image);
 
  const { t } = useTranslation();
 
  return (
    <Layout
      before={
        <div>
          {image && <GatsbyImage
            image={image}
            style={{ maxHeight: '300px' }}
            alt={page.title}
          />}
        </div>
      }
    >
      <Helmet>
        <title>{page.title} | {t('sitename')}</title>
      </Helmet>
      <Content
        title={page.title}
        content={page.content}
      />
    </Layout>
  );
};
 
export default ContentPage;