decord/source/modules/guild_progress/native/GuildProgressUtils.tsx

196 lines
7.5 KiB
TypeScript
Raw Normal View History

2026-08-08 06:10:11 +00:00
// Module ID: 11834
// Function ID: 11835
2026-07-20 16:05:17 +00:00
// Name: useIOSCompletionStates
2026-08-08 06:10:11 +00:00
// Dependencies: [1961, 1891, 3929, 11835, 11829, 676, 4271, 11836, 1988, 11837, 589, 11832, 11946, 1236, 11, 2]
2026-07-20 16:05:17 +00:00
// Exports: createGuildProgress, hideActionSheet, openActionSheet, useGuildProgressStep, useIsEligibleForGuildProgress
2026-08-08 06:10:11 +00:00
// Module 11834 (useIOSCompletionStates)
2026-07-29 08:29:29 +00:00
import comparator from "comparator";
import createGuildRecordFromRust from "createGuildRecordFromRust";
import getUncachedChannelPermissions from "getUncachedChannelPermissions";
import completeStep from "completeStep";
2026-07-23 10:11:24 +00:00
import { Steps } from "Steps";
import ME from "ME";
2026-07-29 08:29:29 +00:00
let c9;
let metroImportAll;
2026-07-23 10:11:24 +00:00
const require = arg1;
2026-07-20 16:05:17 +00:00
function useIOSCompletionStates(guild) {
2026-07-23 10:11:24 +00:00
const _require = guild;
2026-07-29 08:29:29 +00:00
let obj = _require(589);
const items = [getUncachedChannelPermissions];
2026-07-23 10:11:24 +00:00
const stateFromStores = obj.useStateFromStores(items, () => outer1_5.can(outer1_9.ADMINISTRATOR, closure_0));
2026-08-08 06:10:11 +00:00
const guildPersonalized = _require(11832).useGuildPersonalized(guild);
const obj2 = _require(11832);
const guildPopulated = _require(11832).useGuildPopulated(guild);
const obj3 = _require(11832);
2026-07-29 08:29:29 +00:00
const items1 = [comparator];
const stateFromStores1 = _require(589).useStateFromStores(items1, () => outer1_3.getDefaultChannel(guild.id));
const obj4 = _require(589);
2026-07-20 16:05:17 +00:00
if (null != stateFromStores1) {
const items2 = [stateFromStores1];
let items3 = items2;
} else {
items3 = [];
}
2026-08-08 06:10:11 +00:00
const channelsMessaged = _require(11832).useChannelsMessaged(items3);
2026-07-29 08:29:29 +00:00
let tmpResult = tmp(589);
const items4 = [completeStep];
2026-07-20 16:05:17 +00:00
let stateFromStores2 = channelsMessaged;
if (!channelsMessaged) {
2026-07-29 08:29:29 +00:00
stateFromStores2 = tmpResult.useStateFromStores(items4, () => {
2026-07-23 10:11:24 +00:00
const progress = outer1_6.getProgress(guild.id);
2026-07-29 08:29:29 +00:00
let flag;
if (progress != null) {
flag = progress.has(outer1_7.MESSAGE);
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
if (flag == null) {
flag = false;
}
return flag;
2026-07-20 16:05:17 +00:00
});
}
2026-07-29 08:29:29 +00:00
tmpResult = tmp(589);
const items5 = [createGuildRecordFromRust];
const stateFromStores3 = tmpResult.useStateFromStores(items5, () => {
2026-07-23 10:11:24 +00:00
guild = outer1_4.getGuild(guild.id);
2026-07-29 08:29:29 +00:00
let num;
if (guild != null) {
num = guild.premiumSubscriberCount;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
if (num == null) {
num = 0;
2026-07-20 16:05:17 +00:00
}
return num > 0;
});
2026-08-08 06:10:11 +00:00
const obj5 = _require(11832);
2026-07-29 08:29:29 +00:00
const tmp8 = completeStep;
const items6 = [tmp8];
const stateFromStores4 = _require(589).useStateFromStores(items6, () => outer1_6.getProgress(guild.id));
2026-07-20 16:05:17 +00:00
if (stateFromStores) {
2026-08-08 06:10:11 +00:00
const ServerSetupBoostCtaExperiment = tmp(11946).ServerSetupBoostCtaExperiment;
2026-07-29 08:29:29 +00:00
const enabled = ServerSetupBoostCtaExperiment.getConfig({ location: "GuildProgress" }).enabled;
2026-07-20 16:05:17 +00:00
const items7 = [guildPopulated, guildPersonalized, stateFromStores2];
if (enabled) {
items7.push(stateFromStores3);
}
let length = items7.filter((arg0) => arg0).length;
let hasItem;
2026-07-29 08:29:29 +00:00
if (stateFromStores4 != null) {
2026-07-20 16:05:17 +00:00
hasItem = stateFromStores4.has(Steps.COMPLETED);
}
if (!hasItem) {
hasItem = length === length2;
}
2026-07-29 08:29:29 +00:00
obj = { guildPopulated: null, guildPersonalized: null, guildMessaged: null, guildBoosted: null, showBoostStep: null, completed: null, dismissed: null, numFinished: null, totalSteps: null };
obj[0] = guildPopulated;
obj[1] = guildPersonalized;
obj[2] = stateFromStores2;
obj[3] = stateFromStores3;
obj[4] = enabled;
obj[5] = hasItem;
2026-07-20 16:05:17 +00:00
let hasItem1 = null == stateFromStores4;
if (!hasItem1) {
hasItem1 = stateFromStores4.has(Steps.DISMISSED);
}
2026-07-29 08:29:29 +00:00
obj[6] = hasItem1;
2026-07-20 16:05:17 +00:00
if (hasItem) {
length = length2;
}
2026-07-29 08:29:29 +00:00
obj[7] = length;
obj[8] = items7.length;
2026-07-20 16:05:17 +00:00
return obj;
} else {
2026-07-23 10:11:24 +00:00
return { guildPopulated: false, guildPersonalized: false, guildMessaged: false, guildChannelCreated: false, guildBoosted: false, showBoostStep: false, completed: true, dismissed: true, numFinished: 0, totalSteps: 0 };
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
const tmpResult1 = _require(589);
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
({ WELCOME_OLD_GUILD_AGE_THRESHOLD: metroImportAll, Permissions: c9 } = ME);
const result = require("getUncachedChannelPermissions").fileFinishedImporting("modules/guild_progress/native/GuildProgressUtils.tsx");
2026-07-20 16:05:17 +00:00
export const MIN_PROGRESS_PERCENT = 3;
export const PROGRESS_BACKGROUND_COLOR = "rgba(78, 93, 148, 0.3)";
export const openActionSheet = function openActionSheet(guild) {
2026-08-08 06:10:11 +00:00
let obj = importDefault(4271);
2026-07-20 16:05:17 +00:00
obj = { guild };
2026-08-08 06:10:11 +00:00
obj.openLazy(require(1988) /* asyncRequireImpl */(11836, dependencyMap.paths), "guild-progress-" + guild.id, obj);
2026-07-20 16:05:17 +00:00
};
export const hideActionSheet = function hideActionSheet(arg0) {
2026-08-08 06:10:11 +00:00
importDefault(4271).hideActionSheet("guild-progress-" + arg0);
2026-07-20 16:05:17 +00:00
};
2026-07-29 08:29:29 +00:00
export const createGuildProgress = function createGuildProgress(closure_0) {
if (null != guild.getGuild(closure_0)) {
2026-08-08 06:10:11 +00:00
const progress = importDefault(11837).createProgress(closure_0);
const obj = importDefault(11837);
2026-07-20 16:05:17 +00:00
}
};
export { useIOSCompletionStates };
export const useGuildProgressStep = function useGuildProgressStep(guild) {
let completed;
let guildBoosted;
let guildMessaged;
let guildPersonalized;
let showBoostStep;
const tmp = useIOSCompletionStates(guild);
const totalSteps = tmp.totalSteps;
let stringResult = null;
({ guildPersonalized, guildMessaged, guildBoosted, showBoostStep, completed } = tmp);
if (!tmp.guildPopulated) {
2026-07-29 08:29:29 +00:00
const intl = require(1236) /* getSystemLocale */.intl;
stringResult = intl.string(require(1236) /* getSystemLocale */.t.q9n0Ta);
2026-07-20 16:05:17 +00:00
}
const items = [stringResult, , ];
let stringResult1 = null;
if (!guildPersonalized) {
2026-07-29 08:29:29 +00:00
const intl2 = require(1236) /* getSystemLocale */.intl;
stringResult1 = intl2.string(require(1236) /* getSystemLocale */.t.DWB2YZ);
2026-07-20 16:05:17 +00:00
}
items[1] = stringResult1;
let stringResult2 = null;
if (!guildMessaged) {
2026-07-29 08:29:29 +00:00
const intl3 = require(1236) /* getSystemLocale */.intl;
stringResult2 = intl3.string(require(1236) /* getSystemLocale */.t.dNktpr);
2026-07-20 16:05:17 +00:00
}
items[2] = stringResult2;
if (showBoostStep) {
let stringResult3 = null;
if (!guildBoosted) {
2026-07-29 08:29:29 +00:00
const intl4 = require(1236) /* getSystemLocale */.intl;
stringResult3 = intl4.string(require(1236) /* getSystemLocale */.t["6Qbqxw"]);
2026-07-20 16:05:17 +00:00
}
items.push(stringResult3);
}
const length = items.filter((arg0) => null == arg0).length;
let found = items.find((arg0) => null != arg0);
2026-07-29 08:29:29 +00:00
if (found == null) {
const intl5 = require(1236) /* getSystemLocale */.intl;
found = intl5.string(require(1236) /* getSystemLocale */.t["+Gyklt"]);
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
let obj = { percentComplete: Math.max(3, 100 * length / totalSteps), subtitle: null, completed: null };
2026-07-20 16:05:17 +00:00
if (length < totalSteps) {
2026-07-29 08:29:29 +00:00
const intl7 = require(1236) /* getSystemLocale */.intl;
obj = { currStep: null, total: null, step: null };
obj[0] = length + 1;
obj[1] = totalSteps;
obj[2] = found;
let formatToPlainStringResult = intl7.formatToPlainString(require(1236) /* getSystemLocale */.t.zhHW5c, obj);
2026-07-20 16:05:17 +00:00
} else {
2026-07-29 08:29:29 +00:00
const intl6 = require(1236) /* getSystemLocale */.intl;
formatToPlainStringResult = intl6.string(require(1236) /* getSystemLocale */.t["+Gyklt"]);
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
obj[1] = formatToPlainStringResult;
obj[2] = completed;
2026-07-20 16:05:17 +00:00
return obj;
};
export const useIsEligibleForGuildProgress = function useIsEligibleForGuildProgress(guild) {
2026-07-23 10:11:24 +00:00
const _require = guild;
2026-07-29 08:29:29 +00:00
const items = [getUncachedChannelPermissions];
let stateFromStores = _require(589).useStateFromStores(items, () => outer1_5.can(outer1_9.ADMINISTRATOR, closure_0));
const obj = _require(589);
const obj2 = importDefault(11);
2026-07-20 16:05:17 +00:00
if (stateFromStores) {
stateFromStores = extractTimestampResult >= Date.now() - closure_8;
}
return stateFromStores;
};