import type { Metadata } from "next" import { getTranslations, getMessages, setRequestLocale } from "next-intl/server" import { Link } from "@/i18n/navigation" import Image from "next/image" import { DocHeader } from "@/components/ui/doc-header" import { Callout } from "@/components/ui/callout" import CopyableCode from "@/components/CopyableCode" export async function generateMetadata({ params, }: { params: Promise<{ locale: string }> }): Promise { const { locale } = await params const t = await getTranslations({ locale, namespace: "docs.postInstall.automated.meta" }) return { title: t("title"), description: t("description"), openGraph: { title: t("ogTitle"), description: t("ogDescription"), type: "article", url: "https://macrimi.github.io/ProxMenux/docs/post-install/automated", }, } } type OptimizationRow = { tool: string; what: string; category: string; categorySlug: string } type RelatedItem = { label: string; href: string; tail: string } export default async function AutomatedPage({ params, }: { params: Promise<{ locale: string }> }) { const { locale } = await params setRequestLocale(locale) const t = await getTranslations({ locale, namespace: "docs.postInstall.automated" }) const messages = (await getMessages({ locale })) as unknown as { docs: { postInstall: { automated: { optimizations: OptimizationRow[] upgrade: { items: string[] } notDoes: { items: string[] } related: { items: RelatedItem[] } } } } } const optimizations = messages.docs.postInstall.automated.optimizations const upgradeItems = messages.docs.postInstall.automated.upgrade.items const notDoesItems = messages.docs.postInstall.automated.notDoes.items const relatedItems = messages.docs.postInstall.automated.related.items const code = (chunks: React.ReactNode) => {chunks} const strong = (chunks: React.ReactNode) => {chunks} const customLink = (chunks: React.ReactNode) => ( {chunks} ) const upgradeLink = (chunks: React.ReactNode) => ( {chunks} ) const secLink = (chunks: React.ReactNode) => ( {chunks} ) const virtLink = (chunks: React.ReactNode) => ( {chunks} ) const optLink = (chunks: React.ReactNode) => ( {chunks} ) const perfLink = (chunks: React.ReactNode) => ( {chunks} ) const storLink = (chunks: React.ReactNode) => ( {chunks} ) const overviewLink = (chunks: React.ReactNode) => ( {chunks} ) const uninstallLink = (chunks: React.ReactNode) => ( {chunks} ) return (
{t.rich("intro.body", { strong, link: customLink })}

{t("applies.heading")}

{t.rich("applies.intro", { em: (chunks) => {chunks}, })}

{optimizations.map((o, i) => ( ))}
{t("applies.headerNum")} {t("applies.headerTool")} {t("applies.headerWhat")} {t("applies.headerCategory")}
{i + 1} {o.tool} {o.what} {o.category}
{t.rich("hardwareBody", { code })}

{t("upgrade.heading")}

{t("upgrade.intro")}

{t.rich("upgrade.after", { strong, link: upgradeLink })}

    {upgradeItems.map((_, idx) => (
  • {t.rich(`upgrade.items.${idx}`, { code })}
  • ))}
{t.rich("upgrade.sameBody", { code, link: upgradeLink })}

{t("endResult.heading")}

{t("endResult.body")}

{t("endResult.imageAlt")}

{t("notDoes.heading")}

    {notDoesItems.map((_, idx) => (
  • {t.rich(`notDoes.items.${idx}`, { secLink, virtLink, optLink, perfLink, storLink })}
  • ))}
{t.rich("xshokBody", { code, link: overviewLink })}

{t("revert.heading")}

{t.rich("revert.body", { code, link: uninstallLink })}

{t("related.heading")}

    {relatedItems.map((item) => (
  • {item.label} {item.tail}
  • ))}
) }