fix(editor): Prevent text edit dialog from re-opening in same tick (#6781)

* fix: prevent reopenning textedit dialog in same tick

* fix: add same logic for code edit dialog

* fix: remove stop modifier

* fix: blur input field when closing modal, removing default element-plus behaviour
This commit is contained in:
Alex Grozav 2023-07-31 12:41:30 +03:00 committed by GitHub
parent ffae8edce3
commit c9f3acc848
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -486,6 +486,7 @@ export default defineComponent({
remoteParameterOptionsLoading: false,
remoteParameterOptionsLoadingIssues: null as string | null,
textEditDialogVisible: false,
editDialogClosing: false,
tempValue: '', // el-date-picker and el-input does not seem to work without v-model so add one
CUSTOM_API_CALL_KEY,
activeCredentialType: '',
@ -922,6 +923,11 @@ export default defineComponent({
},
closeCodeEditDialog() {
this.codeEditDialogVisible = false;
this.editDialogClosing = true;
void this.$nextTick(() => {
this.editDialogClosing = false;
});
},
closeExpressionEditDialog() {
this.expressionEditDialogVisible = false;
@ -945,8 +951,18 @@ export default defineComponent({
},
closeTextEditDialog() {
this.textEditDialogVisible = false;
this.editDialogClosing = true;
void this.$nextTick(() => {
this.$refs.inputField?.blur?.();
this.editDialogClosing = false;
});
},
displayEditDialog() {
if (this.editDialogClosing) {
return;
}
if (this.editorType) {
this.codeEditDialogVisible = true;
} else {
@ -975,7 +991,7 @@ export default defineComponent({
onResourceLocatorDrop(data: string) {
this.$emit('drop', data);
},
async setFocus() {
async setFocus(event: MouseEvent) {
if (['json'].includes(this.parameter.type) && this.getArgument('alwaysOpenEditWindow')) {
this.displayEditDialog();
return;