Skip to content

Commit b012151

Browse files
authored
fix(Calendar): should show days and weekdays in current lang and selected timezone (#149)
1 parent 1d0f842 commit b012151

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

src/components/CalendarView/CalendarView.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ interface WeekdaysProps {
156156
state: CalendarState | RangeCalendarState;
157157
}
158158
function Weekdays({state}: WeekdaysProps) {
159-
const weekdays = getWeekDays();
159+
const weekdays = getWeekDays(state);
160160

161161
return (
162162
<div className={b('grid-row')} role="row">
@@ -182,7 +182,7 @@ interface CalendarGridProps {
182182
function CalendarGridCells({state}: CalendarGridProps) {
183183
const rowsInPeriod = state.mode === 'days' ? 6 : 4;
184184
const columnsInRow = state.mode === 'days' ? 7 : 3 + (state.mode === 'quarters' ? 1 : 0);
185-
const days = getDaysInPeriod(state.startDate, state.endDate, state.mode);
185+
const days = getDaysInPeriod(state);
186186
return (
187187
<div className={b('grid-rowgroup', {mode: state.mode})} role="rowgroup">
188188
{[...new Array(rowsInPeriod).keys()].map((rowIndex) => (

src/components/CalendarView/utils.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,32 @@
11
import {dateTime} from '@gravity-ui/date-utils';
22
import type {DateTime} from '@gravity-ui/date-utils';
33

4-
import type {CalendarLayout} from './hooks/types';
4+
import type {CalendarLayout, CalendarState, RangeCalendarState} from './hooks/types';
55

6-
export function getDaysInPeriod(startDate: DateTime, _endDate: DateTime, mode: CalendarLayout) {
6+
export function getDaysInPeriod(state: CalendarState | RangeCalendarState) {
77
const days: DateTime[] = [];
88

9-
if (mode === 'days') {
9+
const startDate = dateTime({input: state.startDate, timeZone: state.timeZone});
10+
if (state.mode === 'days') {
1011
const currentDate = startDate.startOf('week');
1112
for (let i = 0; i < 42; i++) {
1213
days.push(currentDate.add({days: i}));
1314
}
14-
} else if (mode === 'quarters') {
15+
} else if (state.mode === 'quarters') {
1516
for (let i = 0; i < 16; i++) {
1617
days.push(startDate.add(i, 'quarters'));
1718
}
1819
} else {
1920
for (let i = 0; i < 12; i++) {
20-
days.push(startDate.add({[mode]: i}));
21+
days.push(startDate.add({[state.mode]: i}));
2122
}
2223
}
2324
return days;
2425
}
2526

26-
export function getWeekDays() {
27+
export function getWeekDays(state: CalendarState | RangeCalendarState) {
2728
const weekDays = [];
28-
const weekStart = dateTime().startOf('week');
29+
const weekStart = dateTime({timeZone: state.timeZone}).startOf('week');
2930
for (let i = 0; i < 7; i++) {
3031
const date = weekStart.add({days: i});
3132
weekDays.push(date);

0 commit comments

Comments
 (0)