redbadger/website-honestly

View on GitHub
site/templates/gold-coin-lp/preview-slice.js

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
// @flow
import React from 'react';

import styles from './style.css';

import Link from '../../components/link';
import Picture from '../../components/picture';

import { atAGlanceTypes } from './atAGlance';

export type PreviewSliceProps = {
  images: {
    main: string,
    large: string,
    medium: string,
    small: string,
  },
  title: string,
  type: string,
  subTitle: string,
  slug: string,
  duration: string,
  alt: string,
};

const PreviewSlice = ({
  images,
  title,
  subTitle,
  slug,
  duration,
  alt,
  type,
}: PreviewSliceProps) => (
  <Link className={styles.goldCoinLPPreview} to="goldCoinPage" navigationData={{ slug }}>
    <div className={styles.goldCoinLPDurationSmall}>{duration.toUpperCase()}</div>
    <div className={styles.goldCoinLPPreviewImageContainer}>
      <Picture
        xLargeSrc={images.main}
        largeSrc={images.large}
        mediumSrc={images.medium}
        smallSrc={images.small}
        alt={alt}
      />
    </div>
    <div className={styles.goldCoinLPPreviewText}>
      <h4 className={styles.h4}>{title}</h4>
      {atAGlanceTypes[type] && (
        <p className={styles.goldCoinLPPreviewSubtitle}>{atAGlanceTypes[type].text}</p>
      )}
      <p className={styles.previewCTA}>{subTitle}</p>
    </div>
  </Link>
);

export default PreviewSlice;