19.3.0 • Published 1 year ago

@ima/react-page-renderer v19.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

@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 {}
19.3.0

1 year ago

19.2.1

1 year ago

19.2.0

2 years ago

19.0.4

2 years ago

19.1.0

2 years ago

19.0.3

2 years ago

19.0.2

2 years ago

19.0.1

2 years ago

19.0.0

2 years ago

19.0.0-rc.15

2 years ago

19.0.0-rc.16

2 years ago

19.0.0-rc.11

2 years ago

19.0.0-rc.12

2 years ago

19.0.0-rc.13

2 years ago

19.0.0-rc.14

2 years ago

19.0.0-rc.10

2 years ago

19.0.0-rc.8

2 years ago

19.0.0-rc.9

2 years ago

19.0.0-rc.6

2 years ago

19.0.0-rc.7

2 years ago

19.0.0-rc.0

2 years ago

19.0.0-rc.1

2 years ago

19.0.0-rc.2

2 years ago

19.0.0-rc.3

2 years ago

18.2.0

2 years ago

19.0.0-rc.4

2 years ago

19.0.0-rc.5

2 years ago

18.1.6

2 years ago

18.1.5

2 years ago

18.1.4

2 years ago

18.0.0-rc.28

3 years ago

18.0.0-rc.27

3 years ago

18.1.3

2 years ago

18.1.2

2 years ago

18.1.1

2 years ago

18.1.0

2 years ago

18.0.1

3 years ago

18.0.0

3 years ago

18.0.0-rc.20

3 years ago

18.0.0-rc.22

3 years ago

18.0.0-rc.21

3 years ago

18.0.0-rc.24

3 years ago

18.0.0-rc.23

3 years ago

18.0.0-rc.26

3 years ago

18.0.0-rc.25

3 years ago

18.0.0-rc.17

3 years ago

18.0.0-rc.19

3 years ago

18.0.0-rc.18

3 years ago

18.0.0-rc.11

3 years ago

18.0.0-rc.10

3 years ago

18.0.0-rc.13

3 years ago

18.0.0-rc.12

3 years ago

18.0.0-rc.15

3 years ago

18.0.0-rc.16

3 years ago

18.0.0-rc.9

3 years ago

18.0.0-rc.8

3 years ago

18.0.0-rc.7

3 years ago

18.0.0-rc.6

3 years ago

18.0.0-rc.5

3 years ago

18.0.0-rc.2

3 years ago

18.0.0-rc.1

3 years ago

18.0.0-rc.0

3 years ago