Popper
Низкоуровневый компонент для отрисовки выпадающего блока. Единственная его задача — корректно позиционироваться рядом с целевым элементом.
Виртуальный элемент
Помимо ссылки на DOM элемент, Popper
можем принимать координаты виртуального элемента.
Виртуальный элемент представляет из себя объект со свойством getBoundingClientRect()
.
Свойства и методы
Свойство | Описание |
---|---|
arrow | boolean Отображать ли стрелку, указывающую на якорный элемент. По умолчанию: - |
arrowHeight | number Высота стрелки. Складывается с По умолчанию: 8 |
ArrowIcon | ComponentType<SVGAttributes<SVGSVGElement>> Пользовательская SVG иконка. Требования:
По умолчанию: (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>
);
} |
arrowPadding | number Безопасная зона вокруг стрелки, чтобы та не выходила за края контента. По умолчанию: 10 |
arrowProps | FloatingArrowProps Позволяет набросить на стрелку пользовательские атрибуты. По умолчанию: - |
arrowRef | Element | MutableRefObject<Element | null> | null По умолчанию: - |
autoUpdateOnTargetResize | boolean Подписывается на изменение геометрии По умолчанию: 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 (необходимо мемоизировать). По умолчанию: - |
defaultShown | boolean Начальное состояние всплывающего элемента. По умолчанию: - |
disableFlipMiddleware | boolean Указанное значение По умолчанию: false |
flipMiddlewareFallbackAxisSideDirection | "start" | "none" | "end" Задаёт резервный вариант размещения по перпендикулярной оси. По умолчанию: - |
getRootRef | Ref<HTMLDivElement> По умолчанию: - |
hideWhenReferenceHidden | boolean Принудительно скрывает компонент если целевой элемент вышел за область видимости. По умолчанию: - |
hoverDelay | number | [number, number] Количество миллисекунд, после которых произойдёт показ/скрытие всплывающего элемента при наведении. По умолчанию: - |
offsetByCrossAxis | number Отступ по вспомогательной оси. По умолчанию: 0 |
offsetByMainAxis | number Отступ по главной оси. По умолчанию: 8 |
onPlacementChange | OnPlacementChange В зависимости от области видимости, позиция может смениться на более оптимальную, чтобы всплывающий элемент вместился в эту область видимости. По умолчанию: - |
onReferenceHiddenChange | ((hidden: boolean) => void) Событие скрытия / раскрытия компонента при использовании свойства По умолчанию: - |
onShownChange | OnShownChange Вызывается при каждом изменении видимости всплывающего элемента. По умолчанию: - |
placement | PlacementWithAuto По умолчанию компонент выберет наилучшее расположение сам, но приоритетное можно задать с помощью этого свойства. По умолчанию: bottom-start |
sameWidth | boolean Выставлять ширину равной target элементу. По умолчанию: - |
shown | boolean Если передан, то всплывающий элемент будет показано/скрыто в зависимости от значения свойства. По умолчанию: - |
strategy | Strategy Стратегия позиционирования всплывающего элемента.
По умолчанию: - |
targetRef | RefObject<HTMLElement | null> | VirtualElement Ref на якорный элемент. По умолчанию: - |
usePortal | boolean | HTMLElement | RefObject<HTMLElement> По умолчанию используется document.body. По умолчанию: true |
zIndex | string | number Перебивает zIndex заданный по умолчанию. По умолчанию: - |