mirror of
https://github.com/cosscom/coss.git
synced 2026-09-14 20:06:50 +08:00
27 lines
667 B
TypeScript
27 lines
667 B
TypeScript
import { ComponentType } from "react"
|
|
import type { RegistryItem } from "shadcn/registry"
|
|
|
|
interface ComponentLoaderProps {
|
|
component: RegistryItem
|
|
}
|
|
|
|
export default async function ComponentLoader<TProps extends object>({
|
|
component,
|
|
...props
|
|
}: ComponentLoaderProps & TProps) {
|
|
if (!component?.name) {
|
|
return null
|
|
}
|
|
|
|
try {
|
|
const Component = (
|
|
await import(`@/registry/default/components/${component.name}`)
|
|
).default as ComponentType<TProps>
|
|
|
|
return <Component {...(props as TProps)} currentPage={1} totalPages={10} />
|
|
} catch (error) {
|
|
console.error(`Failed to load component ${component.name}:`, error)
|
|
return null
|
|
}
|
|
}
|