1
0
Fork 0

feat: enable and improve relations/server list

lea-dev
Lea 2023-10-03 14:35:45 +02:00 committed by insert
parent 20579c9ebb
commit 5b0bc0d36a
3 changed files with 29 additions and 9 deletions

View File

@ -57,12 +57,10 @@ export default async function User({
const relevantUsers = await fetchUsersById([ const relevantUsers = await fetchUsersById([
...botIds, ...botIds,
...( ...(
user.relations?.filter((relation) => relation.status === "Friend") ?? [] user.relations ?? []
).map((relation) => relation._id), ).map((relation) => relation._id),
]); ]);
relevantUsers.sort((a) => (a.bot ? -1 : 0));
// Fetch server memberships // Fetch server memberships
const serverMemberships = await fetchMembershipsByUser(user._id).catch( const serverMemberships = await fetchMembershipsByUser(user._id).catch(
() => [] () => []

View File

@ -18,12 +18,24 @@ export function RelevantObjects({
return ( return (
<div className="flex gap-2"> <div className="flex gap-2">
<div className="flex-1 min-w-0 flex flex-col gap-2"> <div className="flex-1 min-w-0 flex flex-col gap-2">
<h2 className="text-md text-center pb-2">Bots & Friends</h2> <h2 className="text-md text-center pb-2">Bots & Relations</h2>
<ListCompactor <ListCompactor
data={users} data={[
// for whatever fucking reason nextjs threw a bunch of errors at me
// when i used .sort() here but i guess this works well enough..?
...users.filter((user) => user.bot?.owner == userId),
...users.filter((user) => user.bot?.owner != userId),
]}
Component={({ item }) => ( Component={({ item }) => (
<Link href={`/panel/inspect/user/${item._id}`}> <Link href={`/panel/inspect/user/${item._id}`}>
<UserCard user={item} subtitle="" /> <UserCard
user={item}
subtitle={
item.bot?.owner == userId
? "Owned bot"
: item.relations?.find((relation) => relation._id == userId)?.status || ""
}
/>
</Link> </Link>
)} )}
/> />
@ -31,12 +43,21 @@ export function RelevantObjects({
<div className="flex-1 min-w-0 flex flex-col gap-2"> <div className="flex-1 min-w-0 flex flex-col gap-2">
<h2 className="text-md text-center pb-2">Servers</h2> <h2 className="text-md text-center pb-2">Servers</h2>
<ListCompactor <ListCompactor
data={servers} // same as above
data={[
...servers.filter((server) => userId == server.owner),
...servers.filter((server) => userId != server.owner),
]}
Component={({ item }) => ( Component={({ item }) => (
<Link href={`/panel/inspect/server/${item._id}`}> <Link href={`/panel/inspect/server/${item._id}`}>
<ServerCard <ServerCard
server={item} server={item}
subtitle={userId === item.owner ? "Server Owner" : ""} subtitle={
[
userId === item.owner ? "Server Owner" : null,
item.discoverable ? "Discoverable" : null,
].filter(i => i).join(" · ")
}
/> />
</Link> </Link>
)} )}

View File

@ -175,7 +175,8 @@ const PermissionSets = {
"bots/update/owner", "bots/update/owner",
// "messages/fetch/by-user", // "messages/fetch/by-user",
// "users/fetch/memberships", "users/fetch/memberships",
"users/fetch/relations",
"servers/fetch", "servers/fetch",
"messages/fetch/by-id", "messages/fetch/by-id",