Skip to content

Commit f7703d4

Browse files
author
Dmitry Yadrikhinsky
committed
[Timer] Refactoring saving time
1 parent b3aee8e commit f7703d4

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

src/models/TaskModel.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,27 @@ import AbstractModel from '../base/AbstractModel';
22
import { ITreeItem } from '../types/ITreeItem';
33
import { computed, makeObservable, observable } from 'mobx';
44

5-
interface ITaskModel extends ITreeItem<ITaskModel> {
5+
interface IJsonTaskModel extends ITreeItem<IJsonTaskModel> {
66
projectId: string;
77
checked: boolean;
88
active: boolean;
99
time: number[][];
1010
}
1111

12-
export default class TaskModel extends AbstractModel implements ITaskModel {
12+
export default class TaskModel extends AbstractModel {
1313
key: string = '';
1414
title: string = '';
1515
children: TaskModel[] = [];
1616
projectId: string = '';
1717
checked: boolean = false;
1818
active: boolean = false;
19-
time: number[][] = [];
19+
time: Date[][] = [];
2020

21-
constructor(props: ITaskModel) {
21+
constructor(props: IJsonTaskModel) {
2222
super();
2323
this.load(props);
2424
this.children = props.children?.map((json) => new TaskModel(json)) || [];
25+
this.time = props.time.map((range) => range.map((t) => new Date(t)));
2526

2627
makeObservable(this, {
2728
key: observable,
@@ -36,13 +37,14 @@ export default class TaskModel extends AbstractModel implements ITaskModel {
3637
}
3738

3839
get duration() {
39-
return this.time.reduce((prev: number, range: number[]) => {
40+
return this.time.reduce((prev: number, range: Date[]) => {
4041
if (range.length > 0) {
4142
const duration =
42-
(range.length === 2 ? range[1] : Date.now()) - range[0];
43+
(range.length === 2 ? range[1].getTime() : Date.now()) -
44+
range[0].getTime();
4345
return prev + duration;
4446
}
45-
return 0;
47+
return prev;
4648
}, 0);
4749
}
4850
}

src/services/tasks/TaskStore.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ export default class TaskStore {
3838
this.activeTask = task;
3939
task.time.forEach((range) => {
4040
if (range.length === 1) {
41-
range[1] = Date.now();
41+
range[1] = new Date();
4242
}
4343
});
44-
task.time.push([Date.now()]);
44+
task.time.push([new Date()]);
4545
task.active = true;
4646
this.tasksService.save(this.tasks);
4747
}
@@ -50,7 +50,7 @@ export default class TaskStore {
5050
this.activeTask = undefined;
5151
task.active = false;
5252
const range = task.time[task.time.length - 1];
53-
range.push(Date.now());
53+
range.push(new Date());
5454
this.tasksService.save(this.tasks);
5555
}
5656

0 commit comments

Comments
 (0)