From da2ff740d2c3053963308197ae06ed5b4b6b42c4 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Mon, 10 Apr 2023 21:14:42 +0200 Subject: [PATCH] row moves to step record component --- src/modules/record/components/StepRecord.vue | 72 +++++++++++++++++++ src/modules/record/components/TaskRecord.vue | 18 ++--- .../record/interfaces/step-recordable.ts | 1 - .../record/stores/useTaskRecordStore.ts | 13 +--- src/modules/task/stores/useTask.store.ts | 9 ++- 5 files changed, 89 insertions(+), 24 deletions(-) create mode 100644 src/modules/record/components/StepRecord.vue diff --git a/src/modules/record/components/StepRecord.vue b/src/modules/record/components/StepRecord.vue new file mode 100644 index 0000000..52d7455 --- /dev/null +++ b/src/modules/record/components/StepRecord.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/src/modules/record/components/TaskRecord.vue b/src/modules/record/components/TaskRecord.vue index df4dd3b..2278232 100644 --- a/src/modules/record/components/TaskRecord.vue +++ b/src/modules/record/components/TaskRecord.vue @@ -4,6 +4,7 @@ import { formatDate } from '@/shared/format-date' import { toISODate } from '@/shared/types/date' import { computed } from 'vue' import { useTaskRecordStore } from '../stores/useTaskRecordStore' +import StepRecord from './StepRecord.vue' const props = defineProps<{ taskId: string @@ -85,19 +86,14 @@ const nextStep = () => { - - {{ key + 1 }} - {{ step.title }} - {{ step.estimation }} minutes - - {{ record.stepRecords[step.id] }} minutes - - NA - + :step-id="step.id" + :step-number="key" + /> diff --git a/src/modules/record/interfaces/step-recordable.ts b/src/modules/record/interfaces/step-recordable.ts index e3fb02f..0ec4e3c 100644 --- a/src/modules/record/interfaces/step-recordable.ts +++ b/src/modules/record/interfaces/step-recordable.ts @@ -1,7 +1,6 @@ import type { ISODate } from '@/shared/types/date' export interface StepRecordable { - problems: string[] start: ISODate end?: ISODate } diff --git a/src/modules/record/stores/useTaskRecordStore.ts b/src/modules/record/stores/useTaskRecordStore.ts index 5cfd722..09733d5 100644 --- a/src/modules/record/stores/useTaskRecordStore.ts +++ b/src/modules/record/stores/useTaskRecordStore.ts @@ -41,7 +41,6 @@ export const useTaskRecordStore = defineStore('task-record-store', { stepRecords: { ...record.stepRecords, [params.stepId]: { - problems: [], start: params.start } } @@ -86,15 +85,6 @@ export const useTaskRecordStore = defineStore('task-record-store', { endRecord(recordId: string) { this.records[recordId].end = toISODate(new Date()) this.currentStepId = null - }, - addProblemToStepRecord(recordId: string, stepId: string, problem: string) { - const stepRecord = this.getStepRecord(recordId, stepId) - - if (!stepRecord) { - return - } - - stepRecord.problems.push(problem) } }, getters: { @@ -118,6 +108,9 @@ export const useTaskRecordStore = defineStore('task-record-store', { return newTaskRecord } }, + getRecord() { + return (recordId: string) => this.records?.[recordId] ?? null + }, getStepRecord() { return (recordId: string, stepId: string): StepRecordable | null => this.records?.[recordId]?.stepRecords[stepId] ?? null diff --git a/src/modules/task/stores/useTask.store.ts b/src/modules/task/stores/useTask.store.ts index 7b32e69..f3418b2 100644 --- a/src/modules/task/stores/useTask.store.ts +++ b/src/modules/task/stores/useTask.store.ts @@ -1,5 +1,6 @@ import { defineStore } from 'pinia' import type { Taskable } from '../interfaces/taskable' +import type { Step } from '../models/step' import { Task } from '../models/task' export interface TaskStoreState { @@ -26,8 +27,12 @@ export const useTaskStore = defineStore('task-store', { .sort((a, b) => (a.date > b.date ? -1 : 1)) }, getTask() { - return (taskId: string): Task | undefined => - this.recentTasks.find((task) => task.id === taskId) + return (taskId: string): Task | null => + this.recentTasks.find((task) => task.id === taskId) ?? null + }, + getStep() { + return (taskId: string, stepId: string): Step | null => + this.getTask(taskId)?.steps.find((step) => step.id === stepId) ?? null } } })