1 import { setIsoData } from "@utils/app";
2 import { Component } from "inferno";
3 import { GetSiteResponse, VerifyEmailResponse } from "lemmy-js-client";
4 import { FirstLoadService, I18NextService } from "../../services";
5 import { HttpService, RequestState } from "../../services/HttpService";
6 import { toast } from "../../toast";
7 import { HtmlTags } from "../common/html-tags";
8 import { Spinner } from "../common/icon";
11 verifyRes: RequestState<VerifyEmailResponse>;
12 siteRes: GetSiteResponse;
15 export class VerifyEmail extends Component<any, State> {
16 private isoData = setIsoData(this.context);
19 verifyRes: { state: "empty" },
20 siteRes: this.isoData.site_res,
23 constructor(props: any, context: any) {
24 super(props, context);
26 FirstLoadService.isFirstLoad;
31 verifyRes: { state: "loading" },
35 verifyRes: await HttpService.client.verifyEmail({
36 token: this.props.match.params.token,
40 if (this.state.verifyRes.state == "success") {
41 toast(I18NextService.i18n.t("email_verified"));
42 this.props.history.push("/login");
46 async componentDidMount() {
50 get documentTitle(): string {
51 return `${I18NextService.i18n.t("verify_email")} - ${
52 this.state.siteRes.site_view.site.name
58 <div className="verfy-email container-lg">
60 title={this.documentTitle}
61 path={this.context.router.route.match.url}
64 <div className="col-12 col-lg-6 offset-lg-3 mb-4">
65 <h5>{I18NextService.i18n.t("verify_email")}</h5>
66 {this.state.verifyRes.state == "loading" && (