Skip to content

Commit 3888770

Browse files
authored
Added Alt+R and Alt+r as shortcut key for Renaming of blocks (#283)
* added shortcut key for rename * added shortcut key for rename with caps R
1 parent d1c1e11 commit 3888770

3 files changed

Lines changed: 57 additions & 0 deletions

File tree

frontend/src/components/blocks/basic/constant/constant-widget.tsx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@ export class ConstantBlockWidget extends React.Component<ConstantBlockWidgetProp
4141
};
4242
}
4343

44+
componentDidMount() {
45+
document.addEventListener('keydown', this.handleKeyDown); // Adding keydown event listener when component mounts
46+
}
47+
48+
componentWillUnmount() {
49+
document.removeEventListener('keydown', this.handleKeyDown); // Removing keydown event listener when component unmounts
50+
}
51+
4452
/**
4553
* Handler for context menu
4654
* @param key Key cooresponding to the context menu clicked
@@ -110,4 +118,15 @@ export class ConstantBlockWidget extends React.Component<ConstantBlockWidgetProp
110118
this.props.node.data.value = actual_val; // Update the value data in the component's props with the converted value
111119
}
112120
}
121+
122+
/**
123+
* Keydown event handler to listen for Alt+R key combination
124+
* @param event Keydown event
125+
*/
126+
handleKeyDown = (event: KeyboardEvent) => {
127+
const { node } = this.props;
128+
if (event.altKey && (event.key === 'r' || event.key === 'R') && node.isSelected()) {
129+
this.props.editor.editNode(node); // Trigger rename action
130+
}
131+
}
113132
}

frontend/src/components/blocks/basic/input/input-widget.tsx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ export class InputBlockWidget extends React.Component<InputBlockWidgetProps> {
2626

2727
readonly contextOptions: ContextOption[] = [{key: 'rename', label: 'Rename'}, {key: 'delete', label: 'Delete'}];
2828

29+
componentDidMount() {
30+
document.addEventListener('keydown', this.handleKeyDown); // Adding keydown event listener when component mounts
31+
}
32+
33+
componentWillUnmount() {
34+
document.removeEventListener('keydown', this.handleKeyDown); // Removing keydown event listener when component unmounts
35+
}
36+
2937
/**
3038
* Handler for context menu
3139
* @param key Key cooresponding to the context menu clicked
@@ -67,4 +75,15 @@ export class InputBlockWidget extends React.Component<InputBlockWidgetProps> {
6775
</BaseBlock>
6876
);
6977
}
78+
79+
/**
80+
* Keydown event handler to listen for Alt+R key combination
81+
* @param event Keydown event
82+
*/
83+
handleKeyDown = (event: KeyboardEvent) => {
84+
const { node } = this.props;
85+
if (event.altKey && (event.key === 'r' || event.key === 'R') && node.isSelected()) {
86+
this.props.editor.editNode(node); // Trigger rename action
87+
}
88+
}
7089
}

frontend/src/components/blocks/basic/output/output-widget.tsx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@ export class OutputBlockWidget extends React.Component<OutputBlockWidgetProps> {
2525

2626
readonly contextOptions: ContextOption[] = [{key: 'rename', label: 'Rename'}, {key: 'delete', label: 'Delete'}];
2727

28+
componentDidMount() {
29+
document.addEventListener('keydown', this.handleKeyDown); // Adding keydown event listener when component mounts
30+
}
31+
32+
componentWillUnmount() {
33+
document.removeEventListener('keydown', this.handleKeyDown); // Removing keydown event listener when component unmounts
34+
}
35+
2836
/**
2937
* Handler for context menu
3038
* @param key Key cooresponding to the context menu clicked
@@ -66,4 +74,15 @@ export class OutputBlockWidget extends React.Component<OutputBlockWidgetProps> {
6674
</BaseBlock>
6775
);
6876
}
77+
78+
/**
79+
* Keydown event handler to listen for Alt+R key combination
80+
* @param event Keydown event
81+
*/
82+
handleKeyDown = (event: KeyboardEvent) => {
83+
const { node } = this.props;
84+
if (event.altKey && (event.key === 'r' || event.key === 'R') && node.isSelected()) {
85+
this.props.editor.editNode(node); // Trigger rename action
86+
}
87+
}
6988
}

0 commit comments

Comments
 (0)