@atlaskit/editor-plugin-alignment
Version:
Alignment plugin for @atlaskit/editor-core
38 lines • 1.9 kB
JavaScript
import React, { useCallback } from 'react';
import { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
import { useSharedPluginStateWithSelector } from '@atlaskit/editor-common/hooks';
import { changeAlignment } from '../editor-commands';
import { ToolbarType } from '../pm-plugins/types';
import ToolbarAlignment from './ToolbarAlignment';
export function PrimaryToolbarComponent(_ref) {
var api = _ref.api,
editorView = _ref.editorView,
disabled = _ref.disabled,
popupsMountPoint = _ref.popupsMountPoint,
popupsBoundariesElement = _ref.popupsBoundariesElement,
popupsScrollableElement = _ref.popupsScrollableElement,
isToolbarReducedSpacing = _ref.isToolbarReducedSpacing;
var _useSharedPluginState = useSharedPluginStateWithSelector(api, ['alignment'], function (states) {
var _states$alignmentStat, _states$alignmentStat2;
return {
align: (_states$alignmentStat = states.alignmentState) === null || _states$alignmentStat === void 0 ? void 0 : _states$alignmentStat.align,
isEnabled: (_states$alignmentStat2 = states.alignmentState) === null || _states$alignmentStat2 === void 0 ? void 0 : _states$alignmentStat2.isEnabled
};
}),
align = _useSharedPluginState.align,
isEnabled = _useSharedPluginState.isEnabled;
var changeAlignmentCallback = useCallback(function (align) {
return changeAlignment(align, api, INPUT_METHOD.TOOLBAR)(editorView.state, editorView.dispatch);
}, [editorView, api]);
return /*#__PURE__*/React.createElement(ToolbarAlignment, {
align: align,
isReducedSpacing: isToolbarReducedSpacing,
changeAlignment: changeAlignmentCallback,
disabled: disabled || !isEnabled,
popupsMountPoint: popupsMountPoint,
popupsBoundariesElement: popupsBoundariesElement,
popupsScrollableElement: popupsScrollableElement,
api: api,
toolbarType: ToolbarType.PRIMARY
});
}