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

140 lines
3.8 KiB
TypeScript

// Metro module 8352 (f8353).
import GuildStore from "../../stores/GuildStore";
import { EMPTY_STRING_SNOWFLAKE_ID, GuildFeatures } from "../../Constants";
import InstantInviteUtils from "../../utils/InstantInviteUtils";
import { createExperiment } from "../experiments/index";
import { useStateFromStores } from "../../_bundle/defaultAreStatesEqual";
let value, experiment, experiment2;
const getDefaultInviteExpiration = function getDefaultInviteExpiration({ guild, experimentConfig }) {
let defaultMaxAge;
if (guild == null ? void 0 : guild.features.has(GuildFeatures.HUB)) {
return InstantInviteUtils.INVITE_OPTIONS_FOREVER.value;
}
if (experimentConfig != null) {
let defaultMaxAge2 = experimentConfig.defaultMaxAge;
if (defaultMaxAge2 == null) {
defaultMaxAge2 = value;
}
return defaultMaxAge2;
}
let guildId2 = guild?.id;
if (guildId2 == null) {
guildId2 = EMPTY_STRING_SNOWFLAKE_ID;
}
const currentConfig = experiment.getCurrentConfig({
guildId: guildId2,
location: "getDefaultInviteExpiration"
});
if (currentConfig.defaultMaxAge !== value) {
defaultMaxAge = currentConfig.defaultMaxAge;
} else {
defaultMaxAge = experiment2.getCurrentConfig({
guildId: guildId2,
location: "getDefaultInviteExpiration"
}).defaultMaxAge;
if (defaultMaxAge == null) {
defaultMaxAge = value;
}
}
return defaultMaxAge;
};
value = InstantInviteUtils.INVITE_OPTIONS_7_DAYS.value;
experiment = createExperiment({
kind: "guild",
id: "2025-08_default_invite_expiration_guild",
label: "Default Invite Expiration Guild",
defaultConfig: {
defaultMaxAge: 604800
},
treatments: [{
id: 1,
label: "14 days",
config: {
defaultMaxAge: 1209600
}
}, {
id: 2,
label: "30 days",
config: {
defaultMaxAge: 2592000
}
}, {
id: 3,
label: "60 days",
config: {
defaultMaxAge: 5184000
}
}]
});
experiment2 = createExperiment({
kind: "guild",
id: "2026-05_default_invite_expiration_guild_web",
label: "Default Invite Expiration Guild Web",
defaultConfig: {
defaultMaxAge: 604800
},
treatments: [{
id: 1,
label: "14 days",
config: {
defaultMaxAge: 1209600
}
}, {
id: 2,
label: "30 days",
config: {
defaultMaxAge: 2592000
}
}, {
id: 3,
label: "60 days",
config: {
defaultMaxAge: 5184000
}
}]
});
export { value as DEFAULT_MAX_AGE };
export { experiment as DefaultInviteExpirationGuildExperiment };
export { experiment2 as DefaultInviteExpirationGuildWebExperiment };
export { getDefaultInviteExpiration };
export function useDefaultInviteExpiration({ guildId, location: location2 }) {
const guildId2 = guildId == null ? EMPTY_STRING_SNOWFLAKE_ID : guildId;
const experiment3 = experiment.useExperiment({
guildId: guildId2,
location: location2
});
let experimentConfig = experiment2.useExperiment({
guildId: guildId2,
location: location2
});
if (experiment3?.defaultMaxAge !== value) {
experimentConfig = experiment3;
}
const stateFromStores = useStateFromStores([GuildStore], () => GuildStore.getGuild(guildId));
return guildId == null ? null : getDefaultInviteExpiration({
guild: stateFromStores,
experimentConfig
});
}
export function useMaxAgeOptions(a0) {
let guildId2 = a0.guildId;
const location2 = a0.location;
if (guildId2 == null) {
guildId2 = EMPTY_STRING_SNOWFLAKE_ID;
}
const experiment3 = experiment.useExperiment({
guildId: guildId2,
location: location2
});
let r14 = experiment2.useExperiment({
guildId: guildId2,
location: location2
});
if (experiment3?.defaultMaxAge !== value) {
r14 = experiment3;
}
return InstantInviteUtils.getMaxAgeOptions({
includeExperimentalValues: [r14?.defaultMaxAge]
});
}