From dbf681c2e909827c42f093bac34f85013bb3aa93 Mon Sep 17 00:00:00 2001 From: Paul Makles Date: Tue, 4 Jan 2022 15:07:46 +0000 Subject: [PATCH] fix: fix again the thing above i cant be asked to write commit messages anymore --- .../navigation/right/MemberSidebar.tsx | 194 +++++++++--------- 1 file changed, 96 insertions(+), 98 deletions(-) diff --git a/src/components/navigation/right/MemberSidebar.tsx b/src/components/navigation/right/MemberSidebar.tsx index 6a842956..2e58b3da 100644 --- a/src/components/navigation/right/MemberSidebar.tsx +++ b/src/components/navigation/right/MemberSidebar.tsx @@ -45,124 +45,122 @@ function useEntries( const [entries, setEntries] = useState([]); function sort(keys: string[]) { - defer(() => { - const categories: { [key: string]: [User, string][] } = { - online: [], - offline: [], - }; + const categories: { [key: string]: [User, string][] } = { + online: [], + offline: [], + }; - const categoryInfo: { [key: string]: string } = {}; + const categoryInfo: { [key: string]: string } = {}; - let roles: Server["roles"] | undefined; - let roleList: string[]; - if ( - channel.channel_type === "TextChannel" || - channel.channel_type === "VoiceChannel" - ) { - roles = channel.server?.roles; - if (roles) { - const list = Object.keys(roles) - .map((id) => { - return [id, roles![id], roles![id].rank ?? 0] as [ - string, - Role, - number, - ]; - }) - .filter(([, role]) => role.hoist); + let roles: Server["roles"] | undefined; + let roleList: string[]; + if ( + channel.channel_type === "TextChannel" || + channel.channel_type === "VoiceChannel" + ) { + roles = channel.server?.roles; + if (roles) { + const list = Object.keys(roles) + .map((id) => { + return [id, roles![id], roles![id].rank ?? 0] as [ + string, + Role, + number, + ]; + }) + .filter(([, role]) => role.hoist); - list.sort((b, a) => b[2] - a[2]); + list.sort((b, a) => b[2] - a[2]); - list.forEach(([id, role]) => { - if (categories[id]) return; - categories[id] = []; - categoryInfo[id] = role.name; - }); + list.forEach(([id, role]) => { + if (categories[id]) return; + categories[id] = []; + categoryInfo[id] = role.name; + }); - roleList = list.map((x) => x[0]); - } + roleList = list.map((x) => x[0]); + } + } + + keys.forEach((key) => { + let u; + if (isServer) { + const { server, user } = JSON.parse(key); + if (server !== channel.server_id) return; + u = client.users.get(user); + } else { + u = client.users.get(key); } - keys.forEach((key) => { - let u; + if (!u) return; + + const member = client.members.get(key); + const sort = member?.nickname ?? u.username; + const entry = [u, sort] as [User, string]; + + if (!u.online || u.status?.presence === Presence.Invisible) { + categories.offline.push(entry); + } else { if (isServer) { - const { server, user } = JSON.parse(key); - if (server !== channel.server_id) return; - u = client.users.get(user); - } else { - u = client.users.get(key); - } - - if (!u) return; - - const member = client.members.get(key); - const sort = member?.nickname ?? u.username; - const entry = [u, sort] as [User, string]; - - if (!u.online || u.status?.presence === Presence.Invisible) { - categories.offline.push(entry); - } else { - if (isServer) { - // Sort users into hoisted roles here. - if (member?.roles && roles) { - let success = false; - for (const role of roleList) { - if (member.roles.includes(role)) { - categories[role].push(entry); - success = true; - break; - } + // Sort users into hoisted roles here. + if (member?.roles && roles) { + let success = false; + for (const role of roleList) { + if (member.roles.includes(role)) { + categories[role].push(entry); + success = true; + break; } - - if (success) return; } - } else { - // Sort users into "participants" list here. - // For voice calls. + + if (success) return; } - - categories.online.push(entry); + } else { + // Sort users into "participants" list here. + // For voice calls. } - }); - Object.keys(categories).forEach((key) => - categories[key].sort((a, b) => a[1].localeCompare(b[1])), - ); - - const entries: MemberListGroup[] = []; - - Object.keys(categoryInfo).forEach((key) => { - if (categories[key].length > 0) { - entries.push({ - type: "role", - name: categoryInfo[key], - users: categories[key].map((x) => x[0]), - }); - } - }); - - if (categories.online.length > 0) { - entries.push({ - type: "online", - users: categories.online.map((x) => x[0]), - }); + categories.online.push(entry); } - - if (categories.offline.length > 0) { - entries.push({ - type: "offline", - users: categories.offline.map((x) => x[0]), - }); - } - - setEntries(entries); }); + + Object.keys(categories).forEach((key) => + categories[key].sort((a, b) => a[1].localeCompare(b[1])), + ); + + const entries: MemberListGroup[] = []; + + Object.keys(categoryInfo).forEach((key) => { + if (categories[key].length > 0) { + entries.push({ + type: "role", + name: categoryInfo[key], + users: categories[key].map((x) => x[0]), + }); + } + }); + + if (categories.online.length > 0) { + entries.push({ + type: "online", + users: categories.online.map((x) => x[0]), + }); + } + + if (categories.offline.length > 0) { + entries.push({ + type: "offline", + users: categories.offline.map((x) => x[0]), + }); + } + + setEntries(entries); } useEffect(() => { return autorun(() => sort(generateKeys())); // eslint-disable-next-line - }, [generateKeys]); + }, []); return entries; }