import { useEffect } from 'react';
import { PROJECT_DISPLAY_NAME } from '@/components/Logo';
interface SEOProps {
title?: string;
/** Exact document title, used verbatim without the `| PROJECT_DISPLAY_NAME` suffix. */
fullTitle?: string;
description?: string;
}
/**
* Lightweight SEO component that updates document title and meta description.
*
* Usage:
*
*
*
*/
export function SEO({ title, fullTitle, description }: SEOProps) {
useEffect(() => {
document.title =
fullTitle ?? (title ? `${title} | ${PROJECT_DISPLAY_NAME}` : PROJECT_DISPLAY_NAME);
}, [title, fullTitle]);
useEffect(() => {
if (!description) return;
let meta = document.querySelector('meta[name="description"]');
if (!meta) {
meta = document.createElement('meta');
meta.setAttribute('name', 'description');
document.head.appendChild(meta);
}
meta.setAttribute('content', description);
}, [description]);
return null;
}