Skip to content
This repository was archived by the owner on Dec 26, 2022. It is now read-only.

Commit 29f04e8

Browse files
committed
Added labels
1 parent def6298 commit 29f04e8

File tree

2 files changed

+46
-8
lines changed

2 files changed

+46
-8
lines changed

src/components/ProgressBar/ProgressBar.tsx

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,22 @@ import React, { useCallback, useMemo, useState } from 'react';
22
import { observer } from 'mobx-react';
33
import { Slider } from 'antd';
44
import { isSameDay } from 'date-fns';
5+
import { createUseStyles } from 'react-jss';
56

67
import rootStore from '../../modules/RootStore';
78
import { useInterval } from '../../hooks/UseInterval';
89
import { getStartWorkingTime, getTimeItems } from '../../helpers/TaskHelper';
910
import TaskTimeService from '../../services/TaskTimeService';
11+
import { toTimeFormat } from '../../helpers/DateTime';
1012

1113
const { tasksStore, settingsStore } = rootStore;
1214

1315
function ProgressBar() {
1416
const { settings } = settingsStore;
1517
const workingHoursMs = settings.numberOfWorkingHours;
1618

19+
const style = useStyle();
20+
1721
const [dayUpdateEveryDay, setDayUpdateEveryDay] = useState(new Date());
1822
const [timer, setTimer] = useState(new Date());
1923

@@ -26,7 +30,7 @@ function ProgressBar() {
2630
}, [dayUpdateEveryDay]);
2731

2832
useInterval(shouldDayUpdate);
29-
33+
1 + 1;
3034
const tasks = useMemo(() => tasksStore.getTasksByDate(dayUpdateEveryDay), [
3135
tasksStore.tasks,
3236
dayUpdateEveryDay,
@@ -45,7 +49,7 @@ function ProgressBar() {
4549
timeItems,
4650
]);
4751

48-
const progress = useMemo(
52+
const { estimatedWorkingTimeEnd, progress } = useMemo(
4953
() =>
5054
TaskTimeService.getDayProgress(
5155
timeRangeItems,
@@ -55,9 +59,25 @@ function ProgressBar() {
5559
[timer, timeRangeItems, workingTimeStart, workingHoursMs]
5660
);
5761

58-
console.log(progress);
62+
const marks = useMemo(
63+
() => ({
64+
0: toTimeFormat(workingTimeStart),
65+
100: toTimeFormat(estimatedWorkingTimeEnd),
66+
}),
67+
[timer, workingTimeStart, estimatedWorkingTimeEnd]
68+
);
5969

60-
return <Slider value={progress} />;
70+
return <Slider marks={marks} value={progress} className={style.slider} />;
6171
}
6272

73+
const useStyle = createUseStyles({
74+
slider: {
75+
'& .ant-slider-mark': {
76+
'& .ant-slider-mark-text': {
77+
color: 'white',
78+
},
79+
},
80+
},
81+
});
82+
6383
export default observer(ProgressBar);

src/services/TaskTimeService.ts

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,26 @@ import {
55
} from '../helpers/DateTime';
66
import { ITimeRangeModel } from '../modules/tasks/models/TaskModel';
77

8+
export type DayProgress = {
9+
progress: number;
10+
durationMs: number;
11+
restMs: number;
12+
estimatedWorkingTimeEnd: Date | undefined;
13+
};
14+
815
const TaskTimeService = {
916
getDayProgress(
1017
timeItems: ITimeRangeModel[],
1118
workingTimeStart: Date | undefined,
1219
workingHoursMs: number
13-
) {
20+
): DayProgress {
1421
if (!workingTimeStart) {
15-
return 0;
22+
return {
23+
progress: 0,
24+
durationMs: 0,
25+
restMs: 0,
26+
estimatedWorkingTimeEnd: undefined,
27+
};
1628
}
1729

1830
const durationMs = calcDuration(timeItems);
@@ -23,13 +35,19 @@ const TaskTimeService = {
2335
workingHoursMs
2436
);
2537

38+
let progress = 0;
2639
if (estimatedWorkingTimeEnd) {
2740
const durationWorkDayMs =
2841
estimatedWorkingTimeEnd.getTime() - workingTimeStart.getTime() || 1;
29-
return (durationMs * 100) / durationWorkDayMs;
42+
progress = (durationMs * 100) / durationWorkDayMs;
3043
}
3144

32-
return 0;
45+
return {
46+
progress,
47+
durationMs,
48+
restMs,
49+
estimatedWorkingTimeEnd,
50+
};
3351
},
3452
};
3553

0 commit comments

Comments
 (0)