import { setIsoData } from "@utils/app"; import { capitalizeFirstLetter, validEmail } from "@utils/helpers"; import { Component, linkEvent } from "inferno"; import { GetSiteResponse } from "lemmy-js-client"; import { HttpService, I18NextService, UserService } from "../../services"; import { toast } from "../../toast"; import { HtmlTags } from "../common/html-tags"; import { Spinner } from "../common/icon"; interface State { form: { email: string; loading: boolean; }; siteRes: GetSiteResponse; } export class LoginReset extends Component { private isoData = setIsoData(this.context); state: State = { form: { email: "", loading: false, }, siteRes: this.isoData.site_res, }; constructor(props: any, context: any) { super(props, context); } componentDidMount() { if (UserService.Instance.myUserInfo) { this.context.router.history.push("/"); } } get documentTitle(): string { return `${capitalizeFirstLetter( I18NextService.i18n.t("forgot_password") )} - ${this.state.siteRes.site_view.site.name}`; } render() { return (
{this.loginResetForm()}
); } loginResetForm() { return (

{capitalizeFirstLetter(I18NextService.i18n.t("forgot_password"))}

); } handleEmailInputChange(i: LoginReset, event: any) { i.setState(s => ((s.form.email = event.target.value.trim()), s)); } async handlePasswordReset(i: LoginReset, event: any) { event.preventDefault(); const email = i.state.form.email; if (email && validEmail(email)) { i.setState(s => ((s.form.loading = true), s)); const res = await HttpService.client.passwordReset({ email }); if (res.state == "success") { toast(I18NextService.i18n.t("reset_password_mail_sent")); i.context.router.history.push("/login"); } i.setState(s => ((s.form.loading = false), s)); } } }