bulma-dashboard-theme-worona
Version:
Theme for the Worona Dashboard.
61 lines (54 loc) • 2.05 kB
JSX
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);