import React from 'react'; import connect from 'ui/connect'; import Fa from 'ui/components/Fa'; import Toolbar, {ToolbarButton} from 'ui/components/Toolbar'; import ImgIcon from 'ui/components/ImgIcon'; import {toIdAndOverrides} from '../../actions/actionRef'; import {mapActionBehavior} from '../../actions/actionButtonBehavior'; import capitalize from 'gems/capitalize'; import decoratorChain from 'ui/decoratorChain'; import {combine, merger} from 'lstream'; import mapContext from '../../../../../modules/ui/mapContext'; function ConfigurableToolbar({actions, small, ...props}) { return {actions.map(actionRef => { let [id, overrides] = toIdAndOverrides(actionRef); return })} } function ActionButton({label, icon96, cssIcons, small, enabled, visible, actionId, ...props}) { if (!visible) { return null; } let icon = small ? : ; return {icon} {!small &&
{capitalize(label)}
}
} const ConnectedActionButton = decoratorChain( connect((streams, {actionId}) => combine(streams.action.appearance[actionId], streams.action.state[actionId]).map(merger)), mapContext(mapActionBehavior(props => props.actionId)) ) (ActionButton); export function createPlugableToolbar(streamSelector) { return decoratorChain( connect(streams => streamSelector(streams).map(actions => ({actions}))), mapContext(mapActionBehavior(props => props.actionId)) ) (props => ); } export const HeadsUpToolbar = createPlugableToolbar(streams => streams.ui.toolbars.headsUp); export const AuxiliaryToolbar = createPlugableToolbar(streams => streams.ui.toolbars.auxiliary);