Skip to content

Commit 342211a

Browse files
committed
refactor: move constrainValue to date utils
1 parent 29032a5 commit 342211a

File tree

5 files changed

+19
-20
lines changed

5 files changed

+19
-20
lines changed

src/components/CalendarView/hooks/useCalendarState.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import type {DateTime} from '@gravity-ui/date-utils';
55
import {useControlledState} from '@gravity-ui/uikit';
66

77
import type {ValueBase} from '../../types';
8-
import {createPlaceholderValue, mergeDateTime} from '../../utils/dates';
8+
import {constrainValue, createPlaceholderValue, mergeDateTime} from '../../utils/dates';
99
import {useDefaultTimeZone} from '../../utils/useDefaultTimeZone';
10-
import {calendarLayouts, constrainValue} from '../utils';
10+
import {calendarLayouts} from '../utils';
1111

1212
import type {CalendarLayout, CalendarState, CalendarStateOptionsBase} from './types';
1313

src/components/CalendarView/hooks/useRangeCalendarState.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ import type {DateTime} from '@gravity-ui/date-utils';
44
import {useControlledState} from '@gravity-ui/uikit';
55

66
import type {RangeValue} from '../../types';
7-
import {mergeDateTime} from '../../utils/dates';
7+
import {constrainValue, mergeDateTime} from '../../utils/dates';
88
import {useDefaultTimeZone} from '../../utils/useDefaultTimeZone';
9-
import {constrainValue} from '../utils';
109

1110
import type {CalendarLayout, RangeCalendarState} from './types';
1211
import {useCalendarState} from './useCalendarState';

src/components/CalendarView/utils.ts

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,6 @@ import type {DateTime} from '@gravity-ui/date-utils';
33

44
import type {CalendarLayout} from './hooks/types';
55

6-
export function constrainValue(
7-
value: DateTime,
8-
minValue: DateTime | undefined,
9-
maxValue: DateTime | undefined,
10-
) {
11-
if (minValue && value.isBefore(minValue)) {
12-
return minValue;
13-
}
14-
if (maxValue && maxValue.isBefore(value)) {
15-
return maxValue;
16-
}
17-
18-
return value;
19-
}
20-
216
export function getDaysInPeriod(startDate: DateTime, _endDate: DateTime, mode: CalendarLayout) {
227
const days: DateTime[] = [];
238

src/components/RelativeDatePicker/__stories__/RelativeDatePicker.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import type {Meta, StoryObj} from '@storybook/react';
88

99
import {timeZoneControl} from '../../../demo/utils/zones';
1010
import {Calendar} from '../../Calendar';
11-
import {constrainValue} from '../../CalendarView/utils';
11+
import {constrainValue} from '../../utils/dates';
1212
import {RelativeDatePicker} from '../RelativeDatePicker';
1313
import type {RelativeDatePickerProps} from '../RelativeDatePicker';
1414
import type {Value} from '../hooks/useRelativeDatePickerState';

src/components/utils/dates.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,21 @@ export function isInvalid(
3030
return false;
3131
}
3232

33+
export function constrainValue(
34+
value: DateTime,
35+
minValue: DateTime | undefined,
36+
maxValue: DateTime | undefined,
37+
) {
38+
if (minValue && value.isBefore(minValue)) {
39+
return minValue;
40+
}
41+
if (maxValue && maxValue.isBefore(value)) {
42+
return maxValue;
43+
}
44+
45+
return value;
46+
}
47+
3348
export function mergeDateTime(date: DateTime, time: DateTime) {
3449
return date
3550
.set('hours', time.hour())

0 commit comments

Comments
 (0)