UNPKG

bulma-dashboard-theme-worona

Version:
61 lines (54 loc) 2.05 kB
import React from 'react'; import { connect } from 'react-redux'; import * as deps from '../../deps'; import * as actions from '../../actions'; import * as selectors from '../../selectors'; const DeleteModal = ({ active, siteName, deleteSite, closeModal }) => ( <div className={`modal ${active ? 'is-active' : ''}`} onClick={closeModal} > <div className="modal-background" /> <div className="modal-content" style={{ overflow: 'hidden' }}> <div className="columns is-mobile"> <div className="column is-two-thirds is-offset-one-quarter"> <div className="card is-fullwidth"> <div className="card-content content "> <span className="has-text-centered"> <h2>Delete <strong>{ siteName }</strong>?</h2> <hr /> <h5>Your app will stop working and you will lose your preferences.</h5> <br /> </span> <button className="button is-danger is-medium" onClick={deleteSite}> Delete </button> <button className="button is-medium is-pulled-right" onClick={closeModal}> Cancel </button> </div> </div> </div> </div> </div> </div> ); DeleteModal.propTypes = { active: React.PropTypes.bool, siteName: React.PropTypes.string, closeModal: React.PropTypes.func, deleteSite: React.PropTypes.func, }; const mapDispatchToProps = dispatch => ({ dispatch, closeModal: () => dispatch(actions.deleteModalClosed()), }); const mapStateToProps = state => ({ siteName: selectors.getSiteNameBeingDeleted(state), siteId: selectors.getSiteIdBeingDeleted(state), active: selectors.getDisplayingDeleteModal(state), }); const mergeProps = ({ siteName, active, siteId }, { dispatch, closeModal }) => ({ siteName, active, deleteSite: () => dispatch(deps.actions.deleteSiteRequested({ siteId })), closeModal, }); export default connect(mapStateToProps, mapDispatchToProps, mergeProps)(DeleteModal);