X-Git-Url: http://these/git/?a=blobdiff_plain;f=src%2Fshared%2Fcomponents%2Fperson%2Fregistration-applications.tsx;h=757170f833f801a503e33d5ce41ea21ec267c55c;hb=b45c24537db2c0618626ff15a5d76ee836697e72;hp=17b2a02585f8cce401170a24c1c58f70ef6499a0;hpb=39e20e5c674a15d4898aaec41f19d34cac8c14d3;p=lemmy-ui.git diff --git a/src/shared/components/person/registration-applications.tsx b/src/shared/components/person/registration-applications.tsx index 17b2a02..757170f 100644 --- a/src/shared/components/person/registration-applications.tsx +++ b/src/shared/components/person/registration-applications.tsx @@ -1,23 +1,23 @@ +import { + editRegistrationApplication, + myAuthRequired, + setIsoData, +} from "@utils/app"; +import { randomStr } from "@utils/helpers"; +import { RouteDataResponse } from "@utils/types"; +import classNames from "classnames"; import { Component, linkEvent } from "inferno"; import { ApproveRegistrationApplication, GetSiteResponse, - ListRegistrationApplications, ListRegistrationApplicationsResponse, RegistrationApplicationView, } from "lemmy-js-client"; -import { i18n } from "../../i18next"; +import { fetchLimit } from "../../config"; import { InitialFetchRequest } from "../../interfaces"; -import { UserService } from "../../services"; -import { FirstLoadService } from "../../services/FirstLoadService"; +import { FirstLoadService, I18NextService, UserService } from "../../services"; import { HttpService, RequestState } from "../../services/HttpService"; -import { - editRegistrationApplication, - fetchLimit, - myAuthRequired, - setIsoData, - setupTippy, -} from "../../utils"; +import { setupTippy } from "../../tippy"; import { HtmlTags } from "../common/html-tags"; import { Spinner } from "../common/icon"; import { Paginator } from "../common/paginator"; @@ -28,6 +28,10 @@ enum UnreadOrAll { All, } +type RegistrationApplicationsData = RouteDataResponse<{ + listRegistrationApplicationsResponse: ListRegistrationApplicationsResponse; +}>; + interface RegistrationApplicationsState { appsRes: RequestState; siteRes: GetSiteResponse; @@ -40,7 +44,7 @@ export class RegistrationApplications extends Component< any, RegistrationApplicationsState > { - private isoData = setIsoData(this.context); + private isoData = setIsoData(this.context); state: RegistrationApplicationsState = { appsRes: { state: "empty" }, siteRes: this.isoData.site_res, @@ -59,7 +63,7 @@ export class RegistrationApplications extends Component< if (FirstLoadService.isFirstLoad) { this.state = { ...this.state, - appsRes: this.isoData.routeData[0], + appsRes: this.isoData.routeData.listRegistrationApplicationsResponse, isIsomorphic: true, }; } @@ -75,7 +79,7 @@ export class RegistrationApplications extends Component< get documentTitle(): string { const mui = UserService.Instance.myUserInfo; return mui - ? `@${mui.local_user_view.person.name} ${i18n.t( + ? `@${mui.local_user_view.person.name} ${I18NextService.i18n.t( "registration_applications" )} - ${this.state.siteRes.site_view.site.name}` : ""; @@ -98,7 +102,9 @@ export class RegistrationApplications extends Component< title={this.documentTitle} path={this.context.router.route.match.url} /> -
{i18n.t("registration_applications")}
+

+ {I18NextService.i18n.t("registration_applications")} +

{this.selects()} {this.applicationList(apps)} {this.renderApps()}; + return ( +
+ {this.renderApps()} +
+ ); } unreadOrAllRadios() { + const radioId = randomStr(); + return ( -
+
+ + +
); @@ -152,7 +171,7 @@ export class RegistrationApplications extends Component< selects() { return (
- {this.unreadOrAllRadios()} + {this.unreadOrAllRadios()}
); } @@ -184,25 +203,20 @@ export class RegistrationApplications extends Component< this.refetch(); } - static fetchInitialData({ + static async fetchInitialData({ auth, client, - }: InitialFetchRequest): Promise[] { - const promises: Promise>[] = []; - - if (auth) { - const form: ListRegistrationApplications = { - unread_only: true, - page: 1, - limit: fetchLimit, - auth, - }; - promises.push(client.listRegistrationApplications(form)); - } else { - promises.push(Promise.resolve({ state: "empty" })); - } - - return promises; + }: InitialFetchRequest): Promise { + return { + listRegistrationApplicationsResponse: auth + ? await client.listRegistrationApplications({ + unread_only: true, + page: 1, + limit: fetchLimit, + auth: auth as string, + }) + : { state: "empty" }, + }; } async refetch() {