import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { Modal, ModalHeader, ModalBody, ModalFooter, } from 'reactstrap'; import { withTranslation } from 'react-i18next'; import { createSubscribedElement } from './UnstatedUtils'; import AppContainer from '../services/AppContainer'; const PageDeleteModal = (props) => { const { t, isOpen, toggle, onClickSubmit, isDeleteCompletelyModal, path, isAbleToDeleteCompletely, } = props; const [isDeleteRecursively, setIsDeleteRecursively] = useState(true); const [isDeleteCompletely, setIsDeleteCompletely] = useState(isDeleteCompletelyModal); const deleteMode = isDeleteCompletely ? 'completely' : 'temporary'; const deleteIconAndKey = { completely: { color: 'danger', icon: 'fire', translationKey: 'completely', }, temporary: { color: 'primary', icon: 'trash', translationKey: 'page', }, }; function changeIsDeleteRecursivelyHandler() { setIsDeleteRecursively(!isDeleteRecursively); } function changeIsDeleteCompletelyHandler() { setIsDeleteCompletely(!isDeleteCompletely); } function renderDeleteRecursivelyForm() { return (
); } function renderDeleteCompletelyForm() { return (
{!isAbleToDeleteCompletely &&

{ t('modal_delete.delete_completely_restriction') }

}
); } return ( { t(`modal_delete.delete_${deleteIconAndKey[deleteMode].translationKey}`) }

{ path }
{renderDeleteRecursivelyForm()} {!isDeleteCompletelyModal && renderDeleteCompletelyForm()}
); }; /** * Wrapper component for using unstated */ const PageDeleteModalWrapper = (props) => { return createSubscribedElement(PageDeleteModal, props, [AppContainer]); }; PageDeleteModal.propTypes = { t: PropTypes.func.isRequired, // i18next appContainer: PropTypes.instanceOf(AppContainer).isRequired, isOpen: PropTypes.bool.isRequired, toggle: PropTypes.func.isRequired, onClickSubmit: PropTypes.func.isRequired, path: PropTypes.string.isRequired, isDeleteCompletelyModal: PropTypes.bool, isAbleToDeleteCompletely: PropTypes.bool, }; PageDeleteModal.defaultProps = { isDeleteCompletelyModal: false, }; export default withTranslation()(PageDeleteModalWrapper);