Popper

Низкоуровневый компонент для отрисовки выпадающего блока. Единственная его задача — корректно позиционироваться рядом с целевым элементом.

Загружается...

Помимо ссылки на DOM элемент, Popper можем принимать координаты виртуального элемента. Виртуальный элемент представляет из себя объект со свойством getBoundingClientRect().

Загружается...
СвойствоОписание
arrowboolean

Отображать ли стрелку, указывающую на якорный элемент.

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

Высота стрелки. Складывается с mainAxis, чтобы стрелка не залезала на якорный элемент.

По умолчанию: 8
ArrowIconComponentType<SVGAttributes<SVGSVGElement>>

Пользовательская SVG иконка.

Требования:

  1. Иконка по умолчанию должна быть направлена вверх (a.k.a IconUp).
  2. Чтобы избежать проблемы с пространством между стрелкой и контентом на некоторых экранах, растяните кривую по высоте на 1px и увеличьте на этот размер height и viewBox SVG. (смотри https://github.com/VKCOM/VKUI/pull/4496 ↗).
  3. Передайте высоту иконки в параметр arrowHeight. В значении высоты можно исключить хак с 1px из п.2.
  4. Убедитесь, что компонент принимает все валидные для SVG параметры.
  5. Убедитесь, что SVG и её элементы наследует цвет через fill="currentColor".
По умолчанию: (props: React.SVGAttributes<SVGSVGElement>): React.ReactNode => { return ( <svg width={DEFAULT_ARROW_WIDTH} height={ARROW_HEIGHT_WITH_WHITE_SPACE} viewBox={`0 0 ${DEFAULT_ARROW_WIDTH} ${ARROW_HEIGHT_WITH_WHITE_SPACE}`} xmlns="http://www.w3.org/2000/svg" {...props} > <path d="M10 0c3 0 6 8 10 8v1H0V8c3.975 0 7-8 10-8Z" fill="currentColor" /> </svg> ); }
arrowPaddingnumber

Безопасная зона вокруг стрелки, чтобы та не выходила за края контента.

По умолчанию: 10
arrowPropsFloatingArrowProps

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

По умолчанию: -
arrowRefElement | MutableRefObject<Element | null> | null
По умолчанию: -
autoUpdateOnTargetResizeboolean

Подписывается на изменение геометрии targetRef, чтобы пересчитать свою позицию.

По умолчанию: false
customMiddlewares{ name: string; options?: any; fn: (state: { placement: Placement; platform: Platform; strategy: Strategy; x: number; y: number; initialPlacement: Placement; middlewareData: MiddlewareData; rects: ElementRects; elements: Elements; }) => Promisable<...>; }[]

Массив кастомных модификаторов для Popper (необходимо мемоизировать).

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

Начальное состояние всплывающего элемента.

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

Указанное значение placement форсируется, даже если для выпадающего элемента недостаточно места. Не оказывает влияния при placement значениях - 'auto' | 'auto-start' | 'auto-end'

По умолчанию: false
flipMiddlewareFallbackAxisSideDirection"start" | "none" | "end"

Задаёт резервный вариант размещения по перпендикулярной оси.

По умолчанию: -
getRootRefRef<HTMLDivElement>
По умолчанию: -
hideWhenReferenceHiddenboolean

Принудительно скрывает компонент если целевой элемент вышел за область видимости.

По умолчанию: -
hoverDelaynumber | [number, number]

Количество миллисекунд, после которых произойдёт показ/скрытие всплывающего элемента при наведении.

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

Отступ по вспомогательной оси.

По умолчанию: 0
offsetByMainAxisnumber

Отступ по главной оси.

По умолчанию: 8
onPlacementChangeOnPlacementChange

В зависимости от области видимости, позиция может смениться на более оптимальную, чтобы всплывающий элемент вместился в эту область видимости.

По умолчанию: -
onReferenceHiddenChange((hidden: boolean) => void)

Событие скрытия / раскрытия компонента при использовании свойства hideWhenReferenceHidden.

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

Вызывается при каждом изменении видимости всплывающего элемента.

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

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

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

Выставлять ширину равной target элементу.

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

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

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

Стратегия позиционирования всплывающего элемента.

  • "fixed" - позиционируется, используя position: fixed. Является значением по умолчанию
  • "absolute" - позиционируется, используя position: absolute, относительно ближайшего элемента с position: relative
По умолчанию: -
targetRefRefObject<HTMLElement | null> | VirtualElement

Ref на якорный элемент.

По умолчанию: -
usePortalboolean | HTMLElement | RefObject<HTMLElement>

По умолчанию используется document.body.

По умолчанию: true
zIndexstring | number

Перебивает zIndex заданный по умолчанию.

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