redux-plugins-immutable-react
React helper components for redux-plugins-immutable
Introduction
npm install redux-plugins-immutable-react
These components help you inject other components from plugins into your UI. There are two helpers:
-
LoadPluginComponent
: renders a component from a plugin, loading the plugin if necessary -
PluginComponents
: renders multiple components from multiple plugins
API
LoadPluginComponent
Renders a component from a plugin, loading the plugin if necessary. It will also render loading and load error messages depending on the plugin status.
propTypes
-
pluginKey
(string|Symbol): the key of the plugin to load the component from -
componentKey
(?string|Symbol): if given, will get the component/element atstore.getState().getIn(['plugins', pluginKey, 'components', componentKey])
-
getComponent
((plugin: Immutable.Map) => any): (overridescomponentKey
) if given, gets the component/element from theplugin
from the redux state. -
componentProps
(Object): if given, the component/element will be created/cloned with these props -
children
: ((state: {loading: boolean, loadError?: Error, component?: any): if given,LoadPluginComponent
will return the result of this function from itsrender()
instead of its default behavior.
contextTypes
-
LoadPluginComponentSkin
(React.Component): component to render the plugin status or component. It will be created with the following props:-
pluginName
(string): the plugin name -
loading
(boolean): whether the plugin is loading -
loadError
(Error): the error if the plugin failed to load -
children
(?React.Element): the plugin component if found
-
PluginComponents
Renders multiple components from multiple plugins. It will not load any plugins that are not loaded.
propTypes
-
componentKey
(?string|Symbol): if given, will getplugin.getIn(['components', componentKey])
for eachplugin
instore.getState().get('plugins')
. The value at these locations must be a React component, element, or anArray|Immutable.List
of components/elements. -
getComponent
((plugin: Immutable.Map) => any): (overridescomponentKey
) if given, gets the component/element from theplugin
from the redux state. It may return a React component, element, or anArray|Immutable.List
of components/elements. -
componentProps
(Object): if given, each component/element will be created/cloned with these props -
children
((pluginComponents: any[]) => ?React.Element): if given,PluginComponents
will return the result of this function from itsrender()
instead of renderingpluginComponents
inside a<div>
.