UNPKG

@atlaskit/editor-plugin-text-color

Version:

Text color plugin for @atlaskit/editor-core

49 lines (48 loc) 2.29 kB
import React from 'react'; import { useSharedPluginStateWithSelector } from '@atlaskit/editor-common/hooks'; import { ToolbarType } from '../types'; // Ignored via go/ees005 // eslint-disable-next-line import/no-named-as-default import ToolbarTextColor from './ToolbarTextColor'; var FloatingToolbarSettings = { disabled: false, isReducedSpacing: true }; var selector = function selector(states) { var _states$textColorStat, _states$textColorStat2, _states$textColorStat3, _states$textColorStat4; return { color: (_states$textColorStat = states.textColorState) === null || _states$textColorStat === void 0 ? void 0 : _states$textColorStat.color, defaultColor: (_states$textColorStat2 = states.textColorState) === null || _states$textColorStat2 === void 0 ? void 0 : _states$textColorStat2.defaultColor, palette: (_states$textColorStat3 = states.textColorState) === null || _states$textColorStat3 === void 0 ? void 0 : _states$textColorStat3.palette, disabled: (_states$textColorStat4 = states.textColorState) === null || _states$textColorStat4 === void 0 ? void 0 : _states$textColorStat4.disabled }; }; export var FloatingToolbarComponent = function FloatingToolbarComponent(_ref) { var api = _ref.api, editorView = _ref.editorView, dispatchAnalyticsEvent = _ref.dispatchAnalyticsEvent; var _useSharedPluginState = useSharedPluginStateWithSelector(api, ['textColor'], selector), color = _useSharedPluginState.color, defaultColor = _useSharedPluginState.defaultColor, palette = _useSharedPluginState.palette, disabled = _useSharedPluginState.disabled; if (color === undefined || defaultColor === undefined || palette === undefined) { return null; } return /*#__PURE__*/React.createElement(ToolbarTextColor // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , { pluginState: { color: color, defaultColor: defaultColor, palette: palette, disabled: disabled }, isReducedSpacing: FloatingToolbarSettings.isReducedSpacing, editorView: editorView, dispatchAnalyticsEvent: dispatchAnalyticsEvent, disabled: FloatingToolbarSettings.disabled, pluginInjectionApi: api, toolbarType: ToolbarType.FLOATING }); };