Files
discord-decomp/lib/guild/GuildMemberRequester.tsx
T
2026-11-01 12:12:55 +02:00

150 lines
4.2 KiB
TypeScript

// Metro module 5016 (f5017).
import { DelayedCall } from "../../_bundle/Timeout";
import Module12 from "../../_bundle/Module12";
function $mk75223($env) {
return (a0) => {
const r1 = $env;
return (0, r1[1])(r1[0], a0);
};
}
class GuildMemberRequestState {
constructor(a0, a1) {
let env14540;
const r1 = env14540 = {};
env14540[0] = a0;
env14540[1] = a1;
const r11 = {
__proto__: new.target.prototype,
_pendingRequests: new Set(),
_sentRequests: null,
_unacknowledgedRequests: null
};
r11._sentRequests = new Set();
r11._unacknowledgedRequests = new Set();
r11._guildId = a0;
r11._guildMemberExists = $mk75223(r1);
return r11;
}
acknowledge(a0) {
this._unacknowledgedRequests.delete(a0);
this._pendingRequests.delete(a0);
}
flushRequests(a0) {
let c14541_0;
if (this._pendingRequests.size !== 0) {
const r5 = [];
c14541_0 = r5;
this._pendingRequests.forEach((_pendingRequest) => {
if (!this._guildMemberExists(_pendingRequest)) {
this._unacknowledgedRequests.add(_pendingRequest);
this._sentRequests.add(_pendingRequest);
c14541_0.push(_pendingRequest);
}
});
if (r5.length > 0) {
a0(this._guildId, r5);
}
this._pendingRequests.clear();
}
}
requestUnacknowledged() {
let r1 = this._unacknowledgedRequests.size !== 0;
if (r1) {
this._unacknowledgedRequests.forEach((_unacknowledgedRequest) => {
if (this._guildMemberExists(_unacknowledgedRequest)) {
this._unacknowledgedRequests.delete(_unacknowledgedRequest);
} else {
this._pendingRequests.add(_unacknowledgedRequest);
}
});
r1 = this._pendingRequests.size !== 0 && void 0;
}
return r1;
}
request(a0) {
if (!this._guildMemberExists(a0) && !this._sentRequests.has(a0) && !this._pendingRequests.has(a0)) {
this._pendingRequests.add(a0);
return void 0;
}
return false;
}
}
class GuildMemberRequester {
_guildStates = {};
_flush = new DelayedCall(0, () => this.flushRequests());
constructor(a0, a1) {
this._guildMemberExists = a0;
this._onChange = a1;
}
reset() {
this._guildStates = {};
this._flush.cancel();
}
request(a0, a1) {
if (this._getGuildState(a0).request(a1) !== false) {
this._flush.delay(false);
}
}
acknowledge(a0, a1) {
this._getGuildState(a0).acknowledge(a1);
}
flushRequests() {
Module12.forEach(this._guildStates, (a0) => a0.flushRequests(this._onChange));
}
requestUnacknowledged() {
if (Module12.reduce(this._guildStates, (a0, a1) => a1.requestUnacknowledged() !== false || a0, false)) {
this._flush.delay();
}
}
_getGuildState(a0) {
let r11 = this._guildStates[a0];
if (r11 == null) {
const _guildStates = this._guildStates;
const _guildMemberExists = this._guildMemberExists;
let env14545;
const r15 = env14545 = {};
env14545[0] = a0;
env14545[1] = _guildMemberExists;
const r20 = {
__proto__: GuildMemberRequestState.prototype,
_pendingRequests: new Set(),
_sentRequests: null,
_unacknowledgedRequests: null
};
r20._sentRequests = new Set();
r20._unacknowledgedRequests = new Set();
r20._guildId = a0;
r20._guildMemberExists = $mk75223(r15);
_guildStates[a0] = r20;
r11 = r20;
}
return r11;
}
getDebugState(c14546_0) {
const pendingRequestGuildIds = [];
let c14546_1 = pendingRequestGuildIds;
const unacknowledgedRequestGuildIds = [];
let c14546_2 = unacknowledgedRequestGuildIds;
const sentRequestGuildIds = [];
let c14546_3 = sentRequestGuildIds;
Module12.forEach(this._guildStates, (a0) => {
const _pendingRequests = a0._pendingRequests;
if (_pendingRequests.has(c14546_0)) {
c14546_1.push(a0._guildId);
}
if (a0._unacknowledgedRequests.has(c14546_0)) {
c14546_2.push(a0._guildId);
}
if (a0._sentRequests.has(c14546_0)) {
c14546_3.push(a0._guildId);
}
});
return {
pendingRequestGuildIds,
unacknowledgedRequestGuildIds,
sentRequestGuildIds
};
}
}
export default GuildMemberRequester;