From 3485a8cd8d91aff9698451103b7dcaccee180fe2 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Tue, 29 Aug 2023 22:07:30 +0200 Subject: [PATCH] fix sync task record that reset every times --- src/modules/record/components/StepRecord.vue | 11 ++++++----- src/modules/record/stores/useTaskRecordStore.ts | 14 +++++++------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/modules/record/components/StepRecord.vue b/src/modules/record/components/StepRecord.vue index 834864f..bbe0426 100644 --- a/src/modules/record/components/StepRecord.vue +++ b/src/modules/record/components/StepRecord.vue @@ -39,15 +39,16 @@ const duration = computed(() => { return null } - // When in pause, it can happen to - // have a tick where now is behind new Date(). - const mostRecentDate = new Date( - Math.max(new Date(now.value).getTime(), new Date().getTime()) + const compareDate = new Date( + record.value?.breakTime?.start ?? + // When in pause, it can happen to + // have a tick where now is behind new Date(). + Math.max(new Date(now.value).getTime(), new Date().getTime()) ) return formatDiffInMinutes( stepRecord.value.start, - stepRecord.value?.end ?? toISODate(new Date(mostRecentDate)) + stepRecord.value?.end ?? toISODate(new Date(compareDate)) ) }) diff --git a/src/modules/record/stores/useTaskRecordStore.ts b/src/modules/record/stores/useTaskRecordStore.ts index 42893dc..8f7bfd1 100644 --- a/src/modules/record/stores/useTaskRecordStore.ts +++ b/src/modules/record/stores/useTaskRecordStore.ts @@ -17,7 +17,9 @@ export const useTaskRecordStore = defineStore('task-record-store', { }), actions: { syncTaskRecord(task: Task) { - if (!(task.id in this.records)) { + const isTaskRecorded = task.id in this.records + + if (!isTaskRecorded) { return } @@ -26,13 +28,11 @@ export const useTaskRecordStore = defineStore('task-record-store', { const taskRecordStepIds = Object.keys(record.stepRecords) const taskStepIds = new Set(task.steps.map((step) => step.id)) - const hasSameSteps = - taskRecordStepIds.length === taskStepIds.size && - taskRecordStepIds.every((taskRecordStepId) => - taskStepIds.has(taskRecordStepId) - ) + const hasRecordedStepsStillInTask = taskRecordStepIds.every( + (taskRecordStepId) => taskStepIds.has(taskRecordStepId) + ) - if (!hasSameSteps) { + if (!hasRecordedStepsStillInTask) { this.records[task.id] = new TaskRecord(task.id) } },