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

64 lines
1.4 KiB
TypeScript

// Metro module 6058 (f6059).
import LRUCache from "../../_bundle/LRUCache";
import Module12 from "../../_bundle/Module12";
function $mk77679($env) {
return (a0, a1) => {
$env[0][a1] = a0;
};
}
class GuildChannelSubscriptions {
constructor(a0) {
const r3 = {
__proto__: new.target.prototype,
_subscriptions: {}
};
r3._onChange = a0;
return r3;
}
reset() {
this._subscriptions = {};
}
get(a0) {
let env15429;
const r3 = this._get(a0);
const r4 = env15429 = {};
const r5 = {};
env15429[0] = r5;
r3.forEach($mk77679(r4));
return r5;
}
_get(a0) {
let r8 = this._subscriptions[a0];
if (r8 == null) {
r8 = new LRUCache({
max: 5
});
}
return r8;
}
clear(a0) {
delete this._subscriptions[a0];
}
subscribe(a0, a1, a2) {
const r8 = this._get(a0);
const isEqual = Module12.isEqual(r8.get(a1), a2);
let r17 = !isEqual;
if (!isEqual) {
let env15430;
r8.set(a1, a2);
this._subscriptions[a0] = r8;
const _onChange = this._onChange;
const r22 = env15430 = {};
const r23 = {};
env15430[0] = r23;
r8.forEach($mk77679(r22));
_onChange.call(this, a0, r23);
r17 = true;
}
return r17;
}
}
export default GuildChannelSubscriptions;
export const MINIMUM_RANGE = 100;
export const DEFAULT_RANGES = [[0, 99]];