X-Git-Url: http://these/git/?a=blobdiff_plain;f=src%2Fshared%2Fcomponents%2Fperson%2Fprofile.tsx;h=d493f787d5602240ef2b0bfc339315da72863a10;hb=53c3cfeade90150b07431386745a24aa699a25ec;hp=d00036871a04c9ec922c93a56e5c9b6eb43fec8b;hpb=a9bcf0567d815afcfbe1775bff3dc1eea66c1c18;p=lemmy-ui.git
diff --git a/src/shared/components/person/profile.tsx b/src/shared/components/person/profile.tsx
index d000368..d493f78 100644
--- a/src/shared/components/person/profile.tsx
+++ b/src/shared/components/person/profile.tsx
@@ -18,11 +18,14 @@ import {
getQueryParams,
getQueryString,
numToSI,
+ randomStr,
} from "@utils/helpers";
import { canMod, isAdmin, isBanned } from "@utils/roles";
import type { QueryParams } from "@utils/types";
import { RouteDataResponse } from "@utils/types";
import classNames from "classnames";
+import format from "date-fns/format";
+import parseISO from "date-fns/parseISO";
import { NoOptionI18nKeys } from "i18next";
import { Component, linkEvent } from "inferno";
import { Link } from "inferno-router";
@@ -70,7 +73,6 @@ import {
SortType,
TransferCommunity,
} from "lemmy-js-client";
-import moment from "moment";
import { fetchLimit, relTags } from "../../config";
import { InitialFetchRequest, PersonDetailsView } from "../../interfaces";
import { mdToHtml } from "../../markdown";
@@ -83,6 +85,7 @@ import { HtmlTags } from "../common/html-tags";
import { Icon, Spinner } from "../common/icon";
import { MomentTime } from "../common/moment-time";
import { SortSelect } from "../common/sort-select";
+import { UserBadges } from "../common/user-badges";
import { CommunityLink } from "../community/community-link";
import { PersonDetails } from "./person-details";
import { PersonListing } from "./person-listing";
@@ -135,7 +138,7 @@ const getCommunitiesListing = (
communityViews.length > 0 && (
-
{I18NextService.i18n.t(translationKey)}
+
{I18NextService.i18n.t(translationKey)}
{communityViews.map(({ community }) => (
-
@@ -204,6 +207,7 @@ export class Profile extends Component<
this.handleSavePost = this.handleSavePost.bind(this);
this.handlePurgePost = this.handlePurgePost.bind(this);
this.handleFeaturePost = this.handleFeaturePost.bind(this);
+ this.handleModBanSubmit = this.handleModBanSubmit.bind(this);
// Only fetch the data if coming from another route
if (FirstLoadService.isFirstLoad) {
@@ -229,7 +233,7 @@ export class Profile extends Component<
async fetchUserData() {
const { page, sort, view } = getProfileQueryParams();
- this.setState({ personRes: { state: "empty" } });
+ this.setState({ personRes: { state: "loading" } });
this.setState({
personRes: await HttpService.client.getPersonDetails({
username: this.props.match.params.username,
@@ -320,6 +324,7 @@ export class Profile extends Component<
@@ -394,7 +399,7 @@ export class Profile extends Component<
get viewRadios() {
return (
-
+
{this.getRadio(PersonDetailsView.Overview)}
{this.getRadio(PersonDetailsView.Comments)}
{this.getRadio(PersonDetailsView.Posts)}
@@ -406,22 +411,27 @@ export class Profile extends Component<
getRadio(view: PersonDetailsView) {
const { view: urlView } = getProfileQueryParams();
const active = view === urlView;
+ const radioId = randomStr();
return (
-
+
+ >
);
}
@@ -469,7 +479,7 @@ export class Profile extends Component<
{pv.person.display_name && (
-
{pv.person.display_name}
+
{pv.person.display_name}
)}
-
@@ -481,26 +491,15 @@ export class Profile extends Component<
hideAvatar
/>
- {isBanned(pv.person) && (
- -
- {I18NextService.i18n.t("banned")}
-
- )}
- {pv.person.deleted && (
- -
- {I18NextService.i18n.t("deleted")}
-
- )}
- {pv.person.admin && (
- -
- {I18NextService.i18n.t("admin")}
-
- )}
- {pv.person.bot_account && (
- -
- {I18NextService.i18n.t("bot_account").toLowerCase()}
-
- )}
+ -
+
+
{this.banDialog(pv)}
@@ -613,10 +612,7 @@ export class Profile extends Component<
{I18NextService.i18n.t("cake_day_title")}{" "}
- {moment
- .utc(pv.person.published)
- .local()
- .format("MMM DD, YYYY")}
+ {format(parseISO(pv.person.published), "PPP")}
{!UserService.Instance.myUserInfo && (
@@ -649,12 +645,12 @@ export class Profile extends Component<
value={this.state.banReason}
onInput={linkEvent(this, this.handleModBanReasonChange)}
/>
-
+