An open API service indexing awesome lists of open source software.

https://github.com/amodin/react-chained-modals

React component for display few chained modals / Single modal / Prompts / Alerts / Dialogs etc.
https://github.com/amodin/react-chained-modals

alerts animation chained chained-modals classname dialogs javascript modals popup popup-window prompts react

Last synced: about 2 months ago
JSON representation

React component for display few chained modals / Single modal / Prompts / Alerts / Dialogs etc.

Awesome Lists containing this project

README

          

# React chained modals [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=React%20chained%20modals%20&url=https://github.com/AModin/react-chained-modals&hashtags=react,modal,animate.css,portals)
![React version](https://img.shields.io/badge/react-v16.2.0-%2361dafb.svg)

Allow you to add few chained modals or just single popup in your react app. Easy to use and customizing. [Check the demo page](https://amodin.github.io/react-chained-modals-demo/)

![screencast-amodin github io-2018 12 09-21-00-37](https://user-images.githubusercontent.com/15379788/49700916-308eed80-fbf6-11e8-8139-5465910de808.gif)

## Getting Started
### Installation

Get the package from npm

```
npm i react-chained-modals
```
### Usage
Import:

```javascript
import ChainedModal from "react-chained-modals";
import "react-chained-modals/src/modal.css"
import "animate.css"
```

then place:

```html

```
### Methods and options

| Name | Type | Description | Default|
| ------------- |:-------------:| ----------| ------- |
| animationNext | string | Transition animation on `showNext` method call. View full list here [Animate.css](https://daneden.github.io/animate.css/ ). This method will call also on popup first view.| none
| animationPrev | string | Transition animation on `showPrev` method call. View full list here [Animate.css](https://daneden.github.io/animate.css/ )| none
| visible | bool | Is modals visible. Options: true, false | false
| onRequestClose | function | Method that should set `visible` to false
| closeOnBackground | bool | Should popup close on click at background. Options: true, false | false
| animationSpeed | string | Define it if you want to change the animation speed. Options: "slow", "slower", "fast", "faster" | none |
| elements | array | Each item in the array should have the `component` that will show and optional parameter `props` which put all 'props' you want to use in this component | none

### Methods and options for each modal

In each component, that you added in `elements` you can get next next properties and methods from props:

| Name | Type | Description |
| ------------- |:-------------:| --------- |
| closeChainedModal | function | The `onRequestClose` function will be called
| totalModals | number | Number of modals, length of array
| showNext | function | Show next modal function
| showPrev | function | Show prev modal function
| currentModal | number | Current modal, index in array

### Example of Modal1 component:

```html
const Modal1 = props => {
return (


{props.title} {props.currentModal}
{props.totalModals}


Go prev
Go next

props.closeChainedModal()}>close modal

);
};
```

### Customizing:

Just replace your styles with styles from the module

## Built With

* [Animate.css](https://daneden.github.io/animate.css/ ) - Animations for transition between modals
* [React portals](https://reactjs.org/docs/portals.html) - Used for display modal
* [Classnames](https://github.com/JedWatson/classnames) - For combining few classNames