diff --git a/packages/nc-gui/components/cell/MultiSelect/Editor.vue b/packages/nc-gui/components/cell/MultiSelect/Editor.vue index 27d6104819..e745e41383 100644 --- a/packages/nc-gui/components/cell/MultiSelect/Editor.vue +++ b/packages/nc-gui/components/cell/MultiSelect/Editor.vue @@ -44,6 +44,7 @@ const isSurveyForm = inject(IsSurveyFormInj, ref(false)) const aselect = ref() const isOpen = ref(false) +const canvasSelectCell = inject(CanvasSelectCellInj) const isFocusing = ref(false) @@ -137,6 +138,10 @@ useSelectedCellKeydownListener( (e) => { switch (e.key) { case 'Escape': + if (canvasSelectCell) { + canvasSelectCell.trigger() + return + } isOpen.value = false break case 'Enter': @@ -328,6 +333,8 @@ onMounted(() => { if (key && isSinglePrintableKey(key)) { onFocus() searchVal.value = key + } else if (key === 'Enter') { + onFocus() } }) } diff --git a/packages/nc-gui/components/cell/SingleSelect/Editor.vue b/packages/nc-gui/components/cell/SingleSelect/Editor.vue index 79162323df..3a1432105c 100644 --- a/packages/nc-gui/components/cell/SingleSelect/Editor.vue +++ b/packages/nc-gui/components/cell/SingleSelect/Editor.vue @@ -34,6 +34,7 @@ const active = computed(() => activeCell.value || isEditable.value || isForm.val const aselect = ref() const isOpen = ref(false) +const canvasSelectCell = inject(CanvasSelectCellInj) const isKanban = inject(IsKanbanInj, ref(false)) @@ -108,6 +109,10 @@ useSelectedCellKeydownListener( (e) => { switch (e.key) { case 'Escape': + if (canvasSelectCell) { + canvasSelectCell.trigger() + return + } isOpen.value = false break case 'Enter': @@ -281,6 +286,8 @@ onMounted(() => { if (key && isSinglePrintableKey(key)) { onFocus() searchVal.value = key + } else if (key === 'Enter') { + onFocus() } }) }