UNPKG

@atlaskit/editor-plugin-alignment

Version:

Alignment plugin for @atlaskit/editor-core

38 lines 1.6 kB
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({ api, editorView, disabled, popupsMountPoint, popupsBoundariesElement, popupsScrollableElement, isToolbarReducedSpacing }) { const { align, isEnabled } = useSharedPluginStateWithSelector(api, ['alignment'], 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 }; }); const changeAlignmentCallback = useCallback(align => 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 }); }