import { LockOutlined } from "@ant-design/icons"; import { Button, Form, Input, Result, Typography } from "antd"; import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { Link } from "react-router-dom"; import { createStructuredSelector } from "reselect"; import RomeLogo from "../../assets/RomeOnlineBlue.png"; 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"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; 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); setCodeValid({ loading: false, ...codeValid }); } catch (error) { setCodeValid({ loading: false, ...error }); } } checkCodeValid(); }, [oobCode]); if (codeValid.loading) return ; if (codeValid.code) return (
); if (passwordReset.success) return ( ]} /> ); return (
{InstanceRenderManager({ {InstanceRenderManager({ imex: t("titles.imexonline"), rome: t("titles.romeonline") })}
{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);