Some checks failed
CI / Tests / 🧪 Test (push) Has been cancelled
Two visible launch-polish issues: 1. BuyCtaDialog popup was firing on an exponential backoff schedule (15s, 30s, 60s, …) pushing users toward turbostarter.dev/#pricing + Discord. Wrong product, wrong audience. Fully removed: mount point in [locale]/layout.tsx + the component file + localStorage keys will self-prune on next visit. 2. WhatsApp/Slack/Twitter link previews were pulling the TurboStarter boilerplate opengraph-image.png (from Jan 8). Replaced with a 1200×630 claudemesh OG: "CLAUDEMESH" pixel wordmark left side, hero mesh composition (6 Claude Code terminals + pixel-crab hub + orange energy lattice + vaporwave grid floor) right side, "peer mesh for Claude Code sessions" tagline in mono beneath wordmark. 3. Default metadata description swapped from the dangling `common:product.description` i18n key (which rendered as the key itself because the key doesn't exist in our trimmed translations) to a hardcoded claudemesh description. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
40 lines
996 B
TypeScript
40 lines
996 B
TypeScript
import { notFound } from "next/navigation";
|
|
|
|
import { config, isLocaleSupported } from "@turbostarter/i18n";
|
|
|
|
import { getMetadata } from "~/lib/metadata";
|
|
import { Providers } from "~/lib/providers/providers";
|
|
import { ImpersonatingBanner } from "~/modules/admin/users/user/impersonating-banner";
|
|
import { BaseLayout } from "~/modules/common/layout/base";
|
|
import { Toaster } from "~/modules/common/toast";
|
|
|
|
export function generateStaticParams() {
|
|
return config.locales.map((locale) => ({ locale }));
|
|
}
|
|
|
|
export const generateMetadata = getMetadata();
|
|
|
|
export default async function RootLayout({
|
|
children,
|
|
params,
|
|
}: {
|
|
children: React.ReactNode;
|
|
params: Promise<{ locale: string }>;
|
|
}) {
|
|
const locale = (await params).locale;
|
|
|
|
if (!isLocaleSupported(locale)) {
|
|
return notFound();
|
|
}
|
|
|
|
return (
|
|
<BaseLayout locale={locale}>
|
|
<Providers locale={locale}>
|
|
<ImpersonatingBanner />
|
|
{children}
|
|
<Toaster />
|
|
</Providers>
|
|
</BaseLayout>
|
|
);
|
|
}
|