import AkButton from 'ak-button'; import AkButtonGroup from 'ak-button-group'; import ImageIcon from 'ak-icon/glyph/editor/image'; import MentionIcon from 'ak-icon/glyph/editor/mention'; import { PureComponent } from 'react'; import * as React from 'react'; import { analyticsDecorator as analytics } from '../../analytics'; import { BlockTypeState } from '../../plugins/block-type'; import { CodeBlockState } from '../../plugins/code-block'; import { HyperlinkState } from '../../plugins/hyperlink'; import { ImageUploadState } from '../../plugins/image-upload'; import { ListsState } from '../../plugins/lists'; import { MentionsPluginState } from '../../plugins/mentions'; import { TextFormattingState } from '../../plugins/text-formatting'; import HyperlinkEdit from '../HyperlinkEdit'; import LanguagePicker from '../LanguagePicker'; import MentionPicker from '../MentionPicker'; import ToolbarBlockType from '../ToolbarBlockType'; import ToolbarButton from '../ToolbarButton'; import ToolbarFeedback from '../ToolbarFeedback'; import ToolbarHyperlink from '../ToolbarHyperlink'; import ToolbarLists from '../ToolbarLists'; import ToolbarTextFormatting from '../ToolbarTextFormatting'; import * as styles from './styles'; export interface Props { feedbackFormUrl?: string; onCancel?: () => void; onInsertMention?: () => void; onInsertImage?: () => void; onSave?: () => void; pluginStateBlockType?: BlockTypeState; pluginStateCodeBlock?: CodeBlockState; pluginStateHyperlink?: HyperlinkState; pluginStateLists?: ListsState; pluginStateTextFormatting?: TextFormattingState; pluginStateImageUpload?: ImageUploadState; pluginStateMentions?: MentionsPluginState; mentionsResourceProvider?: any; // AbstractMentionResource } export default class ChromeExpanded extends PureComponent { render() { const { props } = this; return (
{props.pluginStateBlockType ? : null} {props.pluginStateTextFormatting ? : null} {props.pluginStateLists ? : null} {props.pluginStateHyperlink ? : null} {props.feedbackFormUrl ? : null}
{props.children} {props.pluginStateHyperlink ? : null} {props.pluginStateCodeBlock ? : null} {props.pluginStateMentions ? : null}
{!this.props.onSave ? null : Save } {!this.props.onCancel ? null : Cancel }
{!props.onInsertMention ? null : } {!props.pluginStateImageUpload ? null : }
); } @analytics('atlassian.editor.stop.cancel') private handleCancel = () => { const { onCancel } = this.props; if (onCancel) { onCancel(); } } @analytics('atlassian.editor.image.button') private handleInsertImage = () => { const { pluginStateImageUpload } = this.props; if (pluginStateImageUpload) { pluginStateImageUpload.handleImageUpload(); } } @analytics('atlassian.editor.mention.button') private handleInsertMention = () => { const { onInsertMention } = this.props; if (onInsertMention) { onInsertMention(); } } @analytics('atlassian.editor.stop.save') private handleSave = () => { const { onSave } = this.props; if (onSave) { onSave(); } } };