AddModToCommunity,
BanFromCommunity,
BanPerson,
+ BlockPerson,
CommunityModeratorView,
CreatePostLike,
DeletePost,
post_view.creator.banned) && (
<span className="mx-1 badge badge-danger">{i18n.t("banned")}</span>
)}
+ {post_view.creator_blocked && (
+ <span className="mx-1 badge badge-danger">{"blocked"}</span>
+ )}
{this.props.showCommunity && (
<span>
<span class="mx-1"> {i18n.t("to")} </span>
postActions(mobile = false) {
let post_view = this.props.post_view;
return (
- UserService.Instance.localUserView && (
+ UserService.Instance.myUserInfo && (
<>
{this.showBody && (
<>
>
<Icon icon="copy" classes="icon-inline" />
</Link>
+ {!this.myPost && (
+ <button
+ class="btn btn-link btn-animate text-muted py-0"
+ onClick={linkEvent(this, this.handleBlockUserClick)}
+ data-tippy-content={i18n.t("block_user")}
+ aria-label={i18n.t("block_user")}
+ >
+ <Icon icon="slash" classes="icon-inline" />
+ </button>
+ )}
</>
)}
{this.myPost && this.showBody && (
private get myPost(): boolean {
return (
- UserService.Instance.localUserView &&
+ UserService.Instance.myUserInfo &&
this.props.post_view.creator.id ==
- UserService.Instance.localUserView.person.id
+ UserService.Instance.myUserInfo.local_user_view.person.id
);
}
.concat(this.props.moderators.map(m => m.moderator.id));
return canMod(
- UserService.Instance.localUserView,
+ UserService.Instance.myUserInfo,
adminsThenMods,
this.props.post_view.creator.id
);
.concat(this.props.moderators.map(m => m.moderator.id));
return canMod(
- UserService.Instance.localUserView,
+ UserService.Instance.myUserInfo,
adminsThenMods,
this.props.post_view.creator.id,
true
return (
this.props.admins &&
canMod(
- UserService.Instance.localUserView,
+ UserService.Instance.myUserInfo,
this.props.admins.map(a => a.person.id),
this.props.post_view.creator.id
)
get amCommunityCreator(): boolean {
return (
this.props.moderators &&
- UserService.Instance.localUserView &&
+ UserService.Instance.myUserInfo &&
this.props.post_view.creator.id !=
- UserService.Instance.localUserView.person.id &&
- UserService.Instance.localUserView.person.id ==
+ UserService.Instance.myUserInfo.local_user_view.person.id &&
+ UserService.Instance.myUserInfo.local_user_view.person.id ==
this.props.moderators[0].moderator.id
);
}
get amSiteCreator(): boolean {
return (
this.props.admins &&
- UserService.Instance.localUserView &&
+ UserService.Instance.myUserInfo &&
this.props.post_view.creator.id !=
- UserService.Instance.localUserView.person.id &&
- UserService.Instance.localUserView.person.id ==
+ UserService.Instance.myUserInfo.local_user_view.person.id &&
+ UserService.Instance.myUserInfo.local_user_view.person.id ==
this.props.admins[0].person.id
);
}
handlePostLike(i: PostListing, event: any) {
event.preventDefault();
- if (!UserService.Instance.localUserView) {
+ if (!UserService.Instance.myUserInfo) {
this.context.router.history.push(`/login`);
}
handlePostDisLike(i: PostListing, event: any) {
event.preventDefault();
- if (!UserService.Instance.localUserView) {
+ if (!UserService.Instance.myUserInfo) {
this.context.router.history.push(`/login`);
}
this.setState(this.state);
}
+ handleBlockUserClick(i: PostListing) {
+ let blockUserForm: BlockPerson = {
+ person_id: i.props.post_view.creator.id,
+ block: true,
+ auth: authField(),
+ };
+ WebSocketService.Instance.send(wsClient.blockPerson(blockUserForm));
+ }
+
handleDeleteClick(i: PostListing) {
let deleteForm: DeletePost = {
post_id: i.props.post_view.post.id,