Files
discord-decomp/modules/guild_automod/AutomodStore.tsx
T
2026-11-01 12:12:55 +02:00

378 lines
10 KiB
TypeScript

// Metro module 16375 (f16376).
import _slicedToArray from "../../_bundle/_slicedToArray";
import _asyncToGenerator from "../../_bundle/_asyncToGenerator";
import { useState, useCallback, useEffect } from "react";
import { AutomodTriggerType } from "./Constants";
import { EMPTY_STRING_SNOWFLAKE_ID } from "../../Constants";
import { createWithEqualityFn } from "../../_bundle/identity_700";
import * as _SystemRulesUtils from "./SystemRulesUtils";
import { batchUpdates } from "../../_bundle/Module705";
import { fetchAutomodRules } from "./GuildAutomodActionCreators";
import { APIError } from "../../errors/index";
import { shallow } from "../../_bundle/Module3802";
import { HermesBuiltin, $createGenerator } from "../../_hermes/prelude";
function $mk99438() {
return (a0) => [a0.syncRules, a0.fetching];
}
function $mk99439($env) {
return function() {
let env28368 = {
$parent: $env
};
env28368[1] = 0;
env28368[4] = 0;
env28368[3] = 0;
return $createGenerator(function() {
let value2;
const r0 = env28368[4];
if (r0 === 2) {
env28368[4] = 3;
HermesBuiltin.throwTypeError("Generator functions may not be called on executing generators");
throw new Error("unreachable");
}
const value = arguments[1];
const r3 = arguments[0];
const r9 = env28368.$parent;
if (r0 === 3) {
if (r3 === 1) {
throw value;
}
if (r3 === 2) {
return {
value,
done: true
};
}
return {
value: void 0,
done: true
};
}
while (true) {
L20: {
L18: {
L16: {
L8: {
try {
env28368[4] = 2;
const r19 = env28368[1];
if (r19 === 0) {
if (r3 === 1) {
env28368[4] = 3;
throw value;
}
if (r3 === 2) {
env28368[4] = 3;
break L20;
}
env28368[0] = r9;
if (!r9[3]) {
const r33 = r9[0];
if (r33 != null) {
env28368[3] = 1;
(0, r9[1])(true);
value2 = (0, r9[2])(r33);
env28368[1] = 2;
env28368[4] = 1;
break L16;
}
}
} else {
if (r19 === 1) {
const r15 = env28368[0];
const r29 = env28368[2];
env28368[3] = 0;
(0, r15[1])(false);
throw r29;
}
if (r3 === 1) {
env28368[4] = 3;
throw value;
}
if (r3 === 2) {
env28368[3] = 0;
(0, env28368[0][1])(false);
env28368[4] = 3;
break L8;
}
env28368[3] = 0;
(0, env28368[0][1])(false);
}
env28368[4] = 3;
break L18;
} catch (r45) {
env28368[2] = r45;
if (env28368[3] === 0) {
env28368[4] = 3;
throw r45;
}
env28368[1] = 1;
continue;
}
}
return {
value,
done: true
};
}
return {
value: value2,
done: false
};
}
return {
value: void 0,
done: true
};
}
return {
value,
done: true
};
}
});
};
}
function $mk117374($env) {
return () => {
const r4 = $env;
const r2 = $env.$parent[0];
const rules3 = {
...r4[2]
};
rules3[r4[0]] = r4[1];
r2({
rules: rules3,
error: null
});
};
}
function $mk117375($env) {
return () => {
(0, $env.$parent[0])({
error: $env[3]
});
};
}
let c11782_8;
let env11782 = {};
const c11782_7 = {};
const withEqualityFn = createWithEqualityFn((a0, a1) => {
let env23113 = {
$parent: env11782
};
env23113[0] = a0;
env23113[1] = a1;
env23113[2] = async (c28371_0) => {
let convertToRulesByTriggerType2, c28371_2, c28371_3, c28371_5;
let c28371_4 = 0;
const r10 = env23113;
L13: {
try {
let env31042;
c28371_3 = r10;
const r28 = env31042 = {
$parent: r10
};
c28371_2 = r28;
env31042[0] = c28371_0;
env31042[1] = void 0;
env31042[2] = void 0;
env31042[3] = void 0;
if ((function isSyncNeeded(a0) {
const r6 = Date.now();
let r9 = c11782_7[a0];
if (r9 == null) {
r9 = 0;
}
return r6 - r9 > 20000;
})(c28371_0)) {
c11782_7[c28371_0] = Date.now();
c28371_4 = 1;
convertToRulesByTriggerType2 = function convertToRulesByTriggerType(a0) {
const r0 = {};
r0[AutomodTriggerType.KEYWORD] = [];
r0[AutomodTriggerType.ML_SPAM] = [];
r0[AutomodTriggerType.DEFAULT_KEYWORD_LIST] = [];
r0[AutomodTriggerType.MENTION_SPAM] = [];
r0[AutomodTriggerType.USER_PROFILE] = [];
r0[AutomodTriggerType.SERVER_POLICY] = [];
let c31825_0 = r0;
a0.forEach((item) => {
const r5 = c31825_0[item.triggerType];
if (r5 != null) {
r5.push(item);
}
});
return r0;
};
const automodRules = await fetchAutomodRules(c28371_0);
const r59 = c28371_2;
env31042[1] = convertToRulesByTriggerType2(automodRules);
env31042[2] = (0, env23113[1])().rules;
batchUpdates($mk117374(r59));
c28371_4 = 0;
break L13;
}
} catch ($e) {
const r26 = $e;
let r7 = r26;
c28371_5 = r26;
if (c28371_4 !== 0) {
while (true) {
try {
const r79 = c28371_2;
const r81 = c28371_5;
c28371_4 = 0;
env31042[4] = r81;
env31042[3] = new APIError(env31042[4]);
batchUpdates($mk117375(r79));
break L13;
} catch (r77) {
r7 = r77;
c28371_5 = r77;
if (c28371_4 === 0) {
break;
}
}
}
}
throw r7;
}
return void 0;
}
};
return {
rules: {},
fetching: false,
error: null,
updateRule: (a0) => {
let c28369_6;
const { guildId, id, triggerType } = a0;
const rules = (0, env23113[1])().rules;
let r16 = rules[guildId];
if (r16 == null) {
r16 = {};
}
let c28369_5 = r16;
let r8 = r16[triggerType];
if (r8 == null) {
r8 = [];
}
const r19 = r8.some((item) => item.id === id);
const r22 = r8.filter((item) => {
const isDefaultRuleId = _SystemRulesUtils.isDefaultRuleId(item.id);
return isDefaultRuleId ? item.triggerType !== triggerType : !isDefaultRuleId;
});
c28369_6 = r19 ? r22.map((item) => item.id === id ? a0 : item) : [...r22, a0];
batchUpdates(() => {
const r2 = env23113[0];
const rules3 = {
...rules
};
const r10 = {
...c28369_5
};
r10[triggerType] = c28369_6;
rules3[guildId] = r10;
r2({
rules: rules3,
error: null
});
});
},
removeRule: (c28370_0, a1) => {
let c28370_1 = a1;
const rules2 = (0, env23113[1])().rules;
const r4 = rules2[a1];
let c28370_3 = r4;
let c28370_4 = Object.keys(r4).reduce((acc, a1) => {
const r7 = Number(a1);
let r5 = c28370_3[r7];
if (r5 == null) {
r5 = [];
}
acc[r7] = r5.filter((item) => item.id !== c28370_0);
return acc;
}, {});
batchUpdates(() => {
const r2 = env23113[0];
const rules3 = {
...rules2
};
rules3[c28370_1] = c28370_4;
r2({
rules: rules3,
error: null
});
});
},
syncRules: function() {
return env23113[2].apply(this, arguments);
}
};
});
c11782_8 = withEqualityFn;
export { withEqualityFn as useAutomodStore };
export function getRuleCountByTriggerType(a0, a1) {
const r4 = c11782_8.getState().rules[a0];
let r9 = r4 == null ? void 0 : r4[a1];
if (r9 == null) {
r9 = [];
}
return r9.length;
}
export function useSyncAutomodRules(a0) {
let env23112;
const r3 = env23112 = {};
env23112[0] = a0;
const r13 = _slicedToArray(useState(false), 2);
const r5 = r13[0];
env23112[1] = r13[1];
const r21 = _slicedToArray(c11782_8($mk99438(), shallow), 2);
const r22 = r21[0];
env23112[2] = r22;
const r23 = r21[1];
env23112[3] = r23;
return [r5, useCallback(_asyncToGenerator($mk99439(r3)), [a0, r23, r22])];
}
export function useSyncAutomodRulesEffect(a0) {
let env23115;
const r5 = env23115 = {};
env23115[0] = a0;
const r14 = _slicedToArray(useState(false), 2);
const r9 = r14[0];
env23115[1] = r14[1];
const r22 = _slicedToArray(c11782_8($mk99438(), shallow), 2);
const r23 = r22[0];
env23115[2] = r23;
const r24 = r22[1];
env23115[3] = r24;
const [r33, r34] = [r9, useCallback(_asyncToGenerator($mk99439(r5)), [a0, r24, r23])];
let c23114_0 = r34;
useEffect(() => {
(async () => {
await c23114_0();
})();
}, [a0, r34]);
return [r33, r34];
}
export function useAutomodRulesList(c23116_0) {
return c11782_8((a0) => {
const rules3 = a0.rules;
let r5 = c23116_0;
if (r5 == null) {
r5 = EMPTY_STRING_SNOWFLAKE_ID;
}
let rulesByTriggerType = rules3[r5];
if (rulesByTriggerType == null) {
rulesByTriggerType = {};
}
return {
rulesByTriggerType,
updateRule: a0.updateRule,
removeRule: a0.removeRule
};
}, shallow);
}