diff --git a/packages/nc-gui/components/smartsheet/Form.vue b/packages/nc-gui/components/smartsheet/Form.vue index 131daf02df..d8022bcbfc 100644 --- a/packages/nc-gui/components/smartsheet/Form.vue +++ b/packages/nc-gui/components/smartsheet/Form.vue @@ -612,6 +612,30 @@ useEventListener( }, true, ) + +useEventListener( + document, + 'keydown', + (e: KeyboardEvent) => { + const cmdOrCtrl = isMac() ? e.metaKey : e.ctrlKey + + switch (e.key.toLowerCase()) { + case 's': + if ( + cmdOrCtrl && + !( + ['input', 'textarea'].includes((e.target as any).nodeName.toLowerCase()) || + (e.target as any)?.getAttribute('contenteditable') + ) + ) { + e.preventDefault() + updateView() + } + break + } + }, + true, +)