Open In App

React Suite Modal Backdrop

Improve
Improve
Like Article
Like
Save
Share
Report

React Suite is a popular front-end library with a set of React components that are designed for the middle platform and back-end products. Modal component allows the user to provide a solid foundation for creating dialogs, lightboxes, popovers, etc. The modal can be designed differently through backdrop property.

Modal Backdrop:

  • static: It will display a black background and the modal will not close on outside click.
  • true:  It will display a black background and the modal will close on outside click.
  • false: It will not display a black background and the modal will not close on outside click.

Syntax:

// Import Statement
import { Modal } from "rsuite";

// App.Js File
Function App() {
    return (
        <Modal backdrop="true || false || static"
             open={open}  onClose={handleClose} >
            ...
        </Modal>
    );
}

Approach: Let us create a React project and install React Suite module. Then we will create a UI that will showcase React Suite Modal Backdrop.

Creating React Project:

Step 1: To create a react app, you need to install react modules through npx command. “npx” is used instead of “npm” because you will be needing this command in your app’s lifecycle only once.

npx create-react-app project_name

Step 2: After creating your react project, move into the folder to perform different operations.

cd project_name

Step 3: After creating the ReactJS application, Install the required module using the following command:

npm install rsuite

Project Structure: After running the commands mentioned in the above steps, if you open the project in an editor you can see a similar project structure as shown below. The new component user makes or the code changes, we will be performing will be done in the source folder. 

Project Structure

Example 1: We are creating a UI that shows React Suite Modal Backdrop – Static.

App.js




import React from 'react';
import '../node_modules/rsuite/dist/rsuite.min.css';
import { Modal, Button } from 'rsuite';
import { useState } from "react";
  
export default function App() {
  
    const [open, setOpen] = useState(false);
    const handleOpen = () => setOpen(true);
    const handleClose = () => setOpen(false);
  
    return (
        <div style={{ margin: 50, textAlign: "center" }}>
            <h3 style={{ color: 'green' }}>GeeksforGeeks</h3>
            <h3>React Suite Modal Backdrop</h3> <br /><br />
            <Button color="green" appearance="primary" 
                onClick={handleOpen}>
                Click here !
            </Button>
            <Modal
                open={open}
                onClose={handleClose}
                backdrop="static"
            >
                <Modal.Header>
                    GeeksforGeeks
                </Modal.Header>
                <Modal.Body>
                    <p>
                        Hi ! Geek <br /> This is a 
                        <b>static</b> backdrop modal. 
                    </p>
                </Modal.Body>
                <Modal.Footer>
                    <Button onClick={handleClose} 
                        appearance="primary">
                        Ok
                    </Button>
                    <Button onClick={handleClose} 
                        appearance="subtle">
                        Cancel
                    </Button>
                </Modal.Footer>
            </Modal>
        </div>
    );
}


Step to Run Application: Run the application using the following command from the root directory of the project:

npm start

Output: Now open your browser and go to http://localhost:3000/, you will see the following output:

Static Backdrop

Example 2: We are creating a UI that shows React Suite Modal Backdrop – True and False.

App.js




import React from 'react';
import '../node_modules/rsuite/dist/rsuite.min.css';
import { Modal, Button } from 'rsuite';
import { useState } from "react";
  
export default function App() {
  
    const [open, setOpen] = useState(false);
    const [backdrop, setBackdrop] = useState(false);
    const handleOpen = () => { setOpen(true); setBackdrop(true); }
    const handleClose = () => setOpen(false);
    const handleOpen2 = () => { setOpen(true); setBackdrop(false); }
  
    return (
        <div style={{ margin: 50, textAlign: "center" }}>
            <h3 style={{ color: 'green' }}>GeeksforGeeks</h3>
            <h3>React Suite Modal Backdrop</h3> <br /><br />
            <Button color="green" appearance="primary"
                onClick={handleOpen}>
                True Backdrop
            </Button>
            <br /><br />
            <Button onClick={handleOpen2}>False Backdrop</Button>
            <Modal
                open={open}
                onClose={handleClose}
                backdrop={backdrop}
            >
                <Modal.Header>
                    GeeksforGeeks
                </Modal.Header>
                <Modal.Body>
                    <p>
                        Hi ! Geek <br /> This is a 
                        <b>{backdrop.toString()}</b> 
                        backdrop modal. 
                    </p>
                </Modal.Body>
                <Modal.Footer>
                    <Button onClick={handleClose} 
                        appearance="primary">
                        Ok
                    </Button>
                    <Button onClick={handleClose} 
                        appearance="subtle">
                        Cancel
                    </Button>
                </Modal.Footer>
            </Modal>
        </div>
    );
}


Output: Now open your browser and go to http://localhost:3000/, you will see the following output:

 True and False Backdrop

Reference: https://rsuitejs.com/components/modal/#backdrop



Last Updated : 14 Jul, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads