@atlaskit/editor-plugin-find-replace
Version:
find replace plugin for @atlaskit/editor-core
75 lines (73 loc) • 2.8 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';
var findReplaceWrapperStyles = xcss({
display: 'flex',
flexDirection: 'column'
});
// Magic number taken from ../FindReplaceToolbarButton.tsx
var dropdownWidthNewDesign = 382;
var FindReplaceDropdown = function FindReplaceDropdown(props) {
var findText = props.findText,
replaceText = props.replaceText,
isActive = props.isActive,
index = props.index,
numMatches = props.numMatches,
popupsMountPoint = props.popupsMountPoint,
numReplaceable = props.numReplaceable,
onCancel = props.onCancel;
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: function 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: 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
var _default_1 = injectIntl(FindReplaceDropdown);
export default _default_1;