@ima/react-page-renderer
TypeScript icon, indicating that this package has built-in type declarations

19.3.0 • Public • Published

@ima/react-page-renderer

Adds support for rendering pages with React for IMA@18 and higher. For legacy IMA@17 use page renderers included in core package.

Installation

npm install @ima/react-page-renderer

Usage

app/config/bind.js

import {
  defaultCssClasses as cssClassNameProcessor,
  PageRendererFactory,
  ServerPageRenderer,
} from '@ima/react-page-renderer';
import { ClientPageRenderer } from '@ima/react-page-renderer/renderer/ClientPageRenderer';

export default (ns, oc, config) => {
  oc.bind('$CssClasses', function () {
    return cssClassNameProcessor;
  });

  oc.get(ComponentUtils).register({
    $CssClasses: '$CssClasses',
  });

  oc.inject(PageRendererFactory, [ComponentUtils]);
  oc.bind('$PageRendererFactory', PageRendererFactory);

  if (oc.get(Window).isClient()) {
    oc.provide(PageRenderer, ClientPageRenderer, [
      PageRendererFactory,
      '$Helper',
      '$Dispatcher',
      '$Settings',
      Window,
    ]);
  } else {
    oc.provide(PageRenderer, ServerPageRenderer, [
      PageRendererFactory,
      '$Helper',
      '$Dispatcher',
      '$Settings',
      Cache,
    ]);
  }
  oc.bind('$PageRenderer', PageRenderer);
};

If your app is using legacy React@17, use legacy client page renderer instead of the default one.

import { ClientPageRenderer } from '@ima/react-page-renderer/renderer/LegacyClientPageRenderer';

app/config/settings.js

import DocumentView from 'app/document/DocumentView';

export default (ns, oc, config) => {
  return {
    prod: {
      $Page: {
        $Render: {
          documentView: DocumentView,
          masterElementId: 'page',
        },
      },
    },
  };
};

server/app.js

// You should already have this line in your file
const imaServer = require('@ima/server')();

require('@ima/react-page-renderer/hook/server')(imaServer);

Components

import { AbstractComponent, AbstractPureComponent } from '@ima/react-page-renderer';

export default class MyComponent extends AbstractComponent {}

/@ima/react-page-renderer/

    Package Sidebar

    Install

    npm i @ima/react-page-renderer

    Weekly Downloads

    12

    Version

    19.3.0

    License

    MIT

    Unpacked Size

    449 kB

    Total Files

    213

    Last publish

    Collaborators

    • corvidism
    • mjancarik
    • filipoliko
    • matej.marcisovsky
    • jsimck
    • hartja
    • zdenek.lastuvka
    • jan.kucera
    • ondrej.sliva