import React, {Fragment} from 'react'; import connect from 'ui/connect'; import Fa from 'ui/components/Fa'; import {TOKENS as UI_TOKENS} from '../uiEntryPointsPlugin'; import {TOKENS as ACTION_TOKENS} from '../../actions/actionSystemPlugin'; import Toolbar, {ToolbarButton} from 'ui/components/Toolbar'; import ImgIcon from 'ui/components/ImgIcon'; import {toIdAndOverrides} from '../../actions/actionRef'; import {mapActionBehavior} from '../../actions/actionButtonBehavior'; import {DEFAULT_MAPPER} from 'ui/connect'; import capitalize from 'gems/capitalize'; 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 = connect(ActionButton, ({actionId}) => [ACTION_TOKENS.actionAppearance(actionId), ACTION_TOKENS.actionState(actionId)], { mapProps: (state, props) => Object.assign(DEFAULT_MAPPER(state), props), mapActions: mapActionBehavior(props => props.actionId), }); export function createPlugableToolbar(configToken, small) { return connect(ConfigurableToolbar, configToken, { staticProps: {small}, mapProps: ([actions]) => ({actions}) }); } export const PlugableToolbarLeft = createPlugableToolbar(UI_TOKENS.TOOLBAR_BAR_LEFT); export const PlugableToolbarLeftSecondary = createPlugableToolbar(UI_TOKENS.TOOLBAR_BAR_LEFT_SECONDARY); export const PlugableToolbarRight = createPlugableToolbar(UI_TOKENS.TOOLBAR_BAR_RIGHT, true);