A simple to use and customizable react dialog implementation.
# NPM
$ npm install --save @denkschuldt/react-dialog
Version | Compatibility |
---|---|
1.x | React ˆ16.8+ |
import ReactDOM from 'react-dom';
import React, { useState } from 'react';
import Dialog from '@denkschuldt/react-dialog';
const App = () => {
const [ isVisible, setIsVisible ] = useState(false);
return (
<div>
<button
type='button'
onClick={() => setIsVisible(true)}>
Show dialog
</button>
{
isVisible &&
<Dialog
title='Dialog'
onCancelClick={() => {}}
onConfirmClick={() => {}}
onCloseClick={() => setIsVisible(false)}>
<span>
This is the body
</span>
</Dialog>
}
</div>
);
}
ReactDOM.render(<App/>, document.getElementById('root'));
See more examples at @DenkSchuldt/react-dialog
Name | Type | Required | Description | Default |
---|---|---|---|---|
width | Number | Dialog width | ||
height | Number | Dialog height | ||
title | String | Dialog title | ||
draggable | Boolean | Allows dialog drag | true | |
className | String | Component class to override styles | ||
slideIn | String | Initial animation: top, bottom, left, right | ||
cancelableOutside | Boolean | Whether the dialogs closes by clicking outside or not | false | |
closeOnEscPress | Boolean | Whether the dialogs closes by pressing escape | false | |
hideCloseButton | Boolean | Hides the close button | false | |
onCloseClick | function | ✅ | Close button click function | |
cancelText | String | Negative button text | 'CANCEL' | |
onCancelClick | function | Negative button click function | ||
cancelDisabled | Boolean | Negative button disabled prop | false | |
confirmText | String | Positive button text | 'OK' | |
onConfirmClick | function | Positive button click function | ||
confirmDisabled | Boolean | Positive button disabled prop | false |
Use the className prop to override dialogs classes:
.your-css-class {
.dnk-dialog-content {
/* The dialog card */
.dnk-dialog-close {
/* The close button */
}
.dnk-dialog-body {
.dnk-dialog-body-buttons {
/* The buttons div container */
button {
/* cancel button */
&.dnk-btn-primary {
/* confirm button */
}
}
}
}
}
}
- Fork the project
- Make changes and include tests
- Update README, CHANGELOG with detailed info
- Send me a PR
MIT