import { UserService, WebSocketService } from "../../services";
import {
QueryParams,
+ WithPromiseKeys,
canMod,
capitalizeFirstLetter,
createCommentLikeRes,
import { PersonDetails } from "./person-details";
import { PersonListing } from "./person-listing";
+interface ProfileData {
+ personResponse: GetPersonDetailsResponse;
+}
+
interface ProfileState {
personRes?: GetPersonDetailsResponse;
loading: boolean;
RouteComponentProps<{ username: string }>,
ProfileState
> {
- private isoData = setIsoData(this.context);
+ private isoData = setIsoData<ProfileData>(this.context);
private subscription?: Subscription;
state: ProfileState = {
loading: true,
if (this.isoData.path === this.context.router.route.match.url) {
this.state = {
...this.state,
- personRes: this.isoData.routeData[0] as GetPersonDetailsResponse,
+ personRes: this.isoData.routeData.personResponse,
loading: false,
};
} else {
path,
query: { page, sort, view: urlView },
auth,
- }: InitialFetchRequest<QueryParams<ProfileProps>>): Promise<any>[] {
+ }: InitialFetchRequest<
+ QueryParams<ProfileProps>
+ >): WithPromiseKeys<ProfileData> {
const pathSplit = path.split("/");
const username = pathSplit[2];
auth,
};
- return [client.getPersonDetails(form)];
+ return {
+ personResponse: client.getPersonDetails(form),
+ };
}
componentDidMount() {