![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
@snack-uikit/popover-private
Advanced tools
## Installation `npm i @snack-uikit/popover-private`
npm i @snack-uikit/popover-private
import { PopoverPrivate } from "@snack-uikit/popover-private";
function App() {
return (
<PopoverPrivate
placement={PopoverPrivate.placements.Top}
popoverContent='Не нажимать, опасно!'
trigger={PopoverPrivate.triggers.Click}
>
<button>Button with popover</button>
</PopoverPrivate>
);
}
name | type | default value | description |
---|---|---|---|
trigger* | enum Trigger: "click" , "hover" , "focusVisible" , "focus" , "hoverAndFocusVisible" , "hoverAndFocus" , "clickAndFocusVisible" | - | Условие отображения поповера: - Click - открывать по клику - Hover - открывать по ховеру - FocusVisible - открывать по focus-visible - Focus - открывать по фокусу - HoverAndFocusVisible - открывать по ховеру и focus-visible - HoverAndFocus - открывать по ховеру и фокусу - ClickAndFocusVisible - открывать по клику и focus-visible |
popoverContent* | ReactNode | ReactNode[] | - | Контент поповера |
children* | ReactNode | ChildrenFunction | - | Триггер поповера (подробнее читайте ниже) |
placement* | enum Placement: "left" , "left-start" , "left-end" , "right" , "right-start" , "right-end" , "top" , "top-start" , "top-end" , "bottom" , "bottom-start" , "bottom-end" | Placement.Top | Положение поповера относительно своего триггера (children). |
open | boolean | - | Управляет состоянием показан/не показан. |
onOpenChange | (isOpen: boolean) => void | - | Колбек отображения компонента. Срабатывает при изменении состояния open. |
outsideClick | boolean | OutsideClickHandler | - | Закрывать ли при клике вне поповера |
className | string | - | CSS-класс |
triggerClassName | string | - | CSS-класс триггера |
hasArrow | boolean | - | Параметр наличия стрелки у поповера. В размеры стрелки встроен отступ. Дополнительный отступ может быть задан параметром offset . У элемента стрелки нет цвета, необходимо задавать его через параметр arrowClassName . |
arrowContainerClassName | string | - | CSS-класс контейнера стрелки поповера |
arrowElementClassName | string | - | CSS-класс стрелки поповера |
offset | number | 0 | Отступ поповера от его триггер-элемента (в пикселях). |
hoverDelayOpen | number | - | Задержка открытия по ховеру |
hoverDelayClose | number | - | Задержка закрытия по ховеру |
triggerRef | ForwardedRef<ReferenceType | HTMLElement> | - | Ref ссылка на триггер |
widthStrategy | enum PopoverWidthStrategy: "auto" , "GreatThanOrEqual" , "Equal" | PopoverWidthStrategy.Auto | Стратегия управления шириной контейнера поповера - Auto - соответствует ширине контента, - Gte - Great Than or Equal, равен ширине таргета или больше ее, если контент в поповере шире, - Eq - Equal, строго равен ширине таргета. |
heightStrategy | enum PopoverHeightStrategy: "auto" , "LessThanOrEqual" , "Equal" | PopoverHeightStrategy.Auto | Стратегия управления высотой контейнера поповера - Auto - соответствует высоте контента, - Lte - Less Than or Equal, равен высоте таргета или меньше ее, если контент в поповере меньше, - Eq - Equal, строго равен высоте таргета. |
closeOnEscapeKey | boolean | true | Закрывать ли по нажатию на кнопку Esc |
triggerClickByKeys | boolean | true | Вызывается ли попоповер по нажатию клавиш Enter/Space (при trigger = Click ) |
fallbackPlacements | Placement[] | - | Цепочка расположений которая будет применяться к поповеру от первого к последнему если при текущем он не влезает. |
children: ReactNode | ChildrenFunction
Референс, относительно которого рисуется поповер. Возможно несколько вариантов:
в children
передан компонент, который принимает в себя ref
. В таком случае пропсы этого компонента будут дополнены необходимыми для работы триггеров отображения: useHoverTrigger
, useClickTrigger
, useFocusTrigger
.
Осторожно,
ref
будет перезаписан. Если вы хотите получить ref на children поповера, можете передать ref в параметр triggerRef. Тогда поповер установит туда значение:
<PopoverPrivate
popoverContent={<div className={style.content}>some tip here</div>}
useHoverTrigger
triggerRef={(button) => { /* button HTMLElement из children */ }}
>
<button>some button</button>
</PopoverPrivate>
в children
передан компонент, который НЕ принимает в себя ref
. В таком случае компонент будет обернут в span
, который и послужит рефом для поповера.
в children
передана функция. Эта функция будет вызвана на каждый рендер, она должна возвращать ReactNode
. В параметры принимает ref, который нужно установить в целевой компонент и функцию getReferenceProps
, возвращающую необходимые для ref параметры.
Пример:
<PopoverPrivate
popoverContent={<div className={style.content}>some tip here</div>}
useHoverTrigger
>
{({ getReferenceProps, ref }) => (
<label>
Set the value
<input ref={ref} {...getReferenceProps({ onClick: onClickInputHandler })} />
</label>
)}
</PopoverPrivate>
в children
передан примитив string, number или React.Fragment. Children будет обернут в span
.
FAQs
Unknown package
We found that @snack-uikit/popover-private demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.