diff --git a/src/lib/PostList.svelte b/src/lib/PostList.svelte index 0cf92c25..2294a9e6 100644 --- a/src/lib/PostList.svelte +++ b/src/lib/PostList.svelte @@ -191,9 +191,8 @@ if ($user.hide_blocked_users) { // @ts-ignore result = result.filter( - post => - $relationships[post._id] !== 2 && - $relationships[post.u] !== 2 + post => + $relationships[post.user] !== 2 ); } const numPages = json["pages"]; @@ -268,6 +267,11 @@ if (!cmd.val) return; const isGC = postOrigin !== "home"; + + if (!(isGC && cmd.val.chatid === postOrigin)) { + if ($relationships[cmd.val.u] == 2 && $user.hide_blocked_users) return; + } + if (cmd.val.mode === "delete") { if (adminView) return; items = items.filter(post => post.post_id !== cmd.val.id); diff --git a/src/lib/ProfileView.svelte b/src/lib/ProfileView.svelte index 518e4f6f..2e918134 100644 --- a/src/lib/ProfileView.svelte +++ b/src/lib/ProfileView.svelte @@ -23,7 +23,7 @@ import ReportUserModal from "./modals/safety/ReportUser.svelte"; import AccountBannedModal from "./modals/safety/AccountBanned.svelte"; - import {authHeader, chats, ulist, user} from "./stores.js"; + import {relationships, authHeader, chats, ulist, user} from "./stores.js"; import {apiUrl} from "./urls.js"; import {userFlags} from "./bitField.js"; import loadProfile from "./loadProfile.js"; @@ -199,7 +199,7 @@ on:click={$goto(`/users/${data._id}`)} > {:else} {/if}
- {#if $ulist.includes(data._id)} + {#if $relationships[data._id] === 2 && $user.hide_blocked_users} + User Blocked + {:else if data.banned} + Banned + {:else if $ulist.includes(data._id)} Online {:else if (data.flags & userFlags.SYSTEM) === userFlags.SYSTEM} System {:else if (data.flags & userFlags.DELETED) === userFlags.DELETED} Deleted - {:else if data.banned} - Banned {:else if data.last_seen} Offline since _relationships[theuser] !== 2 + ); + } + return _ulist +} + /** * The single CloudLink instance used by the manager. */ @@ -343,10 +352,11 @@ export async function connect() { } }); ulistEvent = link.on("ulist", cmd => { - const _ulist = cmd.val.split(";"); + var _ulist = cmd.val.split(";"); if (_ulist[_ulist.length - 1] === "") { _ulist.pop(); } + _ulist = fix_ulist_blocked_users(_ulist) ulist.set(_ulist); }); authEvent = link.on("direct", async cmd => { @@ -388,19 +398,21 @@ export async function connect() { user.set(_user); } }); - relationshipUpdateEvent = link.on("direct", cmd => { + relationshipUpdateEvent = link.on("direct", async cmd => { if (cmd.val.mode === "update_relationship") { _relationships[cmd.val.payload.username] = cmd.val.payload.state; relationships.set(_relationships); + link.send({cmd: "get_ulist", val:""}) } }); - configUpdateEvent = link.on("direct", cmd => { + configUpdateEvent = link.on("direct", async cmd => { if (cmd.val.mode === "update_config") { _user = { ..._user, ...cmd.val.payload, }; user.set(_user); + link.send({cmd: "get_ulist", val:""}) } }); chatCreateEvent = link.on("direct", cmd => { @@ -477,7 +489,7 @@ export async function connect() { try { return await link.connect(linkUrl); } catch (e) { - link.error("manager", "conenction error:", e); + link.error("manager", "connection error:", e); modals.showModal(ConnectionFailedModal); return e; }