export function createComponentRenderer()

in libs/core/src/lib/renderer/renderprop-helpers.ts [66:84]


export function createComponentRenderer<TContext extends object>(
  componentRef: ComponentRef<TContext>,
  additionalProps?: ReactContentProps
): RenderPropContext<TContext> {
  let renderedJsx: JSX.Element | null = null;

  return {
    render: context => {
      if (!renderedJsx) {
        renderedJsx = renderReactContent([componentRef.location.nativeElement], additionalProps);
      }

      Object.assign(componentRef.instance, context);
      componentRef.changeDetectorRef.detectChanges();

      return renderedJsx;
    },
  };
}