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, icon32, cssIcons, symbol, small, enabled, visible, actionId, ...props}) { if (!visible) { return null; } let icon; if (small) { if (cssIcons) { icon = ; } else if (icon32) { icon = ; } } else { icon = ; } if (!icon) { icon = {symbol||(label&&label.charAt(0))}; if (!icon) { icon = '?'; } } 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}))) ) (props => ); } export const HeadsUpToolbar = createPlugableToolbar(streams => streams.ui.toolbars.headsUp); export const AuxiliaryToolbar = createPlugableToolbar(streams => streams.ui.toolbars.auxiliary);