From d7ac2ad69729b0fa17403f0721400551431d1eb2 Mon Sep 17 00:00:00 2001 From: kolaente Date: Sun, 23 Oct 2022 15:39:27 +0200 Subject: [PATCH] fix(task): scroll the task field into view after activating it --- src/views/tasks/TaskDetailView.vue | 39 +++++++++++++++++++----------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/src/views/tasks/TaskDetailView.vue b/src/views/tasks/TaskDetailView.vue index f1042dc77..e6978485f 100644 --- a/src/views/tasks/TaskDetailView.vue +++ b/src/views/tasks/TaskDetailView.vue @@ -26,7 +26,7 @@ :disabled="!canWrite" :list-id="task.listId" :task-id="task.id" - ref="assignees" + :ref="e => setFieldRef('assignees', e)" v-model="task.assignees" /> @@ -40,7 +40,7 @@ @@ -57,7 +57,7 @@ @close-on-change="() => saveTask()" :choose-date-label="$t('task.detail.chooseDueDate')" :disabled="taskService.loading || !canWrite" - ref="dueDate" + :ref="e => setFieldRef('dueDate', e)" /> @@ -97,7 +97,7 @@ @close-on-change="() => saveTask()" :choose-date-label="$t('task.detail.chooseStartDate')" :disabled="taskService.loading || !canWrite" - ref="startDate" + :ref="e => setFieldRef('startDate', e)" /> @@ -171,7 +171,7 @@ @@ -186,7 +186,7 @@ @@ -202,7 +202,11 @@ {{ $t('task.attributes.labels') }} - + @@ -220,7 +224,7 @@ :edit-enabled="canWrite" :task="task" @task-changed="({coverImageAttachmentId}) => task.coverImageAttachmentId = coverImageAttachmentId" - ref="attachments" + :ref="e => setFieldRef('attachments', e)" /> @@ -238,7 +242,7 @@ :list-id="task.listId" :show-no-relations-notice="true" :task-id="taskId" - ref="relatedTasks" + :ref="e => setFieldRef('relatedTasks', e)" /> @@ -252,7 +256,10 @@
- +
@@ -659,10 +666,14 @@ const activeFieldElements : {[id in FieldType]: HTMLElement | null} = reactive({ startDate: null, }) +function setFieldRef(name, e) { + activeFieldElements[name] = unrefElement(e) +} + function setFieldActive(fieldName: keyof typeof activeFields) { activeFields[fieldName] = true nextTick(() => { - const el = unrefElement(activeFieldElements[fieldName]) + const el = activeFieldElements[fieldName] if (!el) { return