import type { ResolvedMetadata } from "../types/metadata-interface"; import React from "react"; import { Meta, MultiMeta } from "./meta"; export function BasicMetadata({ metadata }: { metadata: ResolvedMetadata }) { return ( <> {metadata.title !== null && metadata.title.absolute ? {metadata.title.absolute} : null} {metadata.authors ? metadata.authors.map((author, index) => ( {author.url && } )) : null} {metadata.manifest ? : null} {metadata.themeColor ? metadata.themeColor.map((themeColor, index) => ( )) : null} {metadata.archives ? metadata.archives.map((archive) => ( )) : null} {metadata.assets ? metadata.assets.map((asset) => ( )) : null} {metadata.bookmarks ? metadata.bookmarks.map((bookmark) => ( )) : null} {metadata.other ? Object.entries(metadata.other).map(([name, content]) => ( )) : null} ); } export function ItunesMeta({ itunes }: { itunes: ResolvedMetadata["itunes"] }) { if (!itunes) return null; const { appId, appArgument } = itunes; let content = `app-id=${appId}`; if (appArgument) { content += `, app-argument=${appArgument}`; } return ; } const formatDetectionKeys = [ "telephone", "date", "address", "email", "url", ] as const; export function FormatDetectionMeta({ formatDetection, }: { formatDetection: ResolvedMetadata["formatDetection"]; }) { if (!formatDetection) return null; let content = ""; for (const key of formatDetectionKeys) { if (key in formatDetection) { if (content) content += ", "; content += `${key}=no`; } } return ; } export function AppleWebAppMeta({ appleWebApp, }: { appleWebApp: ResolvedMetadata["appleWebApp"]; }) { if (!appleWebApp) return null; const { capable, title, startupImage, statusBarStyle } = appleWebApp; return ( <> {capable ? : null} {startupImage ? startupImage.map((image, index) => ( )) : null} {statusBarStyle ? ( ) : null} ); } export function VerificationMeta({ verification, }: { verification: ResolvedMetadata["verification"]; }) { if (!verification) return null; return ( <> {verification.other ? Object.entries(verification.other).map(([key, value], index) => ( )) : null} ); }