frintjs/frint

Proposal: MountApp component

Open

#433 opened on Jul 13, 2018

View on GitHub
 (0 comments) (1 reaction) (0 assignees)JavaScript (37 forks)batch import
help wantedproposal

Repository metrics

Stars
 (746 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

Currently

We use getMountableComponent(app) function, to get a component which has the app inside React's context.

Proposal

We can have a MountApp component, with usage like:

import { MountApp } from 'frint-react';

const fooApp; // instance

function BarComponent() {
  // render a given app with instance
  return <MountApp app={fooApp}>;

  // render a given app by name
  return <MountApp name="FooAppName" />

  // render any component against an app
  return <MountApp 
    name="FooAppName" /* or app={fooApp} */
    render={() => <SomeComponent />} 
  />;
}

Further usage

In frint-react: The MountApp component can then be used by Region component and render function internally too.

getMountableComponent can be deprecated.

Benefits

We don't have to depend on placing a Region with a name to mount an app somewhere. We can benefit from directly rendering an App somewhere without expecting any other App to share that region.

Contributor guide