Popover
When the mouse clicks/moves in, the pop-up pop-up box is used to display more content.
<Popover>Pop-up box.<Whisper>Monitor triggers, wrap the outside of the listener object, and notify theTooltipwhen the event is triggered.
Import
import { Popover, Whisper } from 'rsuite';
// or
import Popover from 'rsuite/Popover';
import Whisper from 'rsuite/Whisper';Basic
Default
Placement
Triggering events
Whisper provides a trigger props, which is used to control the display of Popover in different business scenarios. Props values include:
click: It will be triggered when the element is clicked, and closed when clicked again.contextMenu: It will be triggered when you trigger contextMenu on the element.focus: It is generally triggered when the user clicks or taps on an element or selects it with the keyboard'stabkey.hover: Will be triggered when the cursor (mouse pointer) is hovering over the element.active: It is triggered when the element is activated.none: No trigger event, generally used when it needs to be triggered by a method.
Note: Safari ignoring tabindex
Container and prevent overflow
Positioned popover components in scrolling container
Used with Dropdown
Hide arrow indicator
You can hide arrow indicator by setting arrow props to false;
Follow cursor
You can enable the Popover to follow the cursor by setting followCursor={true}.
Props
<Popover>
| Property | Type (Default) |
Description |
|---|---|---|
| arrow | boolean (true) |
Whether show the arrow indicator |
| children * | ReactNode | The content of the component. |
| classPrefix | string ('popover') |
The prefix of the component CSS class. |
| title | ReactNode | The title of the component. |
| visible | boolean | The component is visible by default. |
<Whisper>
| Property | Type (Default) |
Description |
|---|---|---|
| container | HTMLElement | (() => HTMLElement) | Sets the rendering container |
| controlId | string | Set the id on <Overlay> and aria-describedby on <Whisper> |
| defaultOpen | boolean | Whether to open the overlay by default |
| delay | number | Delay time (ms) Time |
| delayClose | number | Delay close time (ms) Time |
| delayOpen | number | Delay open time (ms) Time |
| enterable | boolean | Whether mouse is allowed to enter the floating layer of popover,when the value of trigger is set tohover |
| followCursor | boolean | Whether enable speaker to follow the cursor |
| full | boolean | The content full the container |
| onBlur | () => void | Lose Focus callback function |
| onClick | () => void | Click on the callback function |
| onClose | () => void | Callback fired when close component |
| onEnter | () => void | Callback fired before the overlay transitions in |
| onEntered | () => void | Callback fired after the overlay finishes transitioning in |
| onEntering | () => void | Callback fired as the overlay begins to transition in |
| onExit | () => void | Callback fired right before the overlay transitions out |
| onExited | () => void | Callback fired after the overlay finishes transitioning out |
| onExiting | () => void | Callback fired as the overlay begins to transition out |
| onFocus | () => void | Callback function to get focus |
| onOpen | () => void | Callback fired when open component |
| open | boolean | Whether to open the overlay |
| placement | Placement ('right') |
Dispaly placement |
| preventOverflow | boolean | Prevent floating element overflow |
| speaker * | Tooltip | Popover | ReactElement | Displayed component |
| trigger | Trigger (['hover','focus']) |
Triggering events |
Whisper methods
Whisper methods are available via ref on Whisper component.
const whisperRef = useRef();
<Whisper ref={whisperRef} {...}>
...
</Whisper>Available methods include
- open
Open a overlay.
open: (delay?: number) => void- close
Close a overlay.
close: (delay?: number) => void- updatePosition
Update overlay position
updatePosition: () => void
ts:Trigger
type Trigger =
| Array<'click' | 'contextMenu' | 'hover' | 'focus' | 'active'>
| 'click'
| 'contextMenu'
| 'hover'
| 'focus'
| 'active'
| 'none';
ts:Placement
type Placement =
| 'top'
| 'bottom'
| 'right'
| 'left'
| 'bottomStart'
| 'bottomEnd'
| 'topStart'
| 'topEnd'
| 'leftStart'
| 'leftEnd'
| 'rightStart'
| 'rightEnd'
| 'auto'
| 'autoVerticalStart'
| 'autoVerticalEnd'
| 'autoHorizontalStart'
| 'autoHorizontalEnd';