diff --git a/src/components/EditorWidgets/Markdown/MarkdownControl/RawEditor/index.js b/src/components/EditorWidgets/Markdown/MarkdownControl/RawEditor/index.js index eed87f89fd15..0438dac6107e 100644 --- a/src/components/EditorWidgets/Markdown/MarkdownControl/RawEditor/index.js +++ b/src/components/EditorWidgets/Markdown/MarkdownControl/RawEditor/index.js @@ -1,4 +1,5 @@ import PropTypes from 'prop-types'; +import ImmutablePropTypes from 'react-immutable-proptypes'; import React from 'react'; import { Editor as Slate } from 'slate-react'; import Plain from 'slate-plain-serializer'; @@ -50,12 +51,13 @@ export default class RawEditor extends React.Component { }; render() { - const { className } = this.props; + const { className, field } = this.props; return (
{ + const { buttons } = this.props; + return List.isList(buttons) ? !buttons.includes(button) : false; + } + render() { const { onMarkClick, @@ -65,6 +71,7 @@ export default class Toolbar extends React.Component { icon="bold" onClick={onMarkClick} isActive={selectionHasMark} + isHidden={this.isHidden('bold')} disabled={disabled} />
diff --git a/src/components/EditorWidgets/Markdown/MarkdownControl/Toolbar/ToolbarButton.js b/src/components/EditorWidgets/Markdown/MarkdownControl/Toolbar/ToolbarButton.js index e01effe019b7..fe281046bb98 100644 --- a/src/components/EditorWidgets/Markdown/MarkdownControl/Toolbar/ToolbarButton.js +++ b/src/components/EditorWidgets/Markdown/MarkdownControl/Toolbar/ToolbarButton.js @@ -3,9 +3,13 @@ import React from 'react'; import c from 'classnames'; import { Icon } from 'UI'; -const ToolbarButton = ({ type, label, icon, onClick, isActive, disabled }) => { +const ToolbarButton = ({ type, label, icon, onClick, isActive, isHidden, disabled }) => { const active = isActive && type && isActive(type); + if (isHidden) { + return null; + } + return (
); @@ -69,6 +71,7 @@ export default class MarkdownControl extends React.Component { getAsset={getAsset} className={classNameWrapper} value={value} + field={field} />
); diff --git a/website/site/content/docs/widgets/markdown.md b/website/site/content/docs/widgets/markdown.md index e2b0cc088a7d..75c8a47971e3 100644 --- a/website/site/content/docs/widgets/markdown.md +++ b/website/site/content/docs/widgets/markdown.md @@ -14,6 +14,7 @@ The markdown widget provides a full fledged text editor - which is based on [sla - **Data type:** markdown - **Options:** - `default`: accepts markdown content + - `buttons`: an array of strings representing the formatting buttons to display, all buttons shown by default. Buttons include: `bold`, `italic`, `code`, `link`, `heading-one`, `heading-two`, `quote`, `code-block`, `bulleted-list`, and `numbered-list`. - **Example:** ```yaml