sitegen/framework/meta/nextjs/metadata.tsx
chloe caruso af60d1172f i accidentally deleted the repo, but recovered it. i'll start committing
it was weird. i pressed delete on a subfolder, i think one of the
pages.off folders that i was using. and then, suddenly, nvim on windows
7 decided to delete every file in the directory. they weren't shred off
the space time continuum, but just marked deleted. i had to pay $80 to
get access to a software that could see them. bleh!

just seeing all my work, a little over a week, was pretty heart
shattering. but i remembered that long ago, a close friend said i could
call them whenever i was feeling sad. i finally took them up on that
offer. the first time i've ever called someone for emotional support.
but it's ok. i got it back. and the site framework is better than ever.

i'm gonna commit and push more often. the repo is private anyways.
2025-06-06 23:38:02 -07:00

58 lines
1.7 KiB
TypeScript

import React from "react";
import {
AppleWebAppMeta,
BasicMetadata,
FormatDetectionMeta,
ItunesMeta,
VerificationMeta,
} from "./generate/basic";
import { AlternatesMetadata } from "./generate/alternate";
import {
AppLinksMeta,
OpenGraphMetadata,
TwitterMetadata,
} from "./generate/opengraph";
import { IconsMetadata } from "./generate/icons";
import { accumulateMetadata, resolveMetadata } from "./resolve-metadata";
import { LoaderTree } from "../../server/lib/app-dir-module";
import { GetDynamicParamFromSegment } from "../../server/app-render/app-render";
// Generate the actual React elements from the resolved metadata.
export async function MetadataTree({
tree,
pathname,
searchParams,
getDynamicParamFromSegment,
}: {
tree: LoaderTree;
pathname: string;
searchParams: { [key: string]: any };
getDynamicParamFromSegment: GetDynamicParamFromSegment;
}) {
const options = {
pathname,
};
const resolvedMetadata = await resolveMetadata({
tree,
parentParams: {},
metadataItems: [],
searchParams,
getDynamicParamFromSegment,
});
const metadata = await accumulateMetadata(resolvedMetadata, options);
return (
<>
<BasicMetadata metadata={metadata} />
<AlternatesMetadata alternates={metadata.alternates} />
<ItunesMeta itunes={metadata.itunes} />
<FormatDetectionMeta formatDetection={metadata.formatDetection} />
<VerificationMeta verification={metadata.verification} />
<AppleWebAppMeta appleWebApp={metadata.appleWebApp} />
<OpenGraphMetadata openGraph={metadata.openGraph} />
<TwitterMetadata twitter={metadata.twitter} />
<AppLinksMeta appLinks={metadata.appLinks} />
<IconsMetadata icons={metadata.icons} />
</>
);
}