0.0.3 • Published 8 years ago

react-alerts-overlay-component v0.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
8 years ago

React Alerts Overlay Component

This module contains a reducer, actions, and components for presenting alerts.

Installation

Available as an npm package -- simply run npm install react-alerts-overlay-component.

Usage

Set up your reducer:

/* reducer.jsx */
import {combineReducers} from 'redux';
import {alertsReducer} from 'react-alerts-overlay-component';

export default combineReducers({
  alerts: alertsReducer
});

Now render AlertsOverlayComponent as follows:

/* Main.jsx */
import React = from 'react';
import {connect} from 'react-redux';
import {
  addAlert,
  removeAlert,
  AlertsOverlayComponent
} = from 'react-alerts-overlay-component';


// This is an example of implementing an alert yourself.
// This exact implementation is available with:
// import {Alert} = from 'react-alert-overlay-component';
var Alert = connect()(React.createClass({
  removeAlert: function() {
    var {dispatch, alert} = this.props;
    dispatch(removeAlert(alert.id));
  },
  render: function() {
    var {alert} = this.props;
    return (
      <div className={alert.style} key={alert.id} onClick={this.removeAlert}>
        <div className="flex">
          <div>
            {alert.text}
          </div>
          <div className="settings-action">
            <i className="fa fa-close"></i>
          </div>
        </div>
      </div>
    );
  }
}));

export var Main = React.createClass({
  componentDidMount: function() {
    var {dispatch} = this.props;
    dispatch(addAlert("Test alert!", "success"));
  },
  render: function() {
    var {alerts} = this.props;
    return (
      <div>
        <AlertsOverlayComponent alerts={alerts}>
          <Alert />
        </AlertsOverlayComponent>
      </div>
    );
  }
});

var mapAlertsToProps = (state) => {
  return {
    alerts: state.alerts
  }
}

module.exports = connect(mapAlertsToProps)(Main);

Remember

You must pass alerts (from state) to AlertsOverlayComponent as a prop: <AlertsOverlayComponent alerts={alerts}>.

You must pass a child Alert object to AlertsOverlayComponent:

<AlertsOverlayComponent alerts={alerts} style={{padding: '1rem'}}>
  <Alert/>
</AlertsOverlayComponent alerts={alerts}>

You can pass styles to AlertsOverlayComponent: <AlertsOverlayComponent alerts={alerts} style={{padding: '1rem'}}> ....

You can pass styles to Alert: <Alert style={{padding: '1rem'}} />.