UNPKG

aliaset

Version:
90 lines (83 loc) 1.85 kB
import { useStaticQuery, graphql } from 'gatsby' import PropTypes from 'prop-types' import React from 'react' import { Helmet } from 'react-helmet' function SEO({ description, lang, meta, keywords, title }) { const { site } = useStaticQuery(graphql` query DefaultSEOQuery { site { siteMetadata { title description author } } } `) const metaDescription = description || site.siteMetadata.description return ( <Helmet htmlAttributes={{ lang, }} meta={[ { name: `description`, content: metaDescription, }, { property: `og:title`, content: title, }, { property: `og:description`, content: metaDescription, }, { property: `og:type`, content: `website`, }, { name: `twitter:card`, content: `summary`, }, { name: `twitter:creator`, content: site.siteMetadata.author, }, { name: `twitter:title`, content: title, }, { name: `twitter:description`, content: metaDescription, }, ] .concat( keywords.length > 0 ? { name: `keywords`, content: keywords.join(`, `), } : [], ) .concat(meta)} title={title} titleTemplate={`%s | ${site.siteMetadata.title}`} /> ) } SEO.defaultProps = { lang: `en`, keywords: [], meta: [], } SEO.propTypes = { description: PropTypes.string, keywords: PropTypes.arrayOf(PropTypes.string), lang: PropTypes.string, meta: PropTypes.array, title: PropTypes.string.isRequired, } export default SEO