Skip to content

Commit 724fa29

Browse files
author
Dmitry Yadrikhinsky
committed
[Hours] Pick date
1 parent d7a3f32 commit 724fa29

File tree

4 files changed

+44
-4
lines changed

4 files changed

+44
-4
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@
260260
"less-loader": "8.0.0",
261261
"mobx": "6.1.8",
262262
"mobx-react": "7.1.0",
263+
"moment": "2.29.1",
263264
"react": "^17.0.1",
264265
"react-dom": "^17.0.1",
265266
"react-router-dom": "^5.2.0",

src/screens/hours/HoursView.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import React, { useState } from 'react';
22
import { Layout, Space } from 'antd';
33
import { observer } from 'mobx-react';
44

@@ -7,16 +7,20 @@ import './HoursView.less';
77
import rootStore from '../../services/RootStore';
88
import HoursCard from './components/HoursCard/HoursCard';
99
import getTimeItems from '../../services/TaskTimeItem';
10+
import SelectDate from './components/SelectDate/SelectDate';
1011

1112
const { tasksStore } = rootStore;
1213

1314
export default observer(function HoursView() {
14-
const tasks = tasksStore.getTaskByDate(new Date());
15-
const timeItems = getTimeItems(tasks, new Date());
15+
const [date, setDate] = useState<Date>(new Date());
16+
17+
const tasks = tasksStore.getTaskByDate(date);
18+
const timeItems = getTimeItems(tasks, date);
1619

1720
return (
1821
<Layout className="hours">
1922
<Space direction="vertical">
23+
<SelectDate date={date} onChange={setDate} />
2024
{timeItems.map((taskTime, index) => (
2125
<HoursCard key={index} taskTime={taskTime} />
2226
))}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import React from 'react';
2+
import { Button, DatePicker } from 'antd';
3+
import { LeftOutlined, RightOutlined } from '@ant-design/icons';
4+
import moment from 'moment';
5+
import addDays from 'date-fns/addDays';
6+
7+
interface SelectDateProps {
8+
date: Date;
9+
onChange: (date: Date) => void;
10+
}
11+
12+
function changeDate(date: Date, offsetDay: number) {
13+
return addDays(date, offsetDay);
14+
}
15+
16+
export default function SelectDate({ date, onChange }: SelectDateProps) {
17+
return (
18+
<div>
19+
<Button
20+
icon={<LeftOutlined />}
21+
onClick={() => onChange(changeDate(date, -1))}
22+
/>
23+
<DatePicker
24+
value={moment(date)}
25+
onChange={(date) => onChange(date?.toDate() || new Date())}
26+
allowClear={false}
27+
placeholder="Date"
28+
/>
29+
<Button
30+
icon={<RightOutlined />}
31+
onClick={() => onChange(changeDate(date, 1))}
32+
/>
33+
</div>
34+
);
35+
}

yarn.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8170,7 +8170,7 @@ mobx@6.1.8:
81708170
resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.1.8.tgz#5d03cb76d8f7694dd82bfb2578d886945b66450d"
81718171
integrity sha512-U4yCvUeh6yKXRwFxm2lyJjXPVekOEar/R8ZKWAXem/3fthJqYflViawfjDAUh7lZEvbKqljC3NT/pSaUKpE+gg==
81728172

8173-
moment@^2.24.0, moment@^2.25.3:
8173+
moment@2.29.1, moment@^2.24.0, moment@^2.25.3:
81748174
version "2.29.1"
81758175
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
81768176
integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==

0 commit comments

Comments
 (0)