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 'ui/mapContext'; import {ToolbarSplitter} from 'ui/components/Toolbar'; function ConfigurableToolbar({actions, size, ...props}) { return } export function ToolbarActionButtons({actions, size}) { return actions.map((actionRef, i) => { if (actionRef === '-') { return ; } let [id, overrides] = toIdAndOverrides(actionRef); return }); } function ActionButton({label, icon96, icon32, cssIcons, symbol, size, noLabel, enabled, visible, actionId, ...props}) { if (!visible) { return null; } let smallOrMedium = size === 'medium' || size === 'small'; let icon; if (smallOrMedium) { if (cssIcons) { icon = ; } else if (icon32) { icon = ; } } else { icon = ; } if (!icon) { icon = {symbol||(label&&label.charAt(0))}; if (!icon) { icon = '?'; } } return {icon} {!(smallOrMedium || noLabel)&&
{capitalize(label)}
}
} export 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 => ); }