forked from administration/panel
feat: enable and improve relations/server list
parent
20579c9ebb
commit
5b0bc0d36a
|
@ -57,12 +57,10 @@ export default async function User({
|
|||
const relevantUsers = await fetchUsersById([
|
||||
...botIds,
|
||||
...(
|
||||
user.relations?.filter((relation) => relation.status === "Friend") ?? []
|
||||
user.relations ?? []
|
||||
).map((relation) => relation._id),
|
||||
]);
|
||||
|
||||
relevantUsers.sort((a) => (a.bot ? -1 : 0));
|
||||
|
||||
// Fetch server memberships
|
||||
const serverMemberships = await fetchMembershipsByUser(user._id).catch(
|
||||
() => []
|
||||
|
|
|
@ -18,12 +18,24 @@ export function RelevantObjects({
|
|||
return (
|
||||
<div className="flex 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
|
||||
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 }) => (
|
||||
<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>
|
||||
)}
|
||||
/>
|
||||
|
@ -31,12 +43,21 @@ export function RelevantObjects({
|
|||
<div className="flex-1 min-w-0 flex flex-col gap-2">
|
||||
<h2 className="text-md text-center pb-2">Servers</h2>
|
||||
<ListCompactor
|
||||
data={servers}
|
||||
// same as above
|
||||
data={[
|
||||
...servers.filter((server) => userId == server.owner),
|
||||
...servers.filter((server) => userId != server.owner),
|
||||
]}
|
||||
Component={({ item }) => (
|
||||
<Link href={`/panel/inspect/server/${item._id}`}>
|
||||
<ServerCard
|
||||
server={item}
|
||||
subtitle={userId === item.owner ? "Server Owner" : ""}
|
||||
subtitle={
|
||||
[
|
||||
userId === item.owner ? "Server Owner" : null,
|
||||
item.discoverable ? "Discoverable" : null,
|
||||
].filter(i => i).join(" · ")
|
||||
}
|
||||
/>
|
||||
</Link>
|
||||
)}
|
||||
|
|
|
@ -175,7 +175,8 @@ const PermissionSets = {
|
|||
"bots/update/owner",
|
||||
|
||||
// "messages/fetch/by-user",
|
||||
// "users/fetch/memberships",
|
||||
"users/fetch/memberships",
|
||||
"users/fetch/relations",
|
||||
"servers/fetch",
|
||||
|
||||
"messages/fetch/by-id",
|
||||
|
|
Loading…
Reference in New Issue