@atlaskit/editor-plugin-text-color
Version:
Text color plugin for @atlaskit/editor-core
49 lines (48 loc) • 2.29 kB
JavaScript
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
});
};