Skip to content
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

v6: Migration guide #6182

Merged
merged 18 commits into from
Dec 8, 2023
Merged

v6: Migration guide #6182

merged 18 commits into from
Dec 8, 2023

Conversation

inomdzhon
Copy link
Contributor

@inomdzhon inomdzhon commented Dec 1, 2023

Описание

Собираем документ по миграции с v5 на v6.

@VKCOM/vkui пишите в комментариях свои изменения из PR, будем их вносить сюда.

  • нужно удалить страницу миграции на v5, оставить только на v6

@inomdzhon inomdzhon added the docs label Dec 1, 2023
@inomdzhon inomdzhon added this to the v6 milestone Dec 1, 2023
@inomdzhon inomdzhon requested a review from a team as a code owner December 1, 2023 13:28
Copy link
Contributor

github-actions bot commented Dec 1, 2023

👀 Docs deployed

Commit 714b66e

Copy link

codesandbox-ci bot commented Dec 1, 2023

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit 714b66e:

Sandbox Source
VKUI TypeScript Configuration

Copy link

codecov bot commented Dec 1, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (f22c11f) 80.78% compared to head (714b66e) 80.83%.
Report is 30 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #6182      +/-   ##
==========================================
+ Coverage   80.78%   80.83%   +0.05%     
==========================================
  Files         315      307       -8     
  Lines        9800     9685     -115     
  Branches     3301     3265      -36     
==========================================
- Hits         7917     7829      -88     
+ Misses       1883     1856      -27     
Flag Coverage Δ
unittests 80.83% <ø> (+0.05%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@inomdzhon
Copy link
Contributor Author

Дополнить доку

@SevereCloud SevereCloud marked this pull request as draft December 1, 2023 13:48
@BlackySoul BlackySoul force-pushed the blackysoul/update_migration_guide branch from 105ecdd to 54491f6 Compare December 1, 2023 14:56
@inomdzhon
Copy link
Contributor Author

inomdzhon commented Dec 4, 2023

Note

Для раздела ## Unstable -> Stable

Popper

<Popper
- renderContent

- arrowClassName=""
+ arrowProps={{ iconClassName: "" }}

- offsetDistance={0}
+ offsetByMainAxis={0}

- offsetSkidding={0}
+ offsetByCrossAxis={0}

- onPlacementChange={({ placement }) => {}}
+ onPlacementChange={(placement) => {}}

- forcePortal
+ usePortal

- portalRoot={someHTMLElement}
+ usePortal={someHTMLElement}
/>
  <div>Target</div>
</Popper>
  • onPlacementChange теперь вызывается только в случае, если Popper подобрал оптимальный placement вместо пользовательского.
  • renderContent удалён в пользу children. Раньше из renderContent можно было получить className, который задаёт Popper, сейчас этот className пустой.
  • targetRef теперь умеет принимать VirtualElement.
  • arrowProps принимает атрибуты HTMLDivElement, а также iconStyle и iconClassName.

@inomdzhon
Copy link
Contributor Author

inomdzhon commented Dec 5, 2023

Note

Для раздела ## Unstable -> Stable

RichTooltip

- <RichTooltip style={{maxWidth: 320}} content={
+ <Tooltip maxWidth={320} placement="bottom-start" enableInteractive text={
  <RichCell>
    Lorem
  </RichCell>
}>
  <Link style={{display: 'inline-block', margin: 20, userSelect: 'none'}}>Илья Гришин</Link>
- </RichTooltip>
+ </Tooltip>

@inomdzhon
Copy link
Contributor Author

Chip

  • Свойство removeAriaLabel переименовано в removeLabel
<Chip
  value="Чип"
  removable={true}
-  removeAriaLabel="Удалить"
+  removeLabel="Удалить"
>
  Чип
</Chip>



ChipsInput

  • Свойство inputAriaLabel переименовано в inputLabel
<ChipsInput
-  inputAriaLabel="Введите название цвета"
+  inputLabel="Введите название цвета"
  id="color"
  value={colors}
  after={
    <IconButton hoverMode="opacity" label="Очистить поле" onClick={onClick}>
      <Icon16Clear />
    </IconButton>
  }
/>



@inomdzhon
Copy link
Contributor Author

Pagination

  • Свойство prevButtonAriaLabel переименовано в prevButtonLabel
  • Свойство nextButtonAriaLabel переименовано в nextButtonLabel
  • Свойство getPageAriaLabel переименовано в getPageLabel и обновлено: теперь оно принимает только (isCurrent: boolean) и не нуждается в номере страницы. Возвращайте текст с учетом того, что номер страницы добавится автоматически через пробел в конце.
 <Pagination
-   prevButtonAriaLabel="На предыдущую"
+   prevButtonLabel="На предыдущую"
-   nextButtonAriaLabel="На следующую"
+   nextButtonLabel="На следующую"
-   getPageAriaLabel={(page, isCurrent) => { isCurrent ? `${page} страница` : `Го на ${page} страницу` }}
+   getPageLabel={(isCurrent) => { isCurrent ? "Стр." : "Го на страницу" }}



Calendar

  • Свойство prevMonthAriaLabel переименовано в prevMonthLabel
  • Свойство nextMonthAriaLabel переименовано в nextMonthLabel
  • Свойство changeDayAriaLabel переименовано в changeDayLabel
  • Свойство changeMonthAriaLabel переименовано в changeMonthLabel
  • Свойство changeYearAriaLabel переименовано в changeYearLabel
  • Свойство changeMinutesAriaLabel переименовано в changeMinutesLabel
  • Свойство changeHoursAriaLabel переименовано в changeHoursLabel



CalendarRange

  • Свойство prevMonthAriaLabel переименовано в prevMonthLabel
  • Свойство nextMonthAriaLabel переименовано в nextMonthLabel
  • Свойство changeDayAriaLabel переименовано в changeDayLabel
  • Свойство changeMonthAriaLabel переименовано в changeMonthLabel
  • Свойство changeYearAriaLabel переименовано в changeYearLabel



DateInput

  • Свойство prevMonthAriaLabel переименовано в prevMonthLabel
  • Свойство nextMonthAriaLabel переименовано в nextMonthLabel
  • Свойство changeMinutesAriaLabel переименовано в changeMinutesLabel
  • Свойство changeHoursAriaLabel переименовано в changeHoursLabel
  • Свойство changeDayAriaLabel переименовано в changeDayLabel
  • Свойство changeMonthAriaLabel переименовано в changeMonthLabel
  • Свойство changeYearAriaLabel переименовано в changeYearLabel
  • Свойство clearFieldAriaLabel переименовано в clearFieldLabel
  • Свойство showCalendarAriaLabel переименовано в showCalendarLabel



DateRangeInput

  • Свойство prevMonthAriaLabel переименовано в prevMonthLabel
  • Свойство nextMonthAriaLabel переименовано в nextMonthLabel
  • Свойство changeDayAriaLabel переименовано в changeDayLabel
  • Свойство changeMonthAriaLabel переименовано в changeMonthLabel
  • Свойство changeYearAriaLabel переименовано в changeYearLabel
  • Свойство changeStartDayAriaLabel переименовано в changeStartDayLabel
  • Свойство changeStartMonthAriaLabel переименовано в changeStartMonthLabel
  • Свойство changeStartYearAriaLabel переименовано в changeStartYearLabel
  • Свойство changeEndDayAriaLabel переименовано в changeEndDayLabel
  • Свойство changeEndMonthAriaLabel переименовано в changeEndMonthLabel
  • Свойство changeEndYearAriaLabel переименовано в changeEndYearLabel
  • Свойство clearFieldAriaLabel переименовано в clearFieldLabel
  • Свойство showCalendarAriaLabel переименовано в showCalendarLabel



Search

  • Свойство iconAriaLabel переименовано в iconLabel
  • Свойство clearAriaLabel переименовано в clearLabel



@SevereCloud
Copy link
Contributor

Tappable

Tappable избавился от свойств onEnter, onLeave, onStart, onEnd, onMove и stopPropagation. Используйте вместо них нативные свойства.

Улучшение доступности

Теперь если в кликабельный компонент не был передано свойство onClick или href, то у такого компонента будут отключены состояния наведения, активирования и ripple эффекты. Если вы использовали disable для отключения состояний, рекомендуем удалить это свойство.

 <SimpleCell
-  disable
 >
   Информационный текст
 </SimpleCell>

@inomdzhon
Copy link
Contributor Author

ChipsInput

<ChipsInput
-  value={[]}
+  defaultValue={[]}

-  value={[]}
+  value={[]}
+  onChange={[]}

-  inputValue=""
+  defaultInputValue=""
/>
  • Компонент теперь может быть контролируемым и неконтролируемым.
  • getOptionValue, getOptionLabel, getNewOptionData – все аргументы функции теперь обязательны.
  • renderChip – вторым аргументов приходит option.

Note

Для раздела ## Unstable -> Stable

ChipsSelect

<ChipsSelect
-  value={[]}
+  defaultValue={[]}

-  value={[]}
+  value={[]}
+  onChange={[]}

-  inputValue=""
+  defaultInputValue=""

-  popupDirection="bottom"
+  placement="bottom"

-  showSelected={true}
+  selectedBehavior="highlight"

-  showSelected={false}
+  selectedBehavior="hide"

-  creatableText="Lorem Ipsum"
+  creatable="Lorem Ipsum"
/>
  • Компонент теперь может быть контролируемым и неконтролируемым.
  • creatable – может быть всё ещё boolean, при этом теперь можно передать и текст, чтобы
    переопределить текст по умолчанию.
  • getOptionValue, getOptionLabel, getNewOptionData – все аргументы функции теперь обязательны.
  • renderChip – вторым аргументов приходит option.

@inomdzhon
Copy link
Contributor Author

Tooltip -> OnboardingTooltip

<Tooltip>
<OnboardingTooltip
- isShown
+ isShown

- alignX="bottom"
- alignY="left"
+ placement="bottom-start"

- offsetX={0}
+ offsetByCrossAxis={0}

- offsetY={0}
+ offsetByMainAxis={0}

- cornerOffset={0}
+ arrowOffset={0}

- cornerAbsoluteOffset={0}
+ arrowOffset={0}
+ isStaticArrowOffset
>
  <div>Target</div>
- </Tooltip>
+ </OnboardingTooltip>
  • Стал доступнее за счёт role="tooltip" и aria-describedby.

TextTooltip -> Tooltip

- <TextTooltip
+ <Tooltip
- autoUpdateOnTargetResize
- customMiddlewares
- renderContent
- getRef

- offsetSkidding={0}
+ offsetByCrossAxis={0}

- offsetDistance={0}
+ offsetByMainAxis={0}

- shownDelay={2}
+ hoverDelay={2}

- hideDelay={10}
+ hoverDelay={[0, 10]}

- shownDelay={5}
- hideDelay={10}
+ hoverDelay={[5 10]}

- forcePortal
+ usePortal

- portalRoot={someHTMLElement}
+ usePortal={someHTMLElement}
>
  <div>Target</div>
- </TextTooltip>
+ </Tooltip>
  • Компонент теперь может быть контролируемым и неконтролируемым.
  • Помимо hover, теперь реагирует и на focus.
  • Может закрываться по кнопке ESC.
  • Стал доступнее за счёт role="tooltip" и aria-describedby.

@inomdzhon
Copy link
Contributor Author

Note

Поправить заголовок Select.

Select -> AdaptiveSelectRender

@BlackySoul BlackySoul marked this pull request as ready for review December 8, 2023 08:47
@inomdzhon inomdzhon merged commit b52a56d into master Dec 8, 2023
29 checks passed
@inomdzhon inomdzhon deleted the blackysoul/update_migration_guide branch December 8, 2023 08:51
@vkcom-publisher
Copy link
Contributor

v6.0.0 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

6 participants