import { DetailedHTMLProps, MetaHTMLAttributes } from 'react' import Head from 'next/head' import { webBaseURL } from '../../lib/appConfig' type MetaTag = DetailedHTMLProps< MetaHTMLAttributes, HTMLMetaElement > export type PageMetaDataProps = { path: string title: string description?: string ogImage?: string ogImageType?: string metaTags?: MetaTag[] } function openGraphType(ogImage: string | null): string { if (!ogImage) return '' if (typeof ogImage !== 'string') return '' if (ogImage.endsWith('.png')) return 'image/png' if (ogImage.endsWith('.jpg')) return 'image/jpeg' if (ogImage.endsWith('.jpeg')) return 'image/jpeg' return '' } export function PageMetaData(props: PageMetaDataProps): JSX.Element { return ( {props.ogImage && ( <> )} {props.ogImage && ( )} {props.ogImage && ( )} {props.ogImage && ( )} {props.title && ( <> )} {props.title && {props.title}} {props.description && ( <> )} {props.path && ( )} {props.path && ( )} {/* Custom additional meta tags */} {props.metaTags?.map((metatag, i) => ( ))} ) }