import emojiShortName from "emoji-short-name";
import {
+ BlockCommunityResponse,
+ BlockPersonResponse,
CommentView,
+ CommunityBlockView,
CommunityView,
GetSiteMetadata,
GetSiteResponse,
LemmyHttp,
LemmyWebsocket,
ListingType,
- LocalUserSettingsView,
+ MyUserInfo,
+ PersonBlockView,
PersonViewSafe,
PostView,
PrivateMessageView,
}
export function canMod(
- localUserView: LocalUserSettingsView,
+ myUserInfo: MyUserInfo,
modIds: number[],
creator_id: number,
onSelf = false
): boolean {
// You can do moderator actions only on the mods added after you.
- if (localUserView) {
- let yourIndex = modIds.findIndex(id => id == localUserView.person.id);
+ if (myUserInfo) {
+ let yourIndex = modIds.findIndex(
+ id => id == myUserInfo.local_user_view.person.id
+ );
if (yourIndex == -1) {
return false;
} else {
// TODO
export function getLanguage(override?: string): string {
- let localUserView = UserService.Instance.localUserView;
+ let myUserInfo = UserService.Instance.myUserInfo;
let lang =
override ||
- (localUserView?.local_user.lang
- ? localUserView.local_user.lang
+ (myUserInfo?.local_user_view.local_user.lang
+ ? myUserInfo.local_user_view.local_user.lang
: "browser");
if (lang == "browser" && isBrowser()) {
export function showAvatars(): boolean {
return (
- UserService.Instance.localUserView?.local_user.show_avatars ||
- !UserService.Instance.localUserView
+ UserService.Instance.myUserInfo?.local_user_view.local_user.show_avatars ||
+ !UserService.Instance.myUserInfo
);
}
export function showScores(): boolean {
return (
- UserService.Instance.localUserView?.local_user.show_scores ||
- !UserService.Instance.localUserView
+ UserService.Instance.myUserInfo?.local_user_view.local_user.show_scores ||
+ !UserService.Instance.myUserInfo
);
}
export function getListingTypeFromProps(props: any): ListingType {
return props.match.params.listing_type
? routeListingTypeToEnum(props.match.params.listing_type)
- : UserService.Instance.localUserView
+ : UserService.Instance.myUserInfo
? Object.values(ListingType)[
- UserService.Instance.localUserView.local_user.default_listing_type
+ UserService.Instance.myUserInfo.local_user_view.local_user
+ .default_listing_type
]
: ListingType.Local;
}
export function getSortTypeFromProps(props: any): SortType {
return props.match.params.sort
? routeSortTypeToEnum(props.match.params.sort)
- : UserService.Instance.localUserView
+ : UserService.Instance.myUserInfo
? Object.values(SortType)[
- UserService.Instance.localUserView.local_user.default_sort_type
+ UserService.Instance.myUserInfo.local_user_view.local_user
+ .default_sort_type
]
: SortType.Active;
}
}
}
+export function updatePersonBlock(
+ data: BlockPersonResponse
+): PersonBlockView[] {
+ if (data.blocked) {
+ UserService.Instance.myUserInfo.person_blocks.push({
+ person: UserService.Instance.myUserInfo.local_user_view.person,
+ target: data.person_view.person,
+ });
+ toast(`${i18n.t("blocked")} ${data.person_view.person.name}`);
+ } else {
+ UserService.Instance.myUserInfo.person_blocks =
+ UserService.Instance.myUserInfo.person_blocks.filter(
+ i => i.target.id != data.person_view.person.id
+ );
+ toast(`${i18n.t("unblocked")} ${data.person_view.person.name}`);
+ }
+ return UserService.Instance.myUserInfo.person_blocks;
+}
+
+export function updateCommunityBlock(
+ data: BlockCommunityResponse
+): CommunityBlockView[] {
+ if (data.blocked) {
+ UserService.Instance.myUserInfo.community_blocks.push({
+ person: UserService.Instance.myUserInfo.local_user_view.person,
+ community: data.community_view.community,
+ });
+ toast(`${i18n.t("blocked")} ${data.community_view.community.name}`);
+ } else {
+ UserService.Instance.myUserInfo.community_blocks =
+ UserService.Instance.myUserInfo.community_blocks.filter(
+ i => i.community.id != data.community_view.community.id
+ );
+ toast(`${i18n.t("unblocked")} ${data.community_view.community.name}`);
+ }
+ return UserService.Instance.myUserInfo.community_blocks;
+}
+
export function createCommentLikeRes(
data: CommentView,
comments: CommentView[]
let tree: CommentNodeI[] = [];
for (let comment_view of comments) {
let child = map.get(comment_view.comment.id);
- if (comment_view.comment.parent_id) {
- let parent_ = map.get(comment_view.comment.parent_id);
- parent_.children.push(child);
+ let parent_id = comment_view.comment.parent_id;
+ if (parent_id) {
+ let parent = map.get(parent_id);
+ // Necessary because blocked comment might not exist
+ if (parent) {
+ parent.children.push(child);
+ }
} else {
tree.push(child);
}
searchResultLimit: fetchLimit,
classNames: {
containerOuter: "choices",
- containerInner: "choices__inner bg-light border-0",
+ containerInner: "choices__inner bg-secondary border-0",
input: "form-control",
inputCloned: "choices__input--cloned",
list: "choices__list",
listItems: "choices__list--multiple",
listSingle: "choices__list--single",
listDropdown: "choices__list--dropdown",
- item: "choices__item bg-light",
+ item: "choices__item bg-secondary",
itemSelectable: "choices__item--selectable",
itemDisabled: "choices__item--disabled",
itemChoice: "choices__item--choice",
}
export function initializeSite(site: GetSiteResponse) {
- UserService.Instance.localUserView = site.my_user;
+ UserService.Instance.myUserInfo = site.my_user;
i18n.changeLanguage(getLanguage());
}