All files / src/components/AlertDialog index.jsx

85.71% Statements 6/7
50% Branches 5/10
50% Functions 1/2
85.71% Lines 6/7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59                1x             1x       1x     1x     1x                                               1x                  
import styles from './style.postcss';
import React from 'react';
import Dialog from 'components/Dialog';
import Button from 'components/Button';
import classnames from 'classnames';
import Icon from 'components/Icon';
import PropTypes from 'prop-types';
 
const AlertDialog = ({
  isWarning,
  content1,
  content2,
  okButtonContent,
  onButtonClick,
}) => {
  const iconClassName = classnames(styles.AlertDialog_icon, {
    [styles.__success]: ! isWarning,
    [styles.__warning]: isWarning,
  });
  const primaryContentClassName = content1 && content1.length === 0 ?
      '' :
      styles.AlertDialog_content;
  const secondContentClassName = content2 && content2.length === 0 ?
      '' :
      styles.AlertDialog_content;
  return (
    <Dialog isOpen>
      <div className={styles.AlertDialog}>
        <Icon id={isWarning ? 'warning' : 'success'} className={iconClassName} />
        <div className={primaryContentClassName}>
          <span>{content1}</span>
        </div>
        <div className={classnames(secondContentClassName,
          styles.AlertDialog_secondContent)}>
          <span>{content2}</span>
        </div>
        <Button.Container className={styles.AlertDialog_buttonWrapper}
            align="center">
          <Button className={styles.AlertDialog_button}
              type={Button.Type.primary}
              onClick={() => { onButtonClick(); }} >
            {okButtonContent}
          </Button>
        </Button.Container>
      </div>
    </Dialog>
  );
};
 
AlertDialog.propTypes = {
  isWarning: PropTypes.bool,
  content1: PropTypes.string,
  content2: PropTypes.string,
  okButtonContent: PropTypes.string,
  onButtonClick: PropTypes.func,
};
 
export default AlertDialog;