import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import styled, { css } from 'react-emotion'; import { List } from 'immutable'; import { Toggle, Dropdown, DropdownItem, DropdownButton, colors, transitions, } from 'netlify-cms-ui-default'; import ToolbarButton from './ToolbarButton'; const ToolbarContainer = styled.div` background-color: ${colors.textFieldBorder}; position: relative; display: flex; justify-content: space-between; align-items: center; padding: 11px 14px; min-height: 58px; transition: background-color ${transitions.main}, color ${transitions.main}; `; const ToolbarDropdownWrapper = styled.div` display: inline-block; position: relative; ` const ToolbarToggle = styled.div` flex-shrink: 0; display: flex; align-items: center; font-size: 14px; margin: 0 10px; ` const StyledToggle = ToolbarToggle.withComponent(Toggle); const ToolbarToggleLabel = styled.span` display: inline-block; text-align: center; white-space: nowrap; line-height: 20px; width: ${props => props.offPosition ? '62px' : '70px'}; ${props => props.isActive && css` font-weight: 600; color: ${colors.active}; `} ` export default class Toolbar extends React.Component { static propTypes = { buttons: ImmutablePropTypes.list, onToggleMode: PropTypes.func.isRequired, rawMode: PropTypes.bool, plugins: ImmutablePropTypes.map, onSubmit: PropTypes.func, onAddAsset: PropTypes.func, getAsset: PropTypes.func, disabled: PropTypes.bool, }; isHidden = button => { const { buttons } = this.props; return List.isList(buttons) ? !buttons.includes(button) : false; } render() { const { onMarkClick, onBlockClick, onLinkClick, selectionHasMark, selectionHasBlock, selectionHasLink, onToggleMode, rawMode, plugins, disabled, onSubmit, } = this.props; return (
( )} > {plugins && plugins.toList().map((plugin, idx) => ( onSubmit(plugin.get('id'))} /> ))}
Rich Text Markdown
); } }