@atlaskit/editor-plugin-find-replace
Version:
find replace plugin for @atlaskit/editor-core
77 lines (75 loc) • 2.62 kB
JavaScript
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;