@spoolcms/nextjs
Version:
The beautiful headless CMS for Next.js developers
20 lines (19 loc) • 2.06 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SpoolSEO = SpoolSEO;
const jsx_runtime_1 = require("react/jsx-runtime");
const head_1 = __importDefault(require("next/head"));
/**
* SEO component for Pages Router
* @deprecated Use generateSpoolMetadata for App Router instead
*/
function SpoolSEO({ content, collection, path, siteUrl = '' }) {
const title = content.data?.seoTitle || content.data?.title || 'Untitled';
const description = content.data?.seoDescription || content.data?.description || content.data?.excerpt || '';
const canonicalUrl = content.data?.canonicalUrl || `${siteUrl}${path}`;
const ogImage = content.data?.ogImage || `${siteUrl}/api/og?title=${encodeURIComponent(title)}`;
return ((0, jsx_runtime_1.jsxs)(head_1.default, { children: [(0, jsx_runtime_1.jsx)("title", { children: title }), (0, jsx_runtime_1.jsx)("meta", { name: "description", content: description }), (0, jsx_runtime_1.jsx)("meta", { property: "og:title", content: content.data?.ogTitle || title }), (0, jsx_runtime_1.jsx)("meta", { property: "og:description", content: content.data?.ogDescription || description }), (0, jsx_runtime_1.jsx)("meta", { property: "og:image", content: ogImage }), (0, jsx_runtime_1.jsx)("meta", { property: "og:url", content: canonicalUrl }), (0, jsx_runtime_1.jsx)("meta", { property: "og:type", content: "article" }), (0, jsx_runtime_1.jsx)("meta", { name: "twitter:card", content: "summary_large_image" }), (0, jsx_runtime_1.jsx)("meta", { name: "twitter:title", content: title }), (0, jsx_runtime_1.jsx)("meta", { name: "twitter:description", content: description }), (0, jsx_runtime_1.jsx)("meta", { name: "twitter:image", content: ogImage }), (0, jsx_runtime_1.jsx)("link", { rel: "canonical", href: canonicalUrl }), content.data?.noIndex && (0, jsx_runtime_1.jsx)("meta", { name: "robots", content: "noindex, nofollow" })] }));
}