1.1.3 • Published 5 months ago
react-snappy-modal v1.1.3
React Snappy Modal
SnappyModal is a lightweight, flexible React modal library that provides a simple and intuitive way to manage modal dialogs in your React applications.
Website: https://react.snappy-modal.com/
Features
- 🚀 Promise-based API
- 🎯 Multiple modal layers support
- 🎨 Customizable positioning
- 🔒 Scroll lock management
- 🎭 Backdrop customization
- ⚡ TypeScript support
Installation
npm install react-snappy-modal
# or
yarn add react-snappy-modal
Basic Usage
- First, wrap your application with
SnappyModalProvider
:
import { SnappyModalProvider } from 'react-snappy-modal';
function App() {
return (
<SnappyModalProvider>
<YourApp />
</SnappyModalProvider>
);
}
- Show a modal using
SnappyModal.show()
:
import SnappyModal from 'react-snappy-modal';
function YourComponent() {
const handleClick = async () => {
const result = await SnappyModal.show(
<div>
<h2>Hello World!</h2>
<button onClick={() => SnappyModal.close('success')}>Close</button>
</div>
);
console.log(result); // 'success'
};
return <button onClick={handleClick}>Open Modal</button>;
}
API Reference
SnappyModal.show(component, options?)
Shows a modal and returns a Promise that resolves when the modal is closed.
interface SnappyModalOptions {
allowOutsideClick?: boolean; // Enable closing by clicking outside (default: true)
allowScroll?: boolean; // Allow background scrolling (default: false)
backdrop?: boolean | string; // Show backdrop or custom backdrop color (default: true)
position?: SnappyModalPosition; // Modal position (default: "center")
zIndex?: number; // Custom z-index
layer?: number; // Modal layer for stacking (default: 0)
}
type SnappyModalPosition =
| "top-left"
| "top-center"
| "top-right"
| "center-left"
| "center"
| "center-right"
| "bottom-left"
| "bottom-center"
| "bottom-right";
SnappyModal.close(value?, layer?)
Closes the modal and resolves the Promise with the provided value.
SnappyModal.close('success', 0); // Closes layer 0 modal with 'success' value
SnappyModal.throw(error?, layer?)
Closes the modal and rejects the Promise with the provided error.
SnappyModal.throw(new Error('Cancelled'), 0);
Examples
Custom Positioning
SnappyModal.show(<YourComponent />, {
position: 'top-right',
backdrop: 'rgba(0, 0, 0, 0.7)'
});
Multiple Layers
// Show first modal
const showNestedModal = async () => {
await SnappyModal.show(<FirstModal />, { layer: 0 });
// Show second modal on top
await SnappyModal.show(<SecondModal />, { layer: 1 });
};
Custom Backdrop
SnappyModal.show(<YourComponent />, {
backdrop: 'rgba(255, 0, 0, 0.5)' // Red semi-transparent backdrop
});
Examples
For detailed usage examples, please refer to the examples in the sample
directory.
1.1.1
9 months ago
1.1.0
9 months ago
1.1.3
5 months ago
1.1.2
9 months ago
1.0.0
12 months ago
0.1.0
12 months ago
0.0.10
1 year ago
0.0.11
1 year ago
0.0.12
1 year ago
0.0.14
1 year ago
0.0.12-test.0
1 year ago
0.0.9-test.2
1 year ago
0.0.9-test.3
1 year ago
0.0.15
1 year ago
0.0.9
1 year ago
0.0.8
1 year ago
0.0.5
1 year ago
0.0.4
1 year ago
0.0.7
1 year ago
0.0.6
1 year ago
0.0.3
1 year ago
0.0.2-fix.0
1 year ago
0.0.2
1 year ago
0.0.1
1 year ago