summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/src/containers/modals/DeleteProfileModal.js
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2020-10-28 16:41:53 +0100
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-05-10 17:17:28 +0200
commit6d5a2eebb609da67239ea37d12d6b2d3bbfef76e (patch)
tree624e07d4664dbe143dca8458a3450ae8d186b7af /opendc-web/opendc-web-ui/src/containers/modals/DeleteProfileModal.js
parentddefa23e8e86c4eab2d2218646bcef21d547f4bc (diff)
ui: Do not clutter component tree with Redux connects
This change refactors the frontend to use hooks for obtaining state within the Redux store as opposed to using Higher-Order Components (HOCs). This eliminates a lot of clutter in the components.
Diffstat (limited to 'opendc-web/opendc-web-ui/src/containers/modals/DeleteProfileModal.js')
-rw-r--r--opendc-web/opendc-web-ui/src/containers/modals/DeleteProfileModal.js42
1 files changed, 17 insertions, 25 deletions
diff --git a/opendc-web/opendc-web-ui/src/containers/modals/DeleteProfileModal.js b/opendc-web/opendc-web-ui/src/containers/modals/DeleteProfileModal.js
index e7c4014d..93a38642 100644
--- a/opendc-web/opendc-web-ui/src/containers/modals/DeleteProfileModal.js
+++ b/opendc-web/opendc-web-ui/src/containers/modals/DeleteProfileModal.js
@@ -1,35 +1,27 @@
import React from 'react'
-import { connect } from 'react-redux'
+import { useDispatch, useSelector } from 'react-redux'
import { closeDeleteProfileModal } from '../../actions/modals/profile'
import { deleteCurrentUser } from '../../actions/users'
import ConfirmationModal from '../../components/modals/ConfirmationModal'
-const DeleteProfileModalComponent = ({ visible, callback }) => (
- <ConfirmationModal
- title="Delete my account"
- message="Are you sure you want to delete your OpenDC account?"
- show={visible}
- callback={callback}
- />
-)
+const DeleteProfileModal = () => {
+ const visible = useSelector((state) => state.modals.deleteProfileModalVisible)
-const mapStateToProps = (state) => {
- return {
- visible: state.modals.deleteProfileModalVisible,
+ const dispatch = useDispatch()
+ const callback = (isConfirmed) => {
+ if (isConfirmed) {
+ dispatch(deleteCurrentUser())
+ }
+ dispatch(closeDeleteProfileModal())
}
+ return (
+ <ConfirmationModal
+ title="Delete my account"
+ message="Are you sure you want to delete your OpenDC account?"
+ show={visible}
+ callback={callback}
+ />
+ )
}
-const mapDispatchToProps = (dispatch) => {
- return {
- callback: (isConfirmed) => {
- if (isConfirmed) {
- dispatch(deleteCurrentUser())
- }
- dispatch(closeDeleteProfileModal())
- },
- }
-}
-
-const DeleteProfileModal = connect(mapStateToProps, mapDispatchToProps)(DeleteProfileModalComponent)
-
export default DeleteProfileModal