@atlaskit/editor-plugin-find-replace
Version:
find replace plugin for @atlaskit/editor-core
61 lines • 2.09 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import React from 'react';
import { IconButton } from '@atlaskit/button/new';
import { findKeymapByDescription, ToolTipContent } from '@atlaskit/editor-common/keymaps';
import Tooltip from '@atlaskit/tooltip';
// eslint-disable-next-line @repo/internal/react/no-class-components
export class FindReplaceTooltipButton extends React.PureComponent {
constructor(...args) {
super(...args);
_defineProperty(this, "buttonRef", /*#__PURE__*/React.createRef());
_defineProperty(this, "handleClick", () => {
this.props.onClick(this.buttonRef);
});
}
render() {
const {
title,
icon: Icon,
iconSize,
keymapDescription,
disabled,
isPressed,
appearance
} = this.props;
const pressedProps = {
...(typeof isPressed === 'boolean' && {
'aria-pressed': isPressed
})
};
return /*#__PURE__*/React.createElement(Tooltip, {
content: /*#__PURE__*/React.createElement(ToolTipContent, {
description: title,
keymap: findKeymapByDescription(keymapDescription)
}),
hideTooltipOnClick: true,
position: 'top'
}, /*#__PURE__*/React.createElement(IconButton, _extends({
id: "afterInputSection",
label: title,
appearance: appearance,
testId: title,
ref: this.buttonRef
// Ignored via go/ees005
// eslint-disable-next-line react/jsx-props-no-spreading, @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
,
icon: iconProps => /*#__PURE__*/React.createElement(Icon, _extends({}, iconProps, {
size: iconSize
})),
isDisabled: disabled,
onClick: this.handleClick,
isSelected: isPressed
// Ignored via go/ees005
// eslint-disable-next-line react/jsx-props-no-spreading
}, pressedProps)));
}
}
_defineProperty(FindReplaceTooltipButton, "defaultProps", {
keymapDescription: 'no-keymap',
appearance: 'subtle'
});