diff --git a/packages/nc-gui/components/smartsheet/Grid.vue b/packages/nc-gui/components/smartsheet/Grid.vue index 07f529ac6e..e8861107f3 100644 --- a/packages/nc-gui/components/smartsheet/Grid.vue +++ b/packages/nc-gui/components/smartsheet/Grid.vue @@ -83,6 +83,7 @@ const contextMenuTarget = ref<{ row: number; col: number } | null>(null) const expandedFormDlg = ref(false) const expandedFormRow = ref() const expandedFormRowState = ref>() +const tbodyEl = ref() const { isLoading, @@ -107,6 +108,19 @@ const { selectCell, selectBlock, selectedRange, clearRangeRows, startSelectRange isPkAvail, clearCell, makeEditable, + () => { + if (selected.row !== null && selected.col !== null) { + // get active cell + const td = tbodyEl.value?.querySelectorAll('tr')[selected.row]?.querySelectorAll('td')[selected.col + 1] + if (!td) return + // scroll into the active cell + td.scrollIntoView({ + behavior: 'smooth', + block: 'nearest', + inline: 'nearest', + }) + } + }, ) onMounted(loadGridViewColumns) @@ -351,22 +365,6 @@ watch( }, { immediate: true }, ) - -const tbodyEl = ref() - -watch([() => selected.row, () => selected.col], ([row, col]) => { - if (row !== null && col !== null) { - // get active cell - const td = tbodyEl.value?.querySelectorAll('tr')[row]?.querySelectorAll('td')[col + 1] - if (!td) return - // scroll into the active cell - td.scrollIntoView({ - behavior: 'smooth', - block: 'end', - inline: 'end', - }) - } -})