mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-06-11 09:51:40 +00:00
* feat: init * fix * fix * fix * feat * feat * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * feat: implement icons * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * feat: update init command * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * feat: dialog * feat * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * feat: add registry:base item type * feat: rename frame to canva * fix * feat * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fi * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * feat: add all colors * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * feat: add outfit font * fix * fix * fix * fix * fix * chore: changeset * fix * fix * fix * fix * fix * fix * fix * fix
55 lines
1.1 KiB
TypeScript
55 lines
1.1 KiB
TypeScript
import { type Metadata } from "next"
|
|
import { notFound } from "next/navigation"
|
|
|
|
import { componentRegistry } from "@/app/(internal)/sink/component-registry"
|
|
|
|
export const dynamic = "force-static"
|
|
export const revalidate = false
|
|
|
|
export async function generateStaticParams() {
|
|
return Object.keys(componentRegistry).map((name) => ({
|
|
name,
|
|
}))
|
|
}
|
|
|
|
export async function generateMetadata({
|
|
params,
|
|
}: {
|
|
params: Promise<{ name: string }>
|
|
}): Promise<Metadata> {
|
|
const { name } = await params
|
|
const component = componentRegistry[name as keyof typeof componentRegistry]
|
|
|
|
if (!component) {
|
|
return {
|
|
title: "Component Not Found",
|
|
}
|
|
}
|
|
|
|
return {
|
|
title: `${component.name} - Kitchen Sink`,
|
|
description: `Demo page for ${component.name} component`,
|
|
}
|
|
}
|
|
|
|
export default async function ComponentPage({
|
|
params,
|
|
}: {
|
|
params: Promise<{ name: string }>
|
|
}) {
|
|
const { name } = await params
|
|
const component = componentRegistry[name as keyof typeof componentRegistry]
|
|
|
|
if (!component) {
|
|
notFound()
|
|
}
|
|
|
|
const Component = component.component
|
|
|
|
return (
|
|
<div className="p-6">
|
|
<Component />
|
|
</div>
|
|
)
|
|
}
|