soames-gatsby-theme
Version:
A customizable Gatsby theme for personal websites using WordPress as a headless CMS.
60 lines (59 loc) • 1.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const jsx_runtime_1 = require("react/jsx-runtime");
const react_helmet_1 = require("react-helmet");
const gatsby_1 = require("gatsby");
const Seo = ({ title, description = "", lang = "en", meta = [], }) => {
const { wp, wpUser } = (0, gatsby_1.useStaticQuery)((0, gatsby_1.graphql) `
query {
wp {
generalSettings {
title
description
}
}
wpUser {
name
}
}
`);
const metaDescription = description || wp.generalSettings?.description;
const defaultTitle = wp.generalSettings?.title;
const twitterHandle = wpUser?.name || "";
return ((0, jsx_runtime_1.jsx)(react_helmet_1.Helmet, { htmlAttributes: { lang }, title: title, titleTemplate: defaultTitle ? `%s | ${defaultTitle}` : undefined, 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: twitterHandle,
},
{
name: "twitter:title",
content: title,
},
{
name: "twitter:description",
content: metaDescription,
},
...meta,
] }));
};
exports.default = Seo;