WhoReacted: fix crashing (app reloading)

This commit is contained in:
Vendicated 2025-05-29 23:10:53 +02:00
parent 2a4314efc9
commit eafbc0d15a
No known key found for this signature in database
GPG key ID: D66986BAF75ECF18

View file

@ -66,7 +66,7 @@ function fetchReactions(msg: Message, emoji: ReactionEmoji, type: number) {
function getReactionsWithQueue(msg: Message, e: ReactionEmoji, type: number) { function getReactionsWithQueue(msg: Message, e: ReactionEmoji, type: number) {
const key = `${msg.id}:${e.name}:${e.id ?? ""}:${type}`; const key = `${msg.id}:${e.name}:${e.id ?? ""}:${type}`;
const cache = reactions[key] ??= { fetched: false, users: {} }; const cache = reactions[key] ??= { fetched: false, users: new Map() };
if (!cache.fetched) { if (!cache.fetched) {
queue.unshift(() => fetchReactions(msg, e, type)); queue.unshift(() => fetchReactions(msg, e, type));
cache.fetched = true; cache.fetched = true;
@ -159,7 +159,7 @@ export default definePlugin({
}, [message.id, forceUpdate]); }, [message.id, forceUpdate]);
const reactions = getReactionsWithQueue(message, emoji, type); const reactions = getReactionsWithQueue(message, emoji, type);
const users = Object.values(reactions).filter(Boolean) as User[]; const users = [...reactions.values()].filter(Boolean);
return ( return (
<div <div
@ -187,7 +187,7 @@ export default definePlugin({
interface ReactionCacheEntry { interface ReactionCacheEntry {
fetched: boolean; fetched: boolean;
users: Record<string, User>; users: Map<string, User>;
} }
interface RootObject { interface RootObject {