Browse Source

fix: refresh fill handle on active cell change

Signed-off-by: mertmit <mertmit99@gmail.com>
pull/5896/head
mertmit 1 year ago
parent
commit
3a41d54d5d
  1. 18
      packages/nc-gui/components/smartsheet/Grid.vue

18
packages/nc-gui/components/smartsheet/Grid.vue

@ -907,13 +907,14 @@ const showFillHandle = computed(
!isLocked.value && !isLocked.value &&
!editEnabled && !editEnabled &&
(!selectedRange.isEmpty() || (activeCell.row !== null && activeCell.col !== null)) && (!selectedRange.isEmpty() || (activeCell.row !== null && activeCell.col !== null)) &&
!data.value[selectedRange.end.row ?? activeCell.row]?.rowMeta?.new, !data.value[(isNaN(selectedRange.end.row) ? activeCell.row : selectedRange.end.row) ?? -1]?.rowMeta?.new,
) )
const refreshFillHandle = () => { const refreshFillHandle = () => {
const cellRef = cellRefs.value.find( const cellRef = cellRefs.value.find(
(cell) => (cell) =>
cell.el.dataset.rowIndex === String(selectedRange.end.row) && cell.el.dataset.colIndex === String(selectedRange.end.col), cell.el.dataset.rowIndex === String(isNaN(selectedRange.end.row) ? activeCell.row : selectedRange.end.row) &&
cell.el.dataset.colIndex === String(isNaN(selectedRange.end.col) ? activeCell.col : selectedRange.end.col),
) )
if (cellRef) { if (cellRef) {
const cellRect = useElementBounding(cellRef.el) const cellRect = useElementBounding(cellRef.el)
@ -923,11 +924,14 @@ const refreshFillHandle = () => {
} }
} }
watch([() => selectedRange.end.row, () => selectedRange.end.col], (n, o) => { watch(
if (n !== o) { [() => selectedRange.end.row, () => selectedRange.end.col, () => activeCell.row, () => activeCell.col],
refreshFillHandle() ([sr, sc, ar, ac], [osr, osc, oar, oac]) => {
} if (sr !== osr || sc !== osc || ar !== oar || ac !== oac) {
}) refreshFillHandle()
}
},
)
useEventListener(gridWrapper, 'scroll', () => { useEventListener(gridWrapper, 'scroll', () => {
refreshFillHandle() refreshFillHandle()

Loading…
Cancel
Save