diff --git a/src/assets/languages/en.json b/src/assets/languages/en.json index 931b122c01e8b250de3c3ba3c2a9d2201c334833..35f5069a735732efdcb9d91c4a54ce523f5d9d01 100644 --- a/src/assets/languages/en.json +++ b/src/assets/languages/en.json @@ -1,4 +1,10 @@ { + "historyRemove": { + "p2p": "Do you want to permanently delete the chat history?", + "group": "Do you want to permanently delete the chat history in this group chat?", + "noUndone": "This can not be undone!", + "sure": "ARE YOU SURE?" + }, "newMessages": "New Messages", "upcomingMeetings": "Upcoming Meetings", "pastMeetings": "Past Meetings", diff --git a/src/componets/ContextMenu/ChatsListContextMenu/ChatsListContextMenu.js b/src/componets/ContextMenu/ChatsListContextMenu/ChatsListContextMenu.js index 09bc2bcedd2b5c3ac7630c194fb7bfc42d996fb8..2b39b1eb5e72b116e705be4e708d2f4ed67076fb 100644 --- a/src/componets/ContextMenu/ChatsListContextMenu/ChatsListContextMenu.js +++ b/src/componets/ContextMenu/ChatsListContextMenu/ChatsListContextMenu.js @@ -1,7 +1,7 @@ import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { GenericContextMenu, Modal } from '../../index'; -import { ContactClearChatHistoryModal } from '../../Modals/ContactModals/index'; +import { ClearChatHistoryModal } from '../../Modals/index'; import RouteModes from '../../../assets/helpers/modes'; import { constructGroupLink, copyTextToClipboard } from '../../../core/resource/messages/utils/commonFunctions'; @@ -533,7 +533,7 @@ const ChatsListContextMenu = (props) => { } {/* Clear Chat History Modal */} {openClearChatHistoryModal && - setState({ ...state, diff --git a/src/componets/Modals/ClearChatHistoryModal/ClearChatHistoryModal.js b/src/componets/Modals/ClearChatHistoryModal/ClearChatHistoryModal.js new file mode 100644 index 0000000000000000000000000000000000000000..20869caa0cc831e6763df6469e684a639d67542f --- /dev/null +++ b/src/componets/Modals/ClearChatHistoryModal/ClearChatHistoryModal.js @@ -0,0 +1,84 @@ +import React, { useState } from 'react'; +import PropTypes from 'prop-types'; +import Modal from 'react-responsive-modal'; +import { withStyles } from '@material-ui/styles'; +import stylesFunc from './ClearChatHistoryModal.styles'; +import shurikenLogo from '../../../assets/img/shuriken_logo.svg'; + +const styles = theme => (stylesFunc(theme)); + +const ClearChatHistoryModal = (props) => { + const [state, setState] = useState({ showSecondaryModal: false }); + const { showSecondaryModal } = state; + const { classes, open, onCloseClearChatHistoryModal, onConfirmClearChatHistoryModal, t } = props; + + const enableSecondaryModal = () => { + setState({ showSecondaryModal: true }); + }; + + const renderMainModal = () => { + return ( + {console.log('[EBASI-BE]'); onCloseClearChatHistoryModal()}}> + +
+

{t('historyRemove.p2p')}

+

{t('historyRemove.noUndone')}

+
+
+ + +
+
+ ) + }; + + const renderSecondaryModal = () => { + return ( + + +
+

{t('historyRemove.sure')}

+
+
+ + +
+
+ ); + }; + + if (showSecondaryModal && open) { + return renderSecondaryModal(); + } else if (!showSecondaryModal && open) { + return renderMainModal(); + } + + return null; +}; + +ClearChatHistoryModal.propTypes = { + classes: PropTypes.object.isRequired, + open: PropTypes.bool.isRequired, + t: PropTypes.func.isRequired, + onConfirmClearChatHistoryModal: PropTypes.func.isRequired, + onCloseClearChatHistoryModal: PropTypes.func.isRequired, + isGroup: PropTypes.bool.isRequired, +}; + +export default withStyles(styles)(ClearChatHistoryModal); diff --git a/src/componets/Modals/ContactModals/ContactClearChatHistoryModal/ContactClearChatHistoryModal.styles.js b/src/componets/Modals/ClearChatHistoryModal/ClearChatHistoryModal.styles.js similarity index 95% rename from src/componets/Modals/ContactModals/ContactClearChatHistoryModal/ContactClearChatHistoryModal.styles.js rename to src/componets/Modals/ClearChatHistoryModal/ClearChatHistoryModal.styles.js index 3903dba065edc08483a0ef462a1e34fe60d7d048..57f83446e742149933b27912951a3c94a11dba35 100644 --- a/src/componets/Modals/ContactModals/ContactClearChatHistoryModal/ContactClearChatHistoryModal.styles.js +++ b/src/componets/Modals/ClearChatHistoryModal/ClearChatHistoryModal.styles.js @@ -21,9 +21,9 @@ export default theme => ({ }, dscrBox: { display: 'inline-block', - marginTop: 10, maxWidth: 'calc(100% - 100px)', - verticalAlign: 'top' + verticalAlign: 'top', + margin: '10px, 0px', }, dscr: { fontSize: 14, diff --git a/src/componets/Modals/ContactModals/ContactClearChatHistoryModal/ContactClearChatHistoryModal.js b/src/componets/Modals/ContactModals/ContactClearChatHistoryModal/ContactClearChatHistoryModal.js deleted file mode 100644 index 46fe7d1c3b4e1b4f6ccad75a9ba0b799b0b478ab..0000000000000000000000000000000000000000 --- a/src/componets/Modals/ContactModals/ContactClearChatHistoryModal/ContactClearChatHistoryModal.js +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import Modal from 'react-responsive-modal'; -import { withStyles } from '@material-ui/styles'; -import stylesFunc from './ContactClearChatHistoryModal.styles'; -import shurikenLogo from '../../../../assets/img/shuriken_logo.svg'; - -const styles = theme => (stylesFunc(theme)); - -const ContactClearChatHistoryModal = (props) => { - const { classes, open, onCloseClearChatHistoryModal, onConfirmClearChatHistoryModal, t } = props; - - return ( - { onCloseClearChatHistoryModal(); }}> - -
-

{t('clearHistory.body')}

-
-
- - -
-
- ); -}; - -ContactClearChatHistoryModal.propTypes = { - classes: PropTypes.object.isRequired -}; - -export default withStyles(styles)(ContactClearChatHistoryModal); diff --git a/src/componets/Modals/ContactModals/index.js b/src/componets/Modals/ContactModals/index.js index 39f3c0de745d81e3fbbd4bccf5b8baf4941c69f0..b91895eb13ddaa664c1ddd2d19026c5f205654df 100644 --- a/src/componets/Modals/ContactModals/index.js +++ b/src/componets/Modals/ContactModals/index.js @@ -1,7 +1,5 @@ import ContactBlockUserModal from './ContactBlockUserModal/ContactBlockUserModal'; -import ContactClearChatHistoryModal from './ContactClearChatHistoryModal/ContactClearChatHistoryModal'; export { ContactBlockUserModal, - ContactClearChatHistoryModal, }; \ No newline at end of file diff --git a/src/componets/Modals/index.js b/src/componets/Modals/index.js index 2b14ea7b40be23b7cce5c99954eae55aad3b6084..25171d79c17929ef8182e511e1cd63a503426722 100644 --- a/src/componets/Modals/index.js +++ b/src/componets/Modals/index.js @@ -7,6 +7,7 @@ import LocationUpload from './UploadModals/LocationUpload/LocationUpload'; import FileUpload from './UploadModals/FileUpload/FileUpload'; import MediaMultipleUpload from './UploadModals/MediaMultipleUpload/MediaMultipleUpload'; import LiveShareLocationModal from './LiveShareLocationModal/LiveShareLocationModal'; +import ClearChatHistoryModal from './ClearChatHistoryModal/ClearChatHistoryModal'; export { ChatDeleteModal, @@ -18,4 +19,5 @@ export { FileUpload, MediaMultipleUpload, LiveShareLocationModal, + ClearChatHistoryModal, }; diff --git a/src/containers/GroupOptions/GroupOptions.js b/src/containers/GroupOptions/GroupOptions.js index f8c08d6248c7b8dce2125ed48a1b2011802e57f4..6baadb88b0c3a89dd1ca75cf9d3d050d81569946 100644 --- a/src/containers/GroupOptions/GroupOptions.js +++ b/src/containers/GroupOptions/GroupOptions.js @@ -25,6 +25,7 @@ import CustomScroll from 'react-custom-scrollbars'; import QRCode from 'qrcode.react' import CameraUpload from '../../componets/Modals/UploadModals/CameraUpload/CameraUpload'; import MediaUpload from '../../componets/Modals/UploadModals/MediaUpload/MediaUpload'; +import { ClearChatHistoryModal } from '../../componets/Modals/index'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import * as filesType from 'Core/configs/File.config'; import { storageActions } from 'Core/resource/storage'; @@ -1764,20 +1765,8 @@ class GroupOptions extends PureComponent { } {/* Clear history modal */} {displayClearHistoryModal && - this.toggleModals('displayClearHistoryModal')}> - - -

{t('displayClearHistoryModal.description')}

-
- - - - -
+ this.toggleModals('displayClearHistoryModal')} isGroup /> } {/* Leave and clear history modal */} {displayDeleteAndClearHistoryModal && diff --git a/src/containers/Panels/ContactDetailsPanel/ContactDetailsPanel.js b/src/containers/Panels/ContactDetailsPanel/ContactDetailsPanel.js index 9d6905c7c69c72fcd2b9569ace57d939e0964778..e944d2a9ca1f6959d046cd91f5d415bf49f0a00d 100644 --- a/src/containers/Panels/ContactDetailsPanel/ContactDetailsPanel.js +++ b/src/containers/Panels/ContactDetailsPanel/ContactDetailsPanel.js @@ -19,7 +19,8 @@ import { authSelectors } from 'Core/resource/auth'; import CustomScroll from 'react-custom-scrollbars'; import { bindActionCreators } from 'redux'; import RouteModes from 'Assets/helpers/modes'; -import { ContactBlockUserModal, ContactClearChatHistoryModal } from 'Components/Modals/ContactModals/index'; +import { ContactBlockUserModal } from 'Components/Modals/ContactModals/index'; +import { ClearChatHistoryModal }from 'Components/Modals/index'; import { storageActions } from 'Core/resource/storage'; import * as filesType from 'Core/configs/File.config'; import { historyActions } from 'Core/resource/messages/history'; @@ -942,8 +943,9 @@ class ContactDetailsPanel extends Component { /> } {!!openClearChatHistoryModal && - this.confirmClearChatHistoryModal(user)} onCloseClearChatHistoryModal={() => this.setState({ openClearChatHistoryModal: false })} diff --git a/src/layouts/Contacts/Contacts.js b/src/layouts/Contacts/Contacts.js index 401f1151894462c23cbf653c12f4f97b46d92f57..b99c06153df55d7682f0aff3208f2442d7fd6a39 100644 --- a/src/layouts/Contacts/Contacts.js +++ b/src/layouts/Contacts/Contacts.js @@ -7,7 +7,8 @@ import avatarPic from '../../assets/img/avatar.svg'; import contactAvatarImg from '../../assets/img/contact_big_avatar.png'; import requestAvatarImg from '../../assets/img/request_big_avatar.png'; import { ContactList } from '../../componets/ContactComponents'; -import { ContactBlockUserModal, ContactClearChatHistoryModal } from '../../componets/Modals/ContactModals/index'; +import { ContactBlockUserModal } from '../../componets/Modals/ContactModals/index'; +import { ClearChatHistoryModal } from '../../componets/Modals/index'; import { ContactRightSlides, ContactHeader, ForwardMessagePanel, ForwardMessageHeader, ContactDetailsPanel, @@ -439,8 +440,9 @@ class Contacts extends Component { onConfirmBlockUserModal={() => this.confirmBlockUserModal(userContextData ? userContextData : userDetailedData)} onCloseBlockUserModal={() => this.setState({ openBlockUserModal: false, userContextData: null })} /> - this.confirmClearChatHistoryModal(userContextData ? userContextData : userDetailedData)} onCloseClearChatHistoryModal={() => this.setState({ openClearChatHistoryModal: false, userContextData: null })}