|
1 | 1 | import {dateTime} from '@gravity-ui/date-utils';
|
2 | 2 | import type {DateTime} from '@gravity-ui/date-utils';
|
3 | 3 |
|
4 |
| -import type {CalendarLayout} from './hooks/types'; |
| 4 | +import type {CalendarLayout, CalendarState, RangeCalendarState} from './hooks/types'; |
5 | 5 |
|
6 |
| -export function getDaysInPeriod(startDate: DateTime, _endDate: DateTime, mode: CalendarLayout) { |
| 6 | +export function getDaysInPeriod(state: CalendarState | RangeCalendarState) { |
7 | 7 | const days: DateTime[] = [];
|
8 | 8 |
|
9 |
| - if (mode === 'days') { |
| 9 | + const startDate = dateTime({input: state.startDate, timeZone: state.timeZone}); |
| 10 | + if (state.mode === 'days') { |
10 | 11 | const currentDate = startDate.startOf('week');
|
11 | 12 | for (let i = 0; i < 42; i++) {
|
12 | 13 | days.push(currentDate.add({days: i}));
|
13 | 14 | }
|
14 |
| - } else if (mode === 'quarters') { |
| 15 | + } else if (state.mode === 'quarters') { |
15 | 16 | for (let i = 0; i < 16; i++) {
|
16 | 17 | days.push(startDate.add(i, 'quarters'));
|
17 | 18 | }
|
18 | 19 | } else {
|
19 | 20 | for (let i = 0; i < 12; i++) {
|
20 |
| - days.push(startDate.add({[mode]: i})); |
| 21 | + days.push(startDate.add({[state.mode]: i})); |
21 | 22 | }
|
22 | 23 | }
|
23 | 24 | return days;
|
24 | 25 | }
|
25 | 26 |
|
26 |
| -export function getWeekDays() { |
| 27 | +export function getWeekDays(state: CalendarState | RangeCalendarState) { |
27 | 28 | const weekDays = [];
|
28 |
| - const weekStart = dateTime().startOf('week'); |
| 29 | + const weekStart = dateTime({timeZone: state.timeZone}).startOf('week'); |
29 | 30 | for (let i = 0; i < 7; i++) {
|
30 | 31 | const date = weekStart.add({days: i});
|
31 | 32 | weekDays.push(date);
|
|
0 commit comments