last-draft-js-toolbar-plugin
Version:
LastDraft Toolbar Plugin for DraftJS
127 lines (93 loc) • 4.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Separator = undefined;
var _decorateComponentWithProps = require('decorate-component-with-props');
var _decorateComponentWithProps2 = _interopRequireDefault(_decorateComponentWithProps);
var _draftJsButtons = require('draft-js-buttons');
var _draftJsButtonsPlugin = require('draft-js-buttons-plugin');
var _createStore = require('./utils/createStore');
var _createStore2 = _interopRequireDefault(_createStore);
var _Toolbar = require('./components/Toolbar');
var _Toolbar2 = _interopRequireDefault(_Toolbar);
var _Separator = require('./components/Separator');
var _Separator2 = _interopRequireDefault(_Separator);
var _buttonStyles = {
"buttonWrapper": "draftJsSidebarPlugin__buttonWrapper__1Dmqh",
"button": "draftJsSidebarPlugin__button__qi1gf",
"active": "draftJsSidebarPlugin__active__3qcpF"
};
var _buttonStyles2 = _interopRequireDefault(_buttonStyles);
var _toolbarStyles = {
"toolbar": "draftJsSidebarPlugin__toolbar__dNtBH"
};
var _toolbarStyles2 = _interopRequireDefault(_toolbarStyles);
var _modalStyles = {
"modalWrapper": "draftJsSidebarPlugin__modalWrapper__EaX74",
"modalInput": "draftJsSidebarPlugin__modalInput__1sp75",
"modalButton": "draftJsSidebarPlugin__modalButton__ffoIL",
"modalButtonWrapper": "draftJsSidebarPlugin__modalButtonWrapper__27s-M",
"modalError": "draftJsSidebarPlugin__modalError___AfCV"
};
var _modalStyles2 = _interopRequireDefault(_modalStyles);
var _colorPickerStyles = {
"wrapper": "draftJsSidebarPlugin__wrapper__1udU0",
"picker": "draftJsSidebarPlugin__picker__2dADB",
"color": "draftJsSidebarPlugin__color__1Xb1m",
"closeWrapper": "draftJsSidebarPlugin__closeWrapper__3ofjk",
"close": "draftJsSidebarPlugin__close__1uWEp"
};
var _colorPickerStyles2 = _interopRequireDefault(_colorPickerStyles);
var _getModalByType = require('./components/getModalByType');
var _getModalByType2 = _interopRequireDefault(_getModalByType);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var createToolbarPlugin = function createToolbarPlugin() {
var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var defaultTheme = { buttonStyles: _buttonStyles2.default, toolbarStyles: _toolbarStyles2.default, modalStyles: _modalStyles2.default, colorPickerStyles: _colorPickerStyles2.default };
var defaultaddLink = undefined;
var _config$theme = config.theme,
theme = _config$theme === undefined ? defaultTheme : _config$theme,
_config$addLink = config.addLink,
addLink = _config$addLink === undefined ? defaultaddLink : _config$addLink,
_config$structure = config.structure,
structure = _config$structure === undefined ? [_draftJsButtons.BoldButton, _draftJsButtons.ItalicButton, _draftJsButtons.UnderlineButton, _draftJsButtonsPlugin.AddLinkButton, _draftJsButtons.BlockquoteButton, _draftJsButtons.CodeBlockButton, _draftJsButtons.UnorderedListButton, _draftJsButtons.OrderedListButton, _draftJsButtonsPlugin.AddColorButton] : _config$structure;
var store = (0, _createStore2.default)({
isVisible: false,
addLink: addLink
});
var toolbarProps = {
store: store,
structure: structure,
getModalByType: _getModalByType2.default,
theme: theme
};
return {
initialize: function initialize(_ref) {
var getEditorState = _ref.getEditorState,
setEditorState = _ref.setEditorState;
store.updateItem('getEditorState', getEditorState);
store.updateItem('setEditorState', setEditorState);
},
// Re-Render the text-toolbar on selection change
onChange: function onChange(editorState) {
var selection = editorState.getSelection();
if (selection.getHasFocus() && !selection.isCollapsed()) {
store.updateItem('isVisible', true);
} else {
store.updateItem('isVisible', false);
}
return editorState;
},
Toolbar: (0, _decorateComponentWithProps2.default)(_Toolbar2.default, toolbarProps)
};
}; // eslint-disable-line import/no-unresolved
/*
* Copyright (c) 2016, Globo.com (https://github.com/globocom)
* Copyright (c) 2016, vace.nz (https://github.com/vacenz)
* Copyright (c) 2016, Nik Graf (https://www.draft-js-plugins.com)
*
* License: MIT
*/
exports.default = createToolbarPlugin;
exports.Separator = _Separator2.default;