in libs/core/src/lib/components/render-props.ts [62:90]
export function createInputJsxRenderer<TContext extends object>(
input: InputRendererOptions<TContext>,
ngZone: NgZone,
additionalProps?: ReactContentProps
): JsxRenderFunc<TContext> | undefined {
if (input instanceof TemplateRef) {
const templateRenderer = createTemplateRenderer(input, ngZone, additionalProps);
return (context: TContext) => templateRenderer.render(context);
}
if (input instanceof ComponentRef) {
const componentRenderer = createComponentRenderer(input, additionalProps);
return (context: TContext) => componentRenderer.render(context);
}
if (input instanceof Function) {
const htmlRenderer = createHtmlRenderer(input, additionalProps);
return (context: TContext) => htmlRenderer.render(context);
}
if (isRenderComponentOptions(input)) {
const { componentType, factoryResolver, injector } = input;
const componentFactory = factoryResolver.resolveComponentFactory(componentType);
const componentRef = componentFactory.create(injector);
// Call the function again with the created ComponentRef<TContext>
return createInputJsxRenderer(componentRef, ngZone, additionalProps);
}
}