All files / client/components/ExternalShare DeleteConfirmModal.tsx

0% Statements 0/13
0% Branches 0/4
0% Functions 0/3
0% Lines 0/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 60 61 62                                                                                                                           
import React from 'react'
import { withTranslation, WithTranslation } from 'react-i18next'
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Alert } from 'reactstrap'
 
interface Props extends WithTranslation {
  show: boolean
  onHide: () => void
  handleDelete: Function
  handleClose: Function
}
 
interface State {
  error: boolean
}
 
class DeleteConfirmModal extends React.Component<Props, State> {
  static defaultProps = { show: false }
 
  constructor(props: Props) {
    super(props)
 
    this.state = {
      error: false,
    }
 
    this.handleDelete = this.handleDelete.bind(this)
  }
 
  async handleDelete() {
    const { handleClose, handleDelete } = this.props
    this.setState({ error: false })
    const error = await handleDelete()
    if (error !== null) {
      this.setState({ error: true })
    } else {
      handleClose()
    }
  }
 
  render() {
    const { show, onHide, t } = this.props
    const { error } = this.state
    return (
      <Modal isOpen={show} toggle={onHide}>
        <ModalHeader toggle={onHide}>{t('Delete shared link to this page?')}</ModalHeader>
        <ModalBody>
          {error && <Alert color="danger">{t('share.error.can_not_delete')}</Alert>}
          <p>{t('No one can see this page if the link is deleted')}</p>
        </ModalBody>
        <ModalFooter>
          <Button onClick={onHide}>{t('Cancel')}</Button>
          <Button onClick={this.handleDelete} color="danger">
            {t('Delete')}
          </Button>
        </ModalFooter>
      </Modal>
    )
  }
}
 
export default withTranslation()(DeleteConfirmModal)