/* eslint-disable max-len */ import React from 'react'; import PropTypes from 'prop-types'; import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; import { createSelector } from 'reselect'; import { Modal, Button, Col, Row } from '@freecodecamp/react-bootstrap'; import { Spacer } from '../helpers'; import { blockNameify } from '../../../utils/blockNameify'; import Heart from '../../assets/icons/Heart'; import Cup from '../../assets/icons/Cup'; import MinimalDonateForm from './MinimalDonateForm'; import ga from '../../analytics'; import { closeDonationModal, isDonationModalOpenSelector, isBlockDonationModalSelector } from '../../redux'; import { challengeMetaSelector } from '../../templates/Challenges/redux'; import './Donation.css'; const mapStateToProps = createSelector( isDonationModalOpenSelector, challengeMetaSelector, isBlockDonationModalSelector, (show, { block }, isBlockDonation) => ({ show, block, isBlockDonation }) ); const mapDispatchToProps = dispatch => bindActionCreators( { closeDonationModal }, dispatch ); const propTypes = { activeDonors: PropTypes.number, block: PropTypes.string, closeDonationModal: PropTypes.func.isRequired, isBlockDonation: PropTypes.bool, show: PropTypes.bool }; function DonateModal({ show, block, isBlockDonation, closeDonationModal }) { const [closeLabel, setCloseLabel] = React.useState(false); const showCloseBtn = () => { setCloseLabel(true); }; if (show) { ga.modalview('/donation-modal'); } const donationText = ( Become a supporter and help us create even more learning resources for you. ); const blockDonationText = (
{!closeLabel && ( Nicely done. You just completed {blockNameify(block)}. {donationText} )}
); const progressDonationText = (
{!closeLabel && ( {donationText} )}
); return ( {isBlockDonation ? blockDonationText : progressDonationText} ); } DonateModal.displayName = 'DonateModal'; DonateModal.propTypes = propTypes; export default connect( mapStateToProps, mapDispatchToProps )(DonateModal);