@camlin/react-confirm-modal
v2.0.0
Published
The `react-modal-confirmation` is a reusable confirmation modal component built with React and Ant Design. It allows you to display a customizable confirmation dialog with multiple buttons and callback actions.
Downloads
137
Readme
react-modal-confirmation component
The react-modal-confirmation
is a reusable confirmation modal component built with React and Ant Design. It allows you to display a customizable confirmation dialog with multiple buttons and callback actions.
Installation
To use the react-modal-confirmation
, first install the required dependencies:
npm install antd react
Install this package:
npm install @camlin/react-modal-confirmation
Usage
Here’s how you can use the react-modal-confirmation
in your React project:
import React, { useState } from 'react';
import ConfirmModal from './components/ConfirmModal';
const App = () => {
const [modalVisible, setModalVisible] = useState(false);
const handleConfirm = () => {
setModalVisible(false);
console.log("Confirmed!");
};
return (
<div>
<button onClick={() => setModalVisible(true)}>Show Modal</button>
<ConfirmModal
visible={modalVisible}
title="Confirmation Required"
content="Are you sure you want to proceed?"
footerButtons={[
{ text: 'OK', type: 'primary', onClick: handleConfirm },
{ text: 'Cancel', type: 'default', onClick: () => setModalVisible(false) },
]}
onConfirm={handleConfirm}
/>
</div>
);
};
export default App;
Props
The react-modal-confirmation
component accepts the following props:
| Prop | Type | Required | Default | Description |
| ------------- | ------------------------------------- | -------- | --------- | --------------------------------------------------------------------------- |
| visible
| boolean
| Yes | false
| Controls the visibility of the modal. |
| title
| string
| No | ""
| The title of the modal dialog. |
| content
| string
| No | ""
| The content of the modal body. |
| footerButtons
| ButtonProps[]
| No | []
| Array of button configurations to display in the modal footer. |
| onConfirm
| () => void
| Yes | null
| Callback function triggered when the modal is confirmed or closed. |
ButtonProps
The footerButtons
prop accepts an array of objects with the following properties:
| Prop | Type | Required | Default | Description |
| -------- | ---------------------------------------------------- | -------- | --------- | -------------------------------------------------------------------- |
| text
| string
| Yes | ""
| The label of the button. |
| type
| 'primary' \| 'default' \| 'dashed' \| 'link' \| 'text' \| undefined
| No | 'default'
| The Ant Design button type. |
| onClick
| () => void
| Yes | null
| Function to be executed when the button is clicked. |
Example
Here’s an example of passing different button configurations to the footerButtons
prop:
<ConfirmModal
visible={modalVisible}
title="Delete Confirmation"
content="Are you sure you want to delete this item?"
footerButtons={[
{ text: 'Yes', type: 'primary', onClick: handleConfirm },
{ text: 'No', type: 'default', onClick: () => setModalVisible(false) },
{ text: 'More Info', type: 'link', onClick: () => alert('More information') },
]}
onConfirm={handleConfirm}
/>
In this example:
- The modal displays three buttons: "Yes", "No", and "More Info".
- Each button has its own action, such as closing the modal or triggering a confirmation.
Styling
You can customize the styles of the modal and buttons by overriding the default Ant Design styles. Make sure to include your own SCSS or CSS file if you wish to customize the look and feel.
// Example of overriding Ant Design styles in your SCSS file
.ant-modal {
background-color: #f5f5f5;
}
.ant-btn-primary {
background-color: #ff4d4f;
}
License
This project is licensed under the MIT License.