From f84707e3b7e139d679ce970d8cc366b91f965ffb Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Mon, 5 Sep 2022 11:07:08 +0200 Subject: [PATCH] fix(gui-v2): re-find cell ref for attachment dropzone on order change --- .../components/cell/attachment/index.vue | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/packages/nc-gui-v2/components/cell/attachment/index.vue b/packages/nc-gui-v2/components/cell/attachment/index.vue index 81e82e76ff..5d9320f1cd 100644 --- a/packages/nc-gui-v2/components/cell/attachment/index.vue +++ b/packages/nc-gui-v2/components/cell/attachment/index.vue @@ -6,9 +6,9 @@ import Modal from './Modal.vue' import Carousel from './Carousel.vue' import { IsFormInj, - computed, inject, isImage, + nextTick, openLink, ref, useDropZone, @@ -52,10 +52,24 @@ const { storedFiles, } = useProvideAttachmentCell(updateModelValue) -const currentCellRef = computed(() => - !rowIndex && isForm.value - ? attachmentCellRef.value - : cellRefs.value.find((cell) => cell.dataset.key === `${rowIndex}${column.value.id}`), +const currentCellRef = ref() + +watch( + [() => rowIndex, isForm], + () => { + if (!rowIndex && isForm.value) { + currentCellRef.value = attachmentCellRef.value + } else { + nextTick(() => { + currentCellRef.value = cellRefs.value.reduceRight((cell, curr) => { + if (!Object.keys(cell).length && curr.dataset.key === `${rowIndex}${column.value.id}`) cell = curr + + return cell + }, {} as HTMLTableDataCellElement) + }) + } + }, + { immediate: true, flush: 'post' }, ) const { dragging } = useSortable(sortableRef, visibleItems, updateModelValue, isReadonly)