AdaptivityProvider

Переопределяет базовую адаптивность компонента – глобально или локально. Принимает все доступные параметры адаптивности.

AdaptivityProvider всегда перебивает свой вышестоящий экземпляр – это значит, что свойства не наследуются из контекста.

Говоря о свойствах, по умолчанию они определяются как undefined. Автоматически определение есть только у свойства density при условии, что заданы viewWidth и viewHeight или viewWidth и hasPointer или только viewHeight.

Оборачиваем в AdaptivityProvider всё приложение.

index.js
import { ConfigProvider, AdaptivityProvider, AppRoot, ViewWidth } from '@vkontakte/vkui';
 
/**
 * Зашили верстку и поведение под настольные экраны.
 */
export function AlwaysDesktopWithMouse() {
  return (
    <ConfigProvider>
      <AdaptivityProvider viewWidth={ViewWidth.DESKTOP} hasPointer>
        <AppRoot>{/* приложение */}</AppRoot>
      </AdaptivityProvider>
    </ConfigProvider>
  );
}

В необходимом месте отдельно оборачиваем компонент или ряд компонентов в AdaptivityProvider.

import { AdaptivityProvider, Button } from '@vkontakte/vkui';
 
/**
 * Зашили высоту кнопки в "regular" размере.
 */
export function ReallyBigButton() {
  return (
    <AdaptivityProvider density="regular">
      <Button size="l">Я действительно большая кнопка</Button>
    </AdaptivityProvider>
  );
}

Хук возвращает из контекста свойства, переданные в AdaptivityProvider.

example.jsx
import { AdaptivityProvider, useAdaptivity } from '@vkontakte/vkui';
 
function AdaptivityPropsByContext() {
  const {
    density = 'undefined',
    viewWidth = 'undefined',
    viewHeight = 'undefined',
    hasPointer = 'undefined',
  } = useAdaptivity();
 
  return (
    <pre>
      density: {density}, viewWidth: {viewWidth}, viewHeight: {viewHeight}, hasPointer:{' '}
      {hasPointer}
    </pre>
  );
}
 
// На странице увидим такой вывод
//
// density: compact, viewWidth: undefined, viewHeight: undefined, hasPointer: undefined
export function App() {
  return (
    <AdaptivityProvider density="compact">
      <AdaptivityPropsByContext />
    </AdaptivityProvider>
  );
}
СвойствоОписание
densityDensityTypeValues

Тип размера экрана.

По умолчанию: -
hasHoverboolean

Deprecated: Since 7.3.0. Будет удалено в VKUI v9 (см. Https://github.com/VKCOM/VKUI/pull/8490).

По умолчанию: -
hasPointerboolean

Флаг наличия указателя (например, мыши) на устройстве.

По умолчанию: -
sizeXSizeTypeValues

Deprecated: Since 8.0.0. Будет удалено в VKUI v10 – используйте sizeX="compact"viewWidth={ViewWidth.MOBILE} или sizeX="compact"viewWidth={ViewWidth.SMALL_TABLET} (см. Https://github.com/VKCOM/VKUI/issues/9015).

По умолчанию: -
sizeYSizeTypeValues

Deprecated: Since 8.0.0. Будет удалено в VKUI v10 – используйте density (см. Https://github.com/VKCOM/VKUI/issues/9015).

По умолчанию: -
viewHeightnumber

Тип высоты экрана для адаптивного отображения.

По умолчанию: -
viewWidthViewWidthType

Тип ширины экрана для адаптивного отображения.

По умолчанию: -

Не принимает свойств