UNPKG

@atlaskit/editor-plugin-find-replace

Version:

find replace plugin for @atlaskit/editor-core

77 lines (75 loc) 2.62 kB
import _extends from "@babel/runtime/helpers/extends"; import React from 'react'; import { injectIntl } from 'react-intl'; import { TRIGGER_METHOD } from '@atlaskit/editor-common/analytics'; import { ArrowKeyNavigationType, Dropdown } from '@atlaskit/editor-common/ui-menu'; import { akEditorFloatingPanelZIndex } from '@atlaskit/editor-shared-styles'; // eslint-disable-next-line @atlaskit/design-system/no-emotion-primitives -- to be migrated to @atlaskit/primitives/compiled – go/akcss import { Box, xcss } from '@atlaskit/primitives'; import FindReplace from './FindReplace'; const findReplaceWrapperStyles = xcss({ display: 'flex', flexDirection: 'column' }); // Magic number taken from ../FindReplaceToolbarButton.tsx const dropdownWidthNewDesign = 382; const FindReplaceDropdown = props => { const { findText, replaceText, isActive, index, numMatches, popupsMountPoint, numReplaceable, onCancel } = props; if (!popupsMountPoint) { return null; } return /*#__PURE__*/React.createElement(Dropdown, { target: popupsMountPoint, mountTo: popupsMountPoint, forcePlacement: true, alignX: 'right', alignY: 'start' // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , offset: [4, 0], isOpen: isActive // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , handleEscapeKeydown: () => { if (isActive) { onCancel({ triggerMethod: TRIGGER_METHOD.KEYBOARD }); } }, fitWidth: dropdownWidthNewDesign, zIndex: akEditorFloatingPanelZIndex // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , arrowKeyNavigationProviderOptions: { type: ArrowKeyNavigationType.MENU, disableArrowKeyNavigation: true } }, /*#__PURE__*/React.createElement(Box, { xcss: findReplaceWrapperStyles }, /*#__PURE__*/React.createElement(FindReplace, _extends({ findText: findText, replaceText: replaceText // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , count: { index, total: numMatches, totalReplaceable: numReplaceable } // Ignored via go/ees005 // eslint-disable-next-line react/jsx-props-no-spreading }, props)))); }; // eslint-disable-next-line @typescript-eslint/ban-types const _default_1 = injectIntl(FindReplaceDropdown); export default _default_1;