scrivito
Version:
Scrivito is a professional, yet easy to use SaaS Enterprise Content Management Service, built for digital agencies and medium to large businesses. It is completely maintenance-free, cost-effective, and has unprecedented performance and security.
33 lines (27 loc) • 815 B
text/typescript
import {
ArgumentError,
QueryParameters,
throwNextTick,
} from 'scrivito_sdk/common';
import { getComponentForAppClass } from 'scrivito_sdk/react/component_registry';
import { AttributeDefinitions, Obj } from 'scrivito_sdk/realm';
/** @public */
export interface PageComponentProps<
AttrDefs extends AttributeDefinitions = AttributeDefinitions
> {
page: Obj<AttrDefs>;
params?: QueryParameters;
}
export function getComponentForPageClass(
pageClassName: string
): React.ComponentType<PageComponentProps> | undefined {
const pageComponent = getComponentForAppClass(pageClassName);
if (pageComponent) {
return pageComponent as React.ComponentType<PageComponentProps>;
}
throwNextTick(
new ArgumentError(
`No component registered for obj class "${pageClassName}"`
)
);
}