import { LockOutlined } from "@ant-design/icons"; import { Button, Form, Input, Result, Typography } from "antd"; import React, { useState, useEffect } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { Link } from "react-router-dom"; import { createStructuredSelector } from "reselect"; import ImEXOnlineLogo from "../../assets/logo192.png"; import { auth } from "../../firebase/firebase.utils"; import { checkActionCode } from "@firebase/auth"; import { validatePasswordResetStart } from "../../redux/user/user.actions"; import { selectPasswordReset } from "../../redux/user/user.selectors"; import AlertComponent from "../alert/alert.component"; import "./user-validate-pw-reset.styles.scss"; import LoadingSpinner from "../loading-spinner/loading-spinner.component"; const mapStateToProps = createStructuredSelector({ passwordReset: selectPasswordReset, }); const mapDispatchToProps = (dispatch) => ({ validatePasswordReset: (emailAndPin) => dispatch(validatePasswordResetStart(emailAndPin)), }); export function UserValidatePwReset({ passwordReset, validatePasswordReset, oobCode, }) { const { t } = useTranslation(); const [codeValid, setCodeValid] = useState({ loading: true }); const handleFinish = (values) => { validatePasswordReset({ code: oobCode, password: values.password }); }; useEffect(() => { async function checkCodeValid() { try { const codeValid = await checkActionCode(auth, oobCode); console.log("codeValid :>> ", codeValid); setCodeValid({ loading: false, ...codeValid }); } catch (error) { console.log("error :>> ", error); setCodeValid({ loading: false, ...error }); } } checkCodeValid(); }, [oobCode]); if (codeValid.loading) return ; if (codeValid.code) return (
); if (passwordReset.success) return ( , ]} /> ); return (
ImEX Online {t("titles.app")}
{t("titles.resetpasswordvalidate")}
} type="password" placeholder={t("general.labels.password")} /> ({ validator(rule, value) { if (!value || getFieldValue("password") === value) { return Promise.resolve(); } return Promise.reject(t("general.labels.passwordsdonotmatch")); }, }), ]} > } type="password" placeholder={t("general.labels.password")} /> {passwordReset.error ? ( ) : null}
); } export default connect( mapStateToProps, mapDispatchToProps )(UserValidatePwReset);