mirror of
https://github.com/kremalicious/portfolio.git
synced 2024-06-28 00:27:40 +02:00
79 lines
1.7 KiB
JavaScript
79 lines
1.7 KiB
JavaScript
import React, { PureComponent } from 'react'
|
|
import PropTypes from 'prop-types'
|
|
import { Link, StaticQuery, graphql } from 'gatsby'
|
|
import classNames from 'classnames'
|
|
import Vcard from '../atoms/Vcard'
|
|
import LogoUnit from '../molecules/LogoUnit'
|
|
import Networks from '../molecules/Networks'
|
|
import styles from './Footer.module.scss'
|
|
|
|
const query = graphql`
|
|
query {
|
|
# the package.json file
|
|
portfolioJson {
|
|
bugs
|
|
}
|
|
|
|
metaYaml {
|
|
title
|
|
url
|
|
gpg
|
|
}
|
|
}
|
|
`
|
|
|
|
const FooterMarkup = ({ pkg, meta, year }) => {
|
|
const classes = classNames('h-card', [styles.footer])
|
|
|
|
return (
|
|
<footer className={classes}>
|
|
<Link to={'/'}>
|
|
<LogoUnit minimal />
|
|
</Link>
|
|
|
|
<Networks minimal />
|
|
|
|
<p className={styles.actions}>
|
|
<Vcard />
|
|
<a className="u-key" href={meta.gpg}>
|
|
PGP/GPG key
|
|
</a>
|
|
<a href={pkg.bugs}>Found a bug?</a>
|
|
</p>
|
|
<p className={styles.copyright}>
|
|
<small>
|
|
© {year}{' '}
|
|
<a className="u-url" href={meta.url}>
|
|
{meta.title}
|
|
</a>{' '}
|
|
— All Rights Reserved
|
|
</small>
|
|
</p>
|
|
</footer>
|
|
)
|
|
}
|
|
|
|
FooterMarkup.propTypes = {
|
|
pkg: PropTypes.object.isRequired,
|
|
meta: PropTypes.object.isRequired,
|
|
year: PropTypes.number.isRequired
|
|
}
|
|
|
|
export default class Footer extends PureComponent {
|
|
state = { year: new Date().getFullYear() }
|
|
|
|
render() {
|
|
return (
|
|
<StaticQuery
|
|
query={query}
|
|
render={data => {
|
|
const pkg = data.portfolioJson
|
|
const meta = data.metaYaml
|
|
|
|
return <FooterMarkup year={this.state.year} pkg={pkg} meta={meta} />
|
|
}}
|
|
/>
|
|
)
|
|
}
|
|
}
|