Releases: VKCOM/VKUI
v8.0.0-rc.2
Исправления
- Button: После завершения загрузки (
loading: true → false) кнопка больше не остаётся в визуальном состоянии hover (#9478) - Calendar:
- DateInput: Корректное отображение и ввод даты/времени при заданном
timezone(и в календаре, и при ручном вводе в поля) (#9474) - Textarea: На safari не было отступа снизу для placeholder (#9481)
- CustomSelectOption: Добавлено свойство
textNoWrapдля предотвращения переноса текста (#9480) - Accordion: По интерактивным элементам можно было навигироваться внутри скрытого аккордиона (#9496)
Улучшения
- Box, Flex, SimpleGrid: Свойство
padding, включая его производные, теперь поддерживает значение'system', которое применяет платформенные отступы из@vkontakte/vkui-tokens– это упростит миграцию с устаревшего компонентаDivнаBox(#9388) - FormLayoutGroup: Добавлено свойство
noPadding(#9415)
Зависимости
- @vkontakte/vkui-tokens обновлен с
4.71.0до4.73.1(#9428) - @vkontakte/vkui-floating-ui обновлен с
0.2.7до0.2.8(#9477)
Документация
- При навигации не раскрывалось боковое меню (#9448)
v7.11.5
@vkontakte/vkui-codemods@1.1.0-beta.2
Улучшения
- Добавлен кодмод для компонента ActionSheet на изменение свойства
onClose->onClosed
v7.11.4
v8.0.0-rc.1
Исправления
-
Не все свойства, которые должны пробрасываться через корневой элемент, были объявлены в типах, в частности, это касается Input (не хватало
min,max) (#9444) -
Улучшена производительность компонентов связанных с датами и временем за счёт кеширования инициализации объекта Intl (#9340)
-
Из-за отказа от happy-css-modules, именование всех CSS классов переведёно в
camelCaseформат (#9355) -
Для возможности использовать scroll-snap-type, ещё немного обновили версии поддерживаемых браузеров (#9377)
- ChromeAndroid >= 68 + ChromeAndroid >= 69 - Chrome >= 68 + Chrome >= 69 - Samsung >= 9 + Samsung >= 10.1
-
Удалена зависимость uuid, т.к. не подходит по браузерной поддержке (#9443)
Улучшения
Документация
- Для раздела Компоненты в боковом меню добавлена клавиатурная навигация (#9354)
- Исправлена проблема моргания главной страницы (#9378)
- FixedLayout:
- Tooltip: В примере был неверный закрывающий компонент (#9404)
- useModalManager: Исправлена ссылка на исходник хука (#9432)
Зависимости
- @vkontakte/vkui-tokens обновлен с
4.71.0до4.72.0(#9370)
@vkontakte/vkui-codemods@1.1.0-beta.1
Исправления
Поправлены трансформации под slotProps в компонентах: Switch, Checkbox, Radio, File, CustomSelect, NativeSelect, Select, Textarea, WriteBar, Input, Search – теперь для обратной совместимости также переносятся события, т.к. может быть завязка на event.currentTarget и/или может упасть проверка типов (#9445).
v7.11.3
Исправления
- Tooltip: Откатили изменения из v7.11.0 и v7.11.2, связанные с пересчётом ширины (#9410)
- PanelHeaderButton:
hoverMode={undeined}и/илиactiveMode={undeined}не перебивают значения по умолчанию (#9413) - Calendar: Кнопки переключения месяцев могли быть квадратными (#9416)
- ContentCard, Avatar, Image, ImageBase: Для тега
imgатрибутloadingвыставлялся послеsrc, что сопровождается багом в Safari и в старых версиях Firefox (#9433) - useAdaptivityWithJSMediaQueries: поправлено предупреждение о вызове хука вне браузера. Теперь предупреждение будет выводиться один раз
Документация
v7.11.2
v7.11.1
Исправления
- HorizontalScroll: Контент не прокручивался по краям на сенсорных экранах (#9341)
v8.0.0-rc.0
BREAKING CHANGE
Улучшения
-
Обновлён список поддерживаемых браузеров
- ChromeAndroid >= 63 + ChromeAndroid >= 68 - iOS >= 12 + iOS >= 13 - Chrome >= 63 + Chrome >= 68 - Firefox >= 55 + Firefox >= 69 Edge >= 79 - Opera >= 50 + Opera >= 68 - Safari >= 12 + Safari >= 13 - Samsung >= 8.2 + Samsung >= 9
-
Поднята целевая версия
ECMAScriptдля компиляции доes2018(#9306) -
Для поддержки React Compiler изменен внутренний код ряда компонентов (#6919)
-
- Обработчик
onCloseпереименован вonClosed, самonCloseтеперь срабатывает перед началом анимации закрытия (#9285) - Параметр передаваемый в
onClosedпомечен как устаревший и будет удален вv10. Для получения причины закрытия используйтеreason, передаваемый вonClose(#9285) - Экспортируемый тип
ActionSheetOnCloseOptionsустарел и будет удален вv10– испозьуйте типActionSheetOnCloseReason(#9285)
- Обработчик
-
- Переключение между управляемым и неуправляемым состоянием компонента больше не обрабатывается (#9246)
- Раньше свойства в компонента прокидывались в скрытый инпут, но теперь все свойства, кроме описанных в #9063, прокидываются в корень компонента (#9186)
-
Banner: В свойстве
imageThemeдобавлено значениеautoдля того, чтобыimageThemeопределялось автоматически, в зависимости от цветовой схемы приложения –autoтеперь используется как значение по умолчанию (#9188) -
Calendar: Изменен тип свойства
onChangeна(value?: Date) => void(#9195) -
CalendarRange: Изменен тип свойства
onChangeна(value: DateRangeType | null) => void. Теперьvalueможет бытьnullпри сбросе выбранного промежутка дат (#9195) -
PopoutWrapper: Свойство
fixedбыло удалено. Вместо него можно использовать свойствоstrategy(#9232)
Примеры правильной миграции:<PopoutWrapper closing={closing} onClick={close} - fixed={false} + strategy="none" > </PopoutWrapper><PopoutWrapper closing={closing} onClick={close} - fixed > </PopoutWrapper> -
- Изменена реализация
fixed, который закрепляет шапку в области видимости при скролле – вместоposition: fixedиспользуетсяposition: sticky. Это потребовало изменение раскладки всей страницы –height: 100%на<html>и<body>удалён в пользуdisplay: flexи теперь высота страницы зависит от содержимого (#9252) - Если вы получали высоту области видимости через
document.body.clientHeightили на элементе сheight: 100%по каскаду ниже, то замените такой код либо на VIsualViewport, либо наdocument.documentElement.clientHeight, либо наwindow.innerHeight(#9252) - Если вам нужно, чтобы какой-то из элементов растягивался на высоты области видимости, то используйте единицы измерения
vhилиdvhвместо%(height: 100%→height: 100dvh) (#9252)
- Изменена реализация
-
- Изменена реализация
fixed, который закрепляет колонку в области видимости при скролле – вместоposition: fixedиспользуетсяposition: sticky(#9252) - Исправлена проблема когда переполненный контент при
fixedобрезался – теперь высотаSplitColзависит от его содержимого. Чтобы растянуть потомок на всю колонку, используйтеflex-grow: 1на этом потомке (#9252)
- Изменена реализация
-
ContentBadge: Изменены цвета компонента при
appearance="neutral"в режимахprimaryиsecondary(#9190) -
Snackbar: Переименовано свойство
onCloseвonClosed(#8839)
СвойствоonCloseпереименовано вonClosedдля улучшения семантики. ОбработчикonClosedвызывается после окончания анимации закрытия снекбара, а не в момент начала закрытия.
Пример миграции:- <Snackbar onClose={() => setSnackbar(null)}> + <Snackbar onClosed={() => setSnackbar(null)}> Message </Snackbar>
-
- Изменена структура рендеринга контента. Свойства
afterиafterCaptionтеперь рендерятся справа от основного блока, а новые свойстваmetaиsubmeta- внутри основного блока после основного контента (#9304) - Свойство
afterCaptionпомечено как deprecated и будет удалено вv10. ИспользуйтеsubmetaвместоafterCaption(#9304)
- Изменена структура рендеринга контента. Свойства
-
Свойства
baseClassNameиbaseStyleбыли удалены (#9214) -
Удален устаревший HOC
withModalRootContext, вместо него можно использовать хукuseModalRootContext. Также из контекста были удалены методыupdateModalHeight,registerModal(#9278) -
AdaptivityProvider: Свойства
sizeXиsizeYтеперь@deprecated, используйтеdensityвместоsizeY,viewWidth={ViewWidth.MOBILE}вместоsizeX="compact"иviewWidth={ViewWidth.SMALL_TABLET}вместоsizeX="regular"(#9334)Пример миграции
- <AdaptivityProvider sizeX="compact"> + <AdaptivityProvider viewWidth={ViewWidth.MOBILE}> - <AdaptivityProvider sizeX="regular"> + <AdaptivityProvider viewWidth={ViewWidth.SMALL_TABLET}> - <AdaptivityProvider sizeY="compact"> + <AdaptivityProvider density="compact"> - <AdaptivityProvider sizeY="regular"> + <AdaptivityProvider density="regular"> - <AdaptivityProvider sizeX="compact" sizeY="compact"> + <AdaptivityProvider viewWidth={ViewWidth.MOBILE} density="compact"> - <AdaptivityProvider sizeX="regular" sizeY="regular"> + <AdaptivityProvider viewWidth={ViewWidth.SMALL_TABLET} density="regular"> - <AppRootProvider sizeX="regular" sizeY="compact"> + <AppRootProvider viewWidth={ViewWidth.SMALL_TABLET} density="compact"> - <AppRootProvider sizeX="compact" sizeY="regular"> + <AppRootProvider viewWidth={ViewWidth.MOBILE} density="regular">
Исправления
- RichCell: Минимальная высота
RichCellуменьшена до48px- compact и44px- regular (#9283) - File: Раньше свойства в компонента прокидывались в скрытый инпут, но теперь все свойства, кроме описанных в #9044, прокидываются в корень компонента (#9181)
- Checkbox: Раньше свойства в компонента прокидывались в скрытый инпут, но теперь все свойства, кроме описанных в #9043, прокидываются в корень компонента (#9180)
- Radio: Раньше свойства в компонента прокидывались в скрытый инпут, но теперь все свойства, кроме описанных в #9043, прокидываются в корень компонента (#9180)
- Switch: Раньше свойства в компонента прокидывались в скрытый инпут, но теперь все свойства, кроме описанных в #9043, прокидываются в корень компонента (#9180)
- WriteBar: Раньше свойства в компонента прокидывались в скрытый инпут, но теперь все свойства, кроме описанных в #9086, прокидываются в корень компонента (#9184)
- Textarea:
- SplitLayout: Раньше свойства в компонента прокидывались в скрытый инпут, но теперь все свойства, кроме описанных в #9069, прокидываются в корень компонента (#9182)
- Input: Раньше свойства в компонента прокидывались в скрытый инпут, но теперь все свойства, кроме описанных в #9084, прокидываются в корень компонента (#9183)
- Search: Раньше свойства в компонента прокидывались в скрытый инпут, но теперь все свойства, кроме описанных в #9084, прокидываются в корень компонента (#9183)
- CustomSelect:
- NativeSelect: Раньше свойства в компонента прокидывались в скрытый ин...