gatsby-theme-advanced
Version:
GatsbyJS theme equipped with advanced features.
30 lines (29 loc) • 1.32 kB
JSX
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const TwitterTags = ({ seoData, userData, websiteData, }) => {
const { title, description, imageUrl, imageAlt } = seoData;
const userTwitterName = userData === null || userData === void 0 ? void 0 : userData.twitterName;
const siteTwitterName = websiteData.twitterName;
const tagList = [];
// This function acts as a type guard to prevent undefined content from being added
const addTag = (name, content) => {
tagList.push(<meta name={name} content={content}/>);
};
addTag("twitter:card", "summary_large_image");
addTag("twitter:title", title);
if (description)
addTag("twitter:description", description);
if (imageUrl)
addTag("twitter:image", imageUrl);
addTag("twitter:image:alt", imageAlt);
if (userTwitterName)
addTag("twitter:creator", userTwitterName);
if (siteTwitterName)
addTag("twitter:site", siteTwitterName);
return tagList.map((tag) => (Object.assign(Object.assign({}, tag), { key: tag.props.name })));
};
exports.default = TwitterTags;