import React from 'react'; import { GatsbyImage } from 'gatsby-plugin-image'; import { Animation } from '../Animation'; import { useMediaQuery } from '../../hooks/useMediaQuery'; import { Icon } from '../Icon'; import { ImageObject } from '../../types'; import * as classes from './style.module.css'; enum LinkType { External = 'external', Github = 'github', } export interface Project { category?: string; title: string; description: string; image: ImageObject & { linkTo?: string }; tags?: string[]; links?: { type: LinkType; url: string; }[]; visible: boolean; } interface ProjectProps { data: Project; index: number; } export function Project(props: ProjectProps): React.ReactElement { const isDesktopBreakpoint = useMediaQuery('(min-width: 992px)'); return (
{props.data.category}

{props.data.title}

{props.data.description}

{props.data.tags && props.data.tags.length !== 0 && props.data.tags.map((tag, key) => { return ( {tag} ); })}
{props.data.links && props.data.links.length !== 0 && props.data.links.map((link, key) => { return ( ); })}
{props.data.image.src && props.data.image.linkTo && ( )} {props.data.image.src && !props.data.image.linkTo && ( )}
); }