Open In App

React Suite Popover Triggering events

Last Updated : 20 Jun, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

React suite is a library of React components, sensible UI design, and a friendly development experience. It is supported in all major browsers. It provides pre-built components of React which can be used easily in any web application.

In this article, we’ll learn about React suite popover placement. The popover is used to show the popup information that is triggered on any event over the parent window. For using popover, we use whisper which provides us trigger events, which are used to control the display of Popover in different events. These are given below:

Whisper Triggering Events:

  • click: This event is triggered when the element is clicked and closed when clicked again.
  • contextMenu: This event is triggered when you trigger contextMenu on the element.
  • focus: This event is triggered when the user clicks or taps on an element or selects it with the keyboard’s tab key.
  • hover: This event is triggered when the cursor (mouse pointer) is hovering over the element.
  • active: This event is triggered when the element is activated.
  • none: No trigger event, generally used when it needs to be triggered by a method.

Creating React Application And Installing Module:

Step 1: Create a React application using the given command:

npm create-react-app projectname

Step 2: After creating your project, move to it using the given command:

cd projectname

Step 3: Now Install the rsuite node package using the given command:

npm install rsuite

Project Structure: Now your project structure should look like the following:

 

Syntax:

// import statement
import { Button, Popover, Whisper } from "rsuite/";

// App.JS file
const speaker = (
    <Popover>
          ...
      </Popover>
)

function App() {
    <Whisper trigger="active" speaker="speaker">
        <Button>...<Button>
    </Whisper>
}

Example 1: Below example demonstrates all the Popover triggering events.

Javascript




import React from "react";
import { Button, ButtonToolbar, Popover, Whisper } from "rsuite/";
import "rsuite/dist/rsuite.min.css";
  
const popoverText = (
    <Popover title="GeeksforGeeks">
        <p>Hi! Geek. </p>
        <p>Hope you're doing great!</p>
    </Popover>
);
  
export default function App() {
    return (
        <center>
            <div style={{ padding: 20 }}>
                <h2>GeeksforGeeks</h2>
                <h4 style={{ color: "green" }}>
                    React Suite Popover Triggering Events
                </h4>
  
                <div style={{ marginTop: 20 }}>
                    <ButtonToolbar>
                        <Whisper
                            placement="bottom"
                            trigger="click"
                            controlId="control-id-click"
                            speaker={popoverText}
                        >
                            <Button color="primary">
                                Click event
                            </Button>
                        </Whisper>
                        <Whisper placement="bottom" 
                            trigger="contextMenu" 
                            speaker={popoverText}>
                            <Button color="primary">
                                ContextMenu event
                            </Button>
                        </Whisper>
                        <Whisper
                            placement="bottom"
                            trigger="focus"
                            controlId="control-id-focus"
                            speaker={popoverText}
                        >
                            <Button color="primary">
                                Focus event
                            </Button>
                        </Whisper>
                        <Whisper
                            placement="bottom"
                            trigger="active"
                            controlId="control-id-active"
                            speaker={popoverText}
                        >
                            <Button color="primary">
                                Active event
                            </Button>
                        </Whisper>
                        <Whisper
                            placement="bottom"
                            trigger="hover"
                            controlId="control-id-hover"
                            speaker={popoverText}
                        >
                            <Button color="primary">
                                Hover event
                            </Button>
                        </Whisper>
                        <Whisper
                            placement="bottom"
                            trigger="hover"
                            controlId="control-id-hover-enterable"
                            speaker={popoverText}
                            enterable
                        >
                            <Button color="primary">
                                Hover + Enter event
                            </Button>
                        </Whisper>
                    </ButtonToolbar>
                </div>
            </div>
        </center>
    );
}


Output:

 

Example 2: Below example demonstrates open and close whisper triggering methods used in a popover.

Javascript




import React, { useRef } from "react";
import { Button, ButtonToolbar, Popover, Whisper } from "rsuite/";
import "rsuite/dist/rsuite.min.css";
  
const popoverText = (
    <Popover>
        <h3>Find new DSA Courses</h3>
        <p>DSA with Java</p>
        <p>DSA with C++</p>
    </Popover>
)
  
export default function App() {
    const trigRef = useRef();
    const openRef = () => trigRef.current.open();
    const closeRef = () => trigRef.current.close();
  
    return (
        <center>
            <div style={{ padding: 20 }}>
                <h2>GeeksforGeeks</h2>
                <h4 style={{ color: "green" }}>
                    React Suite Popover Triggering Events
                </h4>
  
                <div style={{ marginTop: 10 }}>
                    <Whisper
                        placement="bottom"
                        speaker={popoverText}
                        ref={trigRef}
                        trigger="none"
                    >
                        <ButtonToolbar>
                            <Button onClick={openRef} 
                                appearance="primary" 
                                color="green">
                                    Open Method
                            </Button>
                              
                            <Button onClick={closeRef}>
                                Close Method
                            </Button>
                        </ButtonToolbar>
                    </Whisper>
                </div>
            </div>
        </center>
    );
}


Output:

 

Reference: https://rsuitejs.com/components/popover/#triggering-events



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads