React helper components for redux-plugins-immutable
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 necessaryPluginComponents
: renders multiple components from multiple plugins
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.
pluginKey
(string|Symbol): the key of the plugin to load the component fromcomponentKey
(?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 propschildren
: ((state: {loading: boolean, loadError?: Error, component?: any): if given,LoadPluginComponent
will return the result of this function from itsrender()
instead of its default behavior.
LoadPluginComponentSkin
(React.Component): component to render the plugin status or component. It will be created with the following props:pluginName
(string): the plugin nameloading
(boolean): whether the plugin is loadingloadError
(Error): the error if the plugin failed to loadchildren
(?React.Element): the plugin component if found
Renders multiple components from multiple plugins. It will not load any plugins that are not loaded.
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 propschildren
((pluginComponents: any[]) => ?React.Element): if given,PluginComponents
will return the result of this function from itsrender()
instead of renderingpluginComponents
inside a<div>
.