import { Button, Card, Col, Form, Input } from "antd"; import { LockOutlined } from "@ant-design/icons"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { updateUserDetails } from "../../redux/user/user.actions"; import { selectCurrentUser } from "../../redux/user/user.selectors"; import { logImEXEvent, updateCurrentPassword } from "../../firebase/firebase.utils"; import LayoutFormRow from "../layout-form-row/layout-form-row.component"; import { useNotification } from "../../contexts/Notifications/notificationContext.jsx"; import { useSocket } from "../../contexts/SocketIO/useSocket.js"; import NotificationSettingsForm from "../notification-settings/notification-settings-form.component.jsx"; const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser }); const mapDispatchToProps = (dispatch) => ({ updateUserDetails: (userDetails) => dispatch(updateUserDetails(userDetails)) }); export default connect( mapStateToProps, mapDispatchToProps )(function ProfileMyComponent({ currentUser, updateUserDetails }) { const { t } = useTranslation(); const notification = useNotification(); const { scenarioNotificationsOn } = useSocket(); const handleFinish = (values) => { logImEXEvent("profile_update"); updateUserDetails({ displayName: values.displayName, photoURL: values.photoURL }); }; const handleChangePassword = async ({ password }) => { logImEXEvent("password_update"); try { await updateCurrentPassword(password); notification.success({ message: t("user.successess.passwordchanged") }); } catch (error) { notification.error({ message: error.message }); } }; return ( <>