mirror of
https://github.com/wassname/talk.git
synced 2026-07-06 05:17:19 +08:00
22 lines
583 B
JavaScript
22 lines
583 B
JavaScript
import React from 'react';
|
|
import merge from 'lodash/merge';
|
|
import flatten from 'lodash/flatten';
|
|
import plugins from 'pluginsConfig';
|
|
|
|
export const pluginReducers = merge(
|
|
...plugins
|
|
.filter(o => o.module.reducer)
|
|
.map(o => ({...o.module.reducer}))
|
|
);
|
|
|
|
/**
|
|
* Returns React Elements for given slot.
|
|
*/
|
|
export function getSlotElements(slot, props = {}) {
|
|
const components = flatten(plugins
|
|
.filter(o => o.module.slots[slot])
|
|
.map(o => o.module.slots[slot]));
|
|
return components
|
|
.map((component, i) => React.createElement(component, {...props, key: i}));
|
|
}
|