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.
The Drawer component is a panel that slides in from the edge of the screen. These drawers can be placed in around 4 different positions and those are top, bottom, left, and right. The Drawer can be of different sizes which include extra-small, small, medium, large, and full page.
Syntax:
// Import Statement import { Drawer } from "rsuite"; // App.Js File Function App() { return ( <Drawer size="full" open={open} onClose={handleClose} > ... </Drawer> ); }
Approach: Let us create a React project and install React Suite module. Then we will create a UI that will showcase React Suite Drawer FullPage.
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.
Step to Run Application: Run the application using the following command from the root directory of the project:
npm start
Example 1: We are creating a UI that shows React Suite Drawer Fullpage.
App.js
import React from 'react' import '../node_modules/rsuite/dist/rsuite.min.css' ; import { Drawer, Button } from 'rsuite' ; export default function App() { const [isDrawerOpen, setIsDrawerOpen] = React.useState( false ) // Function to close drawer const closeDrawer = () => { setIsDrawerOpen( false ); } return ( <div style={{ margin: 100 }}> <h1 style={{ color: 'green' }}>neveropen</h1> <h1>React Suite Drawer Fullpage</h1> <br></br> <Button color= "green" appearance= "primary" onClick={() => { setIsDrawerOpen( true ); }}> Click to open Drawer</Button> <Drawer size= "full" open={isDrawerOpen} onClose={() => closeDrawer()} > <Drawer.Header> <Drawer.Title> Sample Title for Drawer</Drawer.Title> </Drawer.Header> <Drawer.Body> Greetings from neveropen! </Drawer.Body> </Drawer> </div> ); } |
Output: Now open your browser and go to http://localhost:3000/, you will see the following output:
Example 2: We are creating a UI that shows React Suite Drawer Fullpage in all four directions.
App.js
import React from 'react' import '../node_modules/rsuite/dist/rsuite.min.css' ; import { Drawer, Button } from 'rsuite' ; export default function App() { const [isDrawerOpen, setIsDrawerOpen] = React.useState( false ) const [placement, setDirection] = React.useState( "left" ) // Function to close drawer const closeDrawer = () => { setIsDrawerOpen( false ); } // Function to toggle Drawer const toggleDrawer = (direction) => { setIsDrawerOpen( true ); setDirection(direction); } return ( <div style={{ margin: 100 }}> <h1 style={{ color: 'green' }}>neveropen</h1> <h1>React Suite Drawer ts:Placement Props</h1> <br></br> <Button color= "green" appearance= "primary" onClick={() => { toggleDrawer( "top" ) }}> Top</Button> <Button color= "yellow" appearance= "primary" onClick={() => { toggleDrawer( "bottom" ) }}> Bottom</Button> <Button color= "blue" appearance= "primary" onClick={() => { toggleDrawer( "left" ) }}> Left</Button> <Button color= "cyan" appearance= "primary" onClick={() => { toggleDrawer( "right" ) }}> Right</Button> <Drawer size= "full" placement={placement} open={isDrawerOpen} onClose={() => closeDrawer()} > <Drawer.Header> <Drawer.Title> Sample Title for Drawer</Drawer.Title> </Drawer.Header> <Drawer.Body> Greetings from neveropen! </Drawer.Body> </Drawer> </div> ); } |
Output: Now open your browser and go to http://localhost:3000/, you will see the following output:
Reference: https://rsuitejs.com/components/drawer/#size