171 lines
5.0 KiB
TypeScript
171 lines
5.0 KiB
TypeScript
// Metro module 15356 (f15357).
|
|
import { useEffect } from "react";
|
|
import ICYMIStore from "./ICYMIStore";
|
|
import { ICYMIItemTypes } from "./ICYMITypes";
|
|
import { useStateFromStores, useStateFromStoresObject } from "../../_bundle/Module589";
|
|
import ICYMIActionCreators from "./ICYMIActionCreators";
|
|
const createItem = function createItem(a0, a1, a2) {
|
|
const type = a1.type;
|
|
if (ICYMIItemTypes.MESSAGE === type) {
|
|
return a1.message.id === a1.message.channel_id && a1.threadChannel != null ? {
|
|
id: a0.id,
|
|
timestamp: Date.now(),
|
|
channelType: a0.data.channel_type,
|
|
data: {
|
|
kind: "forumThread",
|
|
message: a1.message,
|
|
threadChannel: a1.threadChannel
|
|
},
|
|
score: a0.score,
|
|
debugScore: JSON.stringify(a0.score_components),
|
|
unread: a2
|
|
} : {
|
|
id: a0.id,
|
|
timestamp: Date.now(),
|
|
channelType: a0.data.channel_type,
|
|
data: {
|
|
kind: "message",
|
|
message: a1.message,
|
|
mentioned: a0.data.has_mention,
|
|
messageContext: a0.data.message_context
|
|
},
|
|
score: a0.score,
|
|
debugScore: JSON.stringify(a0.score_components),
|
|
unread: a2
|
|
};
|
|
}
|
|
if (ICYMIItemTypes.ACTIVITY !== type && ICYMIItemTypes.CUSTOM_STATUS !== type) {
|
|
if (ICYMIItemTypes.GUILD_EVENT === type) {
|
|
return {
|
|
id: a0.id,
|
|
timestamp: Date.now(),
|
|
data: {
|
|
kind: "guildEvent",
|
|
eventId: a1.event_id
|
|
},
|
|
score: a0.score,
|
|
debugScore: JSON.stringify(a0.score_components),
|
|
unread: a2
|
|
};
|
|
}
|
|
if (ICYMIItemTypes.RECOMMENDED_GUILDS === type) {
|
|
return {
|
|
id: a0.id,
|
|
timestamp: Date.now(),
|
|
data: {
|
|
kind: "recommendedGuilds"
|
|
},
|
|
score: a0.score,
|
|
debugScore: JSON.stringify(a0.score_components),
|
|
unread: a2
|
|
};
|
|
}
|
|
return null;
|
|
}
|
|
return {
|
|
id: a0.id,
|
|
timestamp: Date.now(),
|
|
data: {
|
|
kind: "contentInventory",
|
|
content: a1.activity
|
|
},
|
|
score: a0.score,
|
|
debugScore: JSON.stringify(a0.score_components),
|
|
unread: a2
|
|
};
|
|
};
|
|
export default function useICYMIItems() {
|
|
let stateFromStores;
|
|
const stateFromStores2 = useStateFromStores([ICYMIStore], () => ICYMIStore.getUnreadDisplayItems());
|
|
stateFromStores = useStateFromStores([ICYMIStore], () => ICYMIStore.getReadDisplayItems());
|
|
const stateFromStores3 = useStateFromStores([ICYMIStore], () => ICYMIStore.getNextIndexToHydrate());
|
|
const stateFromStoresObject = useStateFromStoresObject([ICYMIStore], () => ICYMIStore.getHydratedItems());
|
|
const stateFromStores4 = useStateFromStores([ICYMIStore], () => ICYMIStore.getMissingItems());
|
|
useEffect(() => {
|
|
let c28007_0 = Date.now() + stateFromStores.length;
|
|
ICYMIActionCreators.ackGravityItems(stateFromStores.map((stateFromStore) => {
|
|
const timestamp = +c28007_0;
|
|
c28007_0 = timestamp - 1;
|
|
return {
|
|
id: stateFromStore.id,
|
|
timestamp
|
|
};
|
|
}, true));
|
|
}, [stateFromStores]);
|
|
const unreadItems = [];
|
|
const r8 = 0 < stateFromStores2.length;
|
|
let r3 = 0;
|
|
if (r8) {
|
|
const r7 = 0 >= stateFromStores3;
|
|
let r2 = 0;
|
|
let r0 = 0;
|
|
r3 = 0;
|
|
if (!r7) {
|
|
do {
|
|
const r56 = stateFromStores2[r2];
|
|
const r58 = stateFromStores4[r56.id];
|
|
const r5 = r2;
|
|
const r1 = r0;
|
|
if (!r58) {
|
|
let r60 = stateFromStoresObject[r56.id];
|
|
if (r60 == null && r56.type === ICYMIItemTypes.MESSAGE && r56.data.message_context?.reference_message_id != null) {
|
|
r60 = stateFromStoresObject[r56.data.message_id];
|
|
}
|
|
if (r60 != null) {
|
|
const item = createItem(r56, r60, true);
|
|
if (item != null) {
|
|
unreadItems.push(item);
|
|
}
|
|
}
|
|
}
|
|
const r78 = r1 + 1;
|
|
const r79 = r5 + 1;
|
|
const length = stateFromStores2.length;
|
|
r3 = r78;
|
|
if (!(r79 < length)) {
|
|
break;
|
|
}
|
|
r2 = r79;
|
|
r0 = r78;
|
|
r3 = r0;
|
|
} while (!(r3 >= stateFromStores3));
|
|
}
|
|
}
|
|
const readItems = [];
|
|
if (0 < stateFromStores.length) {
|
|
const r83 = r3 >= stateFromStores3;
|
|
let r87 = 0;
|
|
if (!r83) {
|
|
do {
|
|
const r88 = stateFromStores[r87];
|
|
const r90 = stateFromStores4[r88.id];
|
|
const r91 = r87;
|
|
const r92 = r3;
|
|
if (!r90) {
|
|
let r94 = stateFromStoresObject[r88.id];
|
|
if (r94 == null && r88.type === ICYMIItemTypes.MESSAGE && r88.data.message_context?.reference_message_id != null) {
|
|
r94 = stateFromStoresObject[r88.data.message_id];
|
|
}
|
|
if (r94 != null) {
|
|
const item2 = createItem(r88, r94, false);
|
|
if (item2 != null) {
|
|
readItems.push(item2);
|
|
}
|
|
}
|
|
}
|
|
const r112 = r91 + 1;
|
|
if (!(r112 < stateFromStores.length)) {
|
|
break;
|
|
}
|
|
r3 = r92 + 1;
|
|
r87 = r112;
|
|
} while (!(r3 >= stateFromStores3));
|
|
}
|
|
}
|
|
return {
|
|
unreadItems,
|
|
readItems,
|
|
allUnreadItemsHydrated: stateFromStores3 >= stateFromStores2.length
|
|
};
|
|
};
|