| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- import { Button, Modal } from 'react-bootstrap'
- import { useTranslation } from 'react-i18next'
- import AccessibleModal from '../../../../shared/components/accessible-modal'
- import { useFileTreeActionable } from '../../contexts/file-tree-actionable'
- function FileTreeModalDelete() {
- const { t } = useTranslation()
- const {
- isDeleting,
- inFlight,
- finishDeleting,
- actionedEntities,
- cancel,
- error,
- } = useFileTreeActionable()
- if (!isDeleting) return null // the modal will not be rendered; return early
- function handleHide() {
- cancel()
- }
- function handleDelete() {
- finishDeleting()
- }
- return (
- <AccessibleModal show onHide={handleHide}>
- <Modal.Header>
- <Modal.Title>{t('delete')}</Modal.Title>
- </Modal.Header>
- <Modal.Body>
- <p>{t('sure_you_want_to_delete')}</p>
- <ul>
- {actionedEntities.map(entity => (
- <li key={entity._id}>{entity.name}</li>
- ))}
- </ul>
- {error && (
- <div className="alert alert-danger file-tree-modal-alert">
- {t('generic_something_went_wrong')}
- </div>
- )}
- </Modal.Body>
- <Modal.Footer>
- {inFlight ? (
- <Button bsStyle="danger" disabled>
- {t('deleting')}…
- </Button>
- ) : (
- <>
- <Button
- bsStyle={null}
- className="btn-secondary"
- onClick={handleHide}
- >
- {t('cancel')}
- </Button>
- <Button bsStyle="danger" onClick={handleDelete}>
- {t('delete')}
- </Button>
- </>
- )}
- </Modal.Footer>
- </AccessibleModal>
- )
- }
- export default FileTreeModalDelete
|