-
Notifications
You must be signed in to change notification settings - Fork 133
feat(): Add new <DateRangePicker>
component
#3586
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
a8b895b
to
23df406
Compare
23df406
to
52fab02
Compare
c3a26e8
to
81b4b52
Compare
8a6fbaf
to
aa9ffd5
Compare
2a24d34
to
df140b9
Compare
393cca9
to
bd1cc39
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Пока посмотрел только часть, без тестов и мобильного вида.
По поведению заметил такую особенность. Если maxDate
меньше выбранной даты в инпуте, то при фокусе на нем Календарь покажет месяц, отличный от того, что выбран. И может быть сложно доскролить до выбранной даты, если она далеко, т.к. выпадашки месяца и года отключены.
Оригинальный DatePicker в этом плане отличается, показывая выбранный месяц.
Так и задумано? Не успел еще со всей аналитикой ознакомиться.
@sashachabin: всё так, это ошибка — поправил!
packages/react-ui/components/DateRangePicker/DateRangePicker.tsx
Outdated
Show resolved
Hide resolved
packages/react-ui/components/DateRangePicker/DateRangePicker.tsx
Outdated
Show resolved
Hide resolved
packages/react-ui/components/DateRangePicker/DateRangePicker.tsx
Outdated
Show resolved
Hide resolved
packages/react-ui/components/DateRangePicker/DateRangePicker.tsx
Outdated
Show resolved
Hide resolved
packages/react-ui/components/DateRangePicker/DateRangePickerField.tsx
Outdated
Show resolved
Hide resolved
packages/react-ui/components/DateRangePicker/DateRangePickerField.tsx
Outdated
Show resolved
Hide resolved
packages/react-ui/components/DateRangePicker/DateRangePickerField.tsx
Outdated
Show resolved
Hide resolved
6950e53
to
f3a399c
Compare
packages/react-ui/components/DateRangePicker/__tests__/getStateForValue-test.ts
Outdated
Show resolved
Hide resolved
packages/react-ui/components/DateRangePicker/__tests__/DateRangePicker-test.tsx
Outdated
Show resolved
Hide resolved
f3a399c
to
96e4794
Compare
73e8461
to
d6aab5d
Compare
packages/react-ui/components/DateRangePicker/DateRangePicker.tsx
Outdated
Show resolved
Hide resolved
packages/react-ui/components/DateRangePicker/DateRangePicker.tsx
Outdated
Show resolved
Hide resolved
519972f
to
c954047
Compare
fb05e10
to
b52215a
Compare
<DateRangePicker>
Привет! Сделал компонент для выбора периода
<DateRangePicker>
Документация
<DateInput>
и одного общего<Calendar>
с диапазоном:<DateRangePicker.Start />
— начало периода, настройки как у<DateInput>
<DateRangePicker.End />
— конец периода, настройки как у<DateInput>
<DateRangePicker.Separator />
— разделитель<Calendar renderDay={...} />
. ПропrenderDay
так же доступен для настройки в DateRangePicker. Например, можно собрать календарь с ценами<DatePicker />
. Например,enableTodayLink
,useMobileNativeDatePicker
,onMonthChange
DatePicker
добавлен метод для валидацииDatePickerRange.validate(startValue, endValue, {options})
. В отдельном PR пример работы с библиотекой валидацийaria-group
иaria-label
для полей и правки в DateInputПредыдущее API для работы со значениями (устарело после обсуждений)
Работа со значениями
Важная особенность компонента — он не только состоит из нескольких частей, но и в нём сразу 2 input. В процессе разработки выработал 2 принципа:
value={['dd.mm.yyyy', 'dd.mm.yyyy']}
(формат настраивается)optional
,warning
,error
задаются в формате[true, false]
children
подразумевается только кастомизация оберток и<DateInput>
без работы со значениямиСсылки
IF-87 — там ссылки на дизайн, референсы и фидбек от разных команд
Чек-лист перед запросом ревью
Добавлены тесты на все изменения
✅ unit-тесты для логики
✅ скриншоты для верстки и кросс-браузерности
⬜ нерелевантно
Добавлена (обновлена) документация
✅ styleguidist для пропов и примеров использования компонентов
✅ jsdoc для утилит и хелперов
✅ комментарии для неочевидных мест в коде
✅ прочие инструкции (
README.md
,contributing.md
и др.)⬜ нерелевантно
Изменения корректно типизированы
✅ без использования
any
(см. PR2856
)⬜ нерелевантно
Прочее
✅ все тесты и линтеры на CI проходят
✅ в коде нет лишних изменений**
✅ заголовок PR кратко и доступно отражает суть изменений (он попадет в changelog)