diff --git a/apps/web/src/app/(main)/sheet/[moduleId]/page.tsx b/apps/web/src/app/(main)/sheet/[moduleId]/page.tsx index 8d1704b0..c59cbd14 100644 --- a/apps/web/src/app/(main)/sheet/[moduleId]/page.tsx +++ b/apps/web/src/app/(main)/sheet/[moduleId]/page.tsx @@ -3,11 +3,27 @@ import { getSheetModules } from "@/data/sheet"; import { SheetModuleHeader } from "@/components/sheet/SheetModuleHeader"; import { SheetContentRenderer } from "@/components/sheet/SheetContentRenderer"; import styles from "./sheet-content.module.css"; +import { Metadata } from "next"; +import { capitalizeFirstLetter } from "@/lib/utils"; interface PageProps { params: Promise<{ moduleId: string }>; } +export async function generateMetadata({ + params, +}: PageProps): Promise { + const { moduleId } = await params; + + const sheetModules = getSheetModules(); + const sheetModule = sheetModules.find((m) => m.id === moduleId); + + return { + title: `${capitalizeFirstLetter(sheetModule?.id || "Modules")}: ${sheetModule?.name || ""} `, + description: `This module describes how to ${sheetModule?.name.toLowerCase()}`, + }; +} + export default async function SheetModulePage({ params }: PageProps) { const { moduleId } = await params; const sheetModules = getSheetModules(); diff --git a/apps/web/src/lib/utils.ts b/apps/web/src/lib/utils.ts index bd0c391d..2fda5498 100644 --- a/apps/web/src/lib/utils.ts +++ b/apps/web/src/lib/utils.ts @@ -4,3 +4,7 @@ import { twMerge } from "tailwind-merge" export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)) } + +export const capitalizeFirstLetter = (word: string): string => { + return word.charAt(0).toUpperCase() + word.slice(1); +}