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}
>
);
}