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По умолчанию: - |
autoUpdateOnAnimationFrame | booleanПытаться обновлять позицию всплывающего элемента каждый фрейм. По умолчанию: false |
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 |
disableShiftMiddleware | 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> | VirtualElementRef на якорный элемент. По умолчанию: - |
usePortal | boolean | HTMLElement | RefObject<HTMLElement>По умолчанию используется document.body. По умолчанию: true |
zIndex | string | numberПеребивает zIndex заданный по умолчанию. По умолчанию: - |