New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

react-redux-easy-modal

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-redux-easy-modal

Basic react-redux modal implementation (reducer, store, components and actions)

latest
Source
npmnpm
Version
1.3.0
Version published
Maintainers
1
Created
Source

react-redux-easy-modal

Basic react-redux modal implementation (reducer, store, components and actions)

For building you can use Webpack or something like it.

Install

npm install react-redux-easy-modal

Usage

In your main reducer:

import { combineReducers } from 'redux';
import { reducer as modal } from 'react-redux-easy-modal';

const rootReducer = combineReducers({
    ...
    modal,
    ...
});

export default rootReducer;

react-redux-easy-modal need to be saved in redux store with modal key.

In your container:

import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';

import { Modal, showModal, hideModal } from 'react-redux-easy-modal';

const App = () => (
    <div>
        <div onClick={showModal}>Show modal</div>

        My application.

        <Modal>
            <div style={{color: '#fff'}}>
                Some content.
                <div onClick={hideModal}>Hide modal</div>
            </div>
        </Modal>
    </div>
);

ReactDOM.render(
    <Provider store={store}>
        <App />
    </Provider>,

    document.getElementById('app')
);

Inside <Modal> you can use any html.

When you clicked on 'Show modal' you will see something like this:

Example

API

reducer

Return modal reducer for redux combineReducers.

showModal

Function to show modal.

Will show all modals which can be displayed. It means all <Modal>, <ModalContainer> or <MobileModals.*> which attached to current visible component.

import { Modal, showModal } from 'react-redux-easy-modal';

<div>
    <Modal>My modal</Modal>
    ...

    <div onClick={showModal}></div>
</div>

But you can show only specific modal by id:

<button onClick={() => showModal('main-modal')}>showModalById</button>

<ModalContainer id="main-modal">
    <div>
        Some content.
        <div onClick={() => hideModal('main-modal')}>Hide modal</div>
    </div>
</ModalContainer>

<ModalContainer>
    Clear html.
    <div onClick={hideModal}>Hide all modals</div>
</ModalContainer>

After button's click will show only <ModalContainer id="main-modal">, <ModalContainer>Clear html. will not be displayed.

hideModal

Function to hide modal.

Will hide all modals which can be displayed. It means all <Modal>, <ModalContainer> or <MobileModals.*> which attached to current visible component.

import { Modal, showModal, hideModal } from 'react-redux-easy-modal';

<div>
    <Modal>
        <span onClick={hideModal}>Hide this modal</span>
    </Modal>
    ...

    <div onClick={showModal}></div>
</div>

But you can hide only specific modal by id:

<button onClick={() => showModal('main-modal')}>showModalById</button>

<ModalContainer id="main-modal">
    <div>
        Some content.
        <div onClick={() => hideModal('main-modal')}>Hide modal</div>
    </div>
</ModalContainer>

After button's click will hide only <ModalContainer id="main-modal">.

ModalContainer

Return a react component with clear html (without any styles and classes). Return:

<div>{childen}</div>

Example:

import { ModalContainer } from 'react-redux-easy-modal';

<ModalContainer>
    Some clear html content without any styles.
</ModalContainer>

Modal

Return a react component with classes and styles. Return:

<div className="react-redux-easy-modal">
    <div className="react-redux-easy-modal-content">
        {children}
    </div>
</div>.

Example:

import { Modal } from 'react-redux-easy-modal';

<Modal>
    Html with classes and styles.
</Modal>

MobileModals

react-redux-easy-modal also have some modals for mobile.

Depending on the device, different modals will be displayed. Supported Android and iOS.

You don't need to set any config. React-redux-easy-modal will get the user agent and load css for current device.

Confirm

Android

Example

iOS

Example

Example:

import { MobileModals } from 'react-redux-easy-modal';

<MobileModals.Confirm 
    title="Confirm" 
    callback={() => alert('OK')} 
    cancelCallback={() => alert('Cancel')} 
    okText="OK" 
    cancelText="Cancel">
        Delete?
</MobileModals.Confirm>

Default values for <MobileModals.Confirm> is:

title = 'Confirm'; 
cancelText = 'Cancel'; 
okText = 'OK';

Try it

Clone project and then call: npm i && npm run dev

Keywords

modal

FAQs

Package last updated on 13 Dec 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts