refactor: Migrate UndoRedoKeyListeners to typescript (#30654)
This commit is contained in:
parent
e4d8f7af61
commit
ec2d3307fd
|
|
@ -17,15 +17,15 @@
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
import { PureComponent } from 'react';
|
import { PureComponent } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import { HeaderProps } from '../Header/types';
|
||||||
|
|
||||||
const propTypes = {
|
type UndoRedoKeyListenersProps = {
|
||||||
onUndo: PropTypes.func.isRequired,
|
onUndo: HeaderProps['onUndo'];
|
||||||
onRedo: PropTypes.func.isRequired,
|
onRedo: HeaderProps['onRedo'];
|
||||||
};
|
};
|
||||||
|
|
||||||
class UndoRedoKeyListeners extends PureComponent {
|
class UndoRedoKeyListeners extends PureComponent<UndoRedoKeyListenersProps> {
|
||||||
constructor(props) {
|
constructor(props: UndoRedoKeyListenersProps) {
|
||||||
super(props);
|
super(props);
|
||||||
this.handleKeydown = this.handleKeydown.bind(this);
|
this.handleKeydown = this.handleKeydown.bind(this);
|
||||||
}
|
}
|
||||||
|
|
@ -38,15 +38,17 @@ class UndoRedoKeyListeners extends PureComponent {
|
||||||
document.removeEventListener('keydown', this.handleKeydown);
|
document.removeEventListener('keydown', this.handleKeydown);
|
||||||
}
|
}
|
||||||
|
|
||||||
handleKeydown(event) {
|
handleKeydown(event: KeyboardEvent) {
|
||||||
const controlOrCommand = event.ctrlKey || event.metaKey;
|
const controlOrCommand = event.ctrlKey || event.metaKey;
|
||||||
if (controlOrCommand) {
|
if (controlOrCommand) {
|
||||||
const isZChar = event.key === 'z' || event.keyCode === 90;
|
const isZChar = event.key === 'z' || event.keyCode === 90;
|
||||||
const isYChar = event.key === 'y' || event.keyCode === 89;
|
const isYChar = event.key === 'y' || event.keyCode === 89;
|
||||||
const isEditingMarkdown =
|
const isEditingMarkdown = document?.querySelector(
|
||||||
document && document.querySelector('.dashboard-markdown--editing');
|
'.dashboard-markdown--editing',
|
||||||
const isEditingTitle =
|
);
|
||||||
document && document.querySelector('.editable-title--editing');
|
const isEditingTitle = document?.querySelector(
|
||||||
|
'.editable-title--editing',
|
||||||
|
);
|
||||||
|
|
||||||
if (!isEditingMarkdown && !isEditingTitle && (isZChar || isYChar)) {
|
if (!isEditingMarkdown && !isEditingTitle && (isZChar || isYChar)) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
@ -61,6 +63,4 @@ class UndoRedoKeyListeners extends PureComponent {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UndoRedoKeyListeners.propTypes = propTypes;
|
|
||||||
|
|
||||||
export default UndoRedoKeyListeners;
|
export default UndoRedoKeyListeners;
|
||||||
Loading…
Reference in New Issue