From a6d25f68e0cb4dc7844966cb11c81fb3d72556a9 Mon Sep 17 00:00:00 2001 From: DarkPhoenix2704 Date: Thu, 15 Feb 2024 10:25:32 +0000 Subject: [PATCH 1/3] fix(nc-gui): linked record keyboard navigation --- .../components/virtual-cell/components/ListChildItems.vue | 3 ++- .../nc-gui/components/virtual-cell/components/ListItem.vue | 3 ++- .../nc-gui/components/virtual-cell/components/ListItems.vue | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/nc-gui/components/virtual-cell/components/ListChildItems.vue b/packages/nc-gui/components/virtual-cell/components/ListChildItems.vue index a7ba0c2443..34a11a21fe 100644 --- a/packages/nc-gui/components/virtual-cell/components/ListChildItems.vue +++ b/packages/nc-gui/components/virtual-cell/components/ListChildItems.vue @@ -1,6 +1,6 @@ diff --git a/packages/nc-gui/components/virtual-cell/components/ListItems.vue b/packages/nc-gui/components/virtual-cell/components/ListItems.vue index 04aa597389..bb42c803cb 100644 --- a/packages/nc-gui/components/virtual-cell/components/ListItems.vue +++ b/packages/nc-gui/components/virtual-cell/components/ListItems.vue @@ -1,6 +1,6 @@ From 3ff5497fc44d6b701dfd16164d77d67f002e8fa9 Mon Sep 17 00:00:00 2001 From: DarkPhoenix2704 Date: Thu, 15 Feb 2024 10:25:33 +0000 Subject: [PATCH 3/3] fix(nc-gui): add arrow shortcuts --- .../virtual-cell/components/ListChildItems.vue | 10 ++++++++++ .../components/virtual-cell/components/ListItems.vue | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/packages/nc-gui/components/virtual-cell/components/ListChildItems.vue b/packages/nc-gui/components/virtual-cell/components/ListChildItems.vue index 69bb72128e..f4351b3df6 100644 --- a/packages/nc-gui/components/virtual-cell/components/ListChildItems.vue +++ b/packages/nc-gui/components/virtual-cell/components/ListChildItems.vue @@ -179,6 +179,16 @@ watch([filterQueryRef, isDataExist], () => { const linkedShortcuts = (e: KeyboardEvent) => { if (e.key === 'Escape') { vModel.value = false + } else if (e.key === 'ArrowDown') { + e.preventDefault() + try { + e.target?.nextElementSibling?.focus() + } catch (e) {} + } else if (e.key === 'ArrowUp') { + e.preventDefault() + try { + e.target?.previousElementSibling?.focus() + } catch (e) {} } else if (e.key !== 'Tab' && e.key !== 'Shift' && e.key !== 'Enter' && e.key !== ' ') { try { filterQueryRef.value?.focus() diff --git a/packages/nc-gui/components/virtual-cell/components/ListItems.vue b/packages/nc-gui/components/virtual-cell/components/ListItems.vue index bb42c803cb..2fcaa7ea7a 100644 --- a/packages/nc-gui/components/virtual-cell/components/ListItems.vue +++ b/packages/nc-gui/components/virtual-cell/components/ListItems.vue @@ -220,6 +220,16 @@ const onCreatedRecord = (record: any) => { const linkedShortcuts = (e: KeyboardEvent) => { if (e.key === 'Escape') { vModel.value = false + } else if (e.key === 'ArrowDown') { + e.preventDefault() + try { + e.target?.nextElementSibling?.focus() + } catch (e) {} + } else if (e.key === 'ArrowUp') { + e.preventDefault() + try { + e.target?.previousElementSibling?.focus() + } catch (e) {} } else if (e.key !== 'Tab' && e.key !== 'Shift' && e.key !== 'Enter' && e.key !== ' ') { try { filterQueryRef.value?.focus()