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

Commit abd3480

Browse files
author
Dmitry Yadrikhinsky
committed
[Hours] Start/pause HoursCard
1 parent c448c27 commit abd3480

File tree

4 files changed

+63
-13
lines changed

4 files changed

+63
-13
lines changed

src/screens/hours/HoursView.less

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
.hours {
2+
overflow-y: scroll;
3+
padding: 12px;
4+
}
5+
6+
.hours .ant-space-item {
7+
display: flex;
8+
justify-content: center;
9+
}
10+
11+
.hours .ant-card-body {
12+
padding: 8px;
13+
}

src/screens/hours/HoursView.tsx

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
11
import React from 'react';
2-
import { Layout } from 'antd';
2+
import { Layout, Space } from 'antd';
3+
import { observer } from 'mobx-react';
4+
5+
import './HoursView.less';
36

47
import rootStore from '../../services/RootStore';
58
import HoursCard from './components/HoursCard/HoursCard';
69
import getTimeItems from '../../services/TaskTimeItem';
710

811
const { tasksStore } = rootStore;
912

10-
export default function HoursView() {
13+
export default observer(function HoursView() {
1114
const tasks = tasksStore.getTaskByDate(new Date());
1215
const timeItems = getTimeItems(tasks, new Date());
1316

1417
return (
15-
<Layout style={{ padding: '12px' }}>
16-
{timeItems.map((taskTime, index) => (
17-
<HoursCard key={index} taskTime={taskTime} />
18-
))}
18+
<Layout className="hours">
19+
<Space direction="vertical">
20+
{timeItems.map((taskTime, index) => (
21+
<HoursCard key={index} taskTime={taskTime} />
22+
))}
23+
</Space>
1924
</Layout>
2025
);
21-
}
26+
});
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.hours-card {
2+
width: 300px;
3+
}
4+
5+
.hours-card__icon {
6+
color: white;
7+
}
Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
import React from 'react';
22
import { Card } from 'antd';
3+
import format from 'date-fns/format';
4+
import { observer } from 'mobx-react';
5+
6+
import './HoursCard.less';
37

48
import TaskTimeModel from '../../../../models/TaskTimeModel';
5-
import format from 'date-fns/format';
9+
import CircleButton from '../../../../components/CircleButton/CircleButton';
10+
import { CaretRightFilled, PauseOutlined } from '@ant-design/icons';
11+
import rootStore from '../../../../services/RootStore';
612

713
const formatStr = 'HH:mm';
814
function timeFormat(date: Date | undefined) {
@@ -12,17 +18,36 @@ function timeFormat(date: Date | undefined) {
1218
return '';
1319
}
1420

21+
const { tasksStore } = rootStore;
22+
1523
interface HoursCardProps {
1624
taskTime: TaskTimeModel;
1725
}
1826

19-
export default function HoursCard({ taskTime }: HoursCardProps) {
27+
export default observer(function HoursCard({ taskTime }: HoursCardProps) {
28+
const { task, time } = taskTime;
29+
30+
function handleClick() {
31+
if (!task.active) {
32+
tasksStore.startTimer(task);
33+
} else {
34+
tasksStore.endTimer(task);
35+
}
36+
}
37+
2038
return (
21-
<Card style={{ width: 300 }}>
22-
<div>{taskTime.task.title}</div>
39+
<Card className="hours-card">
2340
<div>
24-
{`${timeFormat(taskTime.time[0])} - ${timeFormat(taskTime.time[1])}`}
41+
<div>{task.title}</div>
42+
<div>{`${timeFormat(time[0])} - ${timeFormat(time[1])}`}</div>
2543
</div>
44+
<CircleButton onClick={handleClick}>
45+
{!task.active ? (
46+
<CaretRightFilled className="hours-card__icon" />
47+
) : (
48+
<PauseOutlined className="hours-card__icon" />
49+
)}
50+
</CircleButton>
2651
</Card>
2752
);
28-
}
53+
});

0 commit comments

Comments
 (0)