// Module ID: 11520 // Function ID: 89726 // Name: maybeGetLevelUnlockedPopoutDCF // Dependencies: [57, 31, 1838, 4039, 11521, 4018, 4019, 653, 1345, 4023, 11523, 11524, 4022, 11525, 1327, 1334, 4042, 4038, 11526, 1336, 624, 11522, 11530, 4061, 4060, 11532, 11533, 11534, 11535, 11537, 11538, 11539, 11517, 2] // Exports: useAutoDismissGuildPowerupsNotifications // Module 11520 (maybeGetLevelUnlockedPopoutDCF) import _slicedToArray from "_slicedToArray"; import useBadgeableMarketingVersion from "useBadgeableMarketingVersion"; import _createForOfIteratorHelperLoose from "_createForOfIteratorHelperLoose"; import _isNativeReflectConstruct from "_isNativeReflectConstruct"; import closure_7 from "_isNativeReflectConstruct"; import closure_8 from "_isNativeReflectConstruct"; import BoostedGuildTiers from "BoostedGuildTiers"; import ME from "ME"; import { ContentDismissActionType } from "ContentDismissActionType"; let closure_10; let closure_11; let closure_12; let closure_13; let closure_14; let closure_15; let closure_16; let closure_17; let closure_9; const require = arg1; function maybeGetLevelUnlockedPopoutDCF(outer1_0) { const _require = outer1_0; let closure_1 = arg1; const ReverseOrderedTiers = _require(4023).ReverseOrderedTiers; const found = ReverseOrderedTiers.find((arg0) => { let tmp2; if (null != outer1_9[arg0]) { tmp2 = unlockedPowerups.unlockedPowerups[tmp]; } let tmp4 = null != tmp2; if (tmp4) { tmp4 = tmp2.user_id !== outer1_11; } return tmp4; }); if (null != found) { const dependencyMap = tmp8; if (null != table2[found]) { if (!obj2.isContentDismissed(tmp8, outer1_0)) { let tmp4; if (null != table[found]) { tmp4 = arg1.allPowerups[tmp3]; } if (null != tmp4) { const obj = { type: _require(11524).GuildPowerupNotificationPopoutType.LEVEL_REACHED, powerup: tmp4, markAsDismissed(AUTO_DISMISS) { const result = outer1_0(tmp8[10]).markContentAsDismissed(tmp8, outer1_0, true, AUTO_DISMISS); } }; return obj; } } obj2 = _require(11523); } } } function maybeGetPerkPurchaseablePopoutDCF(guildId) { const _require = guildId; let closure_1 = arg1; const dependencyMap = arg2; let _slicedToArray = arg3; guild = guild.getGuild(guildId); let premiumTier; if (null != guild) { premiumTier = guild.premiumTier; } if (null == premiumTier) { premiumTier = constants.NONE; } const arr = Array.from(closure_12.values()); const found = Array.from(closure_12.values()).flatMap((arr) => { if (arr.length > 0) { if (!arr.some((arg0) => { if (null != outer1_1.unlockedPowerups[arg0]) { return true; } else { let tmp3 = null != tmp2; if (tmp3) { tmp3 = outer1_4 >= tmp2; } return tmp3; } })) { const mapped = arr.map((arg0) => { if (arg0 === callback(4022).GUILD_POWERUP_GUILD_THEME_SKU_ID) { if (!outer1_3) { return null; } } let tmp4 = null; if (null != outer1_1.allPowerups[arg0]) { tmp4 = null; if (outer1_2 >= tmp3.cost) { const dependencies = tmp3.dependencies; let tmp6 = null; if (dependencies.every((arg0) => null != outer2_1.unlockedPowerups[arg0])) { let tmp10 = null; if (!obj.isGuildPowerupRollbackEnabled(outer1_0, tmp3, "maybeGetPerkPurchaseablePopoutDCF")) { tmp10 = tmp3; } tmp6 = tmp10; obj = callback(11525); } tmp4 = tmp6; } } return tmp4; }); } return []; } }).filter(_require(1327).isNotNullish); if (0 !== found.length) { if (1 === found.length) { if (!obj2.isContentDismissed(_require(1334).DismissibleGuildContent.GUILD_POWERUP_SINGLE_SKU_PURCHASE_COACHMARK, guildId)) { let obj = { type: _require(11524).GuildPowerupNotificationPopoutType.PERKS_PURCHASABLE, powerups: found, markAsDismissed(AUTO_DISMISS) { const result = guildId(11523).markContentAsDismissed(guildId(1334).DismissibleGuildContent.GUILD_POWERUP_SINGLE_SKU_PURCHASE_COACHMARK, guildId, true, AUTO_DISMISS); } }; } return obj; } let tmp8; if (found.length > 1) { if (!obj4.isContentDismissed(_require(1334).DismissibleGuildContent.GUILD_POWERUP_CHOICE_SKU_PURCHASE_COACHMARK, guildId)) { obj = { type: _require(11524).GuildPowerupNotificationPopoutType.PERKS_PURCHASABLE, powerups: found, markAsDismissed(AUTO_DISMISS) { const result = guildId(11523).markContentAsDismissed(guildId(1334).DismissibleGuildContent.GUILD_POWERUP_CHOICE_SKU_PURCHASE_COACHMARK, guildId, true, AUTO_DISMISS); } }; tmp8 = obj; } obj4 = _require(11523); } obj = tmp8; } } function maybeGetGameServerHostingGuildEligiblePopoutDCF(guildId) { const _require = guildId; let obj = _require(4042); if (obj.getGameServerEnabled(guildId, "maybeGetGameServerHostingGuildEligiblePopoutDCF")) { if (!arg1) { if (null != arg3) { if (arg2 >= arg3) { if (!obj2.isContentDismissed(_require(1334).DismissibleGuildContent.GAME_SERVER_HOSTING_GUILD_ELIGIBLE_COACHMARK, guildId)) { obj = { type: _require(11524).GuildPowerupNotificationPopoutType.GAME_SERVER_HOSTING_GUILD_ELIGIBLE, markAsDismissed(AUTO_DISMISS) { const result = guildId(outer1_2[10]).markContentAsDismissed(guildId(outer1_2[15]).DismissibleGuildContent.GAME_SERVER_HOSTING_GUILD_ELIGIBLE_COACHMARK, guildId, true, AUTO_DISMISS); } }; return obj; } obj2 = _require(11523); } } } } } function useGuildPowerupsNotificationIndicator(arg0, arg1, lastBoostCount) { const _require = arg0; const importDefault = arg1; const dependencyMap = lastBoostCount; const available = importDefault(4038)(arg0).available; const tmp = importDefault(11526)(arg0, "useGuildPowerupsNotificationIndicator"); let dismissibleContent = null; if (null != tmp) { dismissibleContent = tmp.dismissibleContent; } const tmp3 = null != tmp && !_require(1336).useIsSingleUseGuildDismissibleContentDismissed(dismissibleContent, arg0); const React = tmp3; let obj = _require(1336); let items = [_isNativeReflectConstruct]; const stateFromStores = _require(624).useStateFromStores(items, () => outer1_6.getStateForGuild(closure_0)); const items1 = [available, , , , , ]; lastBoostCount = undefined; if (null != lastBoostCount) { lastBoostCount = lastBoostCount.lastBoostCount; } items1[1] = lastBoostCount; let prop; if (null != lastBoostCount) { prop = lastBoostCount.lastSeenWarningNotification; } items1[2] = prop; items1[3] = arg1; items1[4] = tmp3; let entitlements; if (null != stateFromStores) { entitlements = stateFromStores.entitlements; } items1[5] = entitlements; return React.useMemo(() => { if (null == unlockedPowerups) { let obj = { indicator: undefined, showUnread: false }; return obj; } else { const _Object = Object; const items = []; let arraySpreadResult = HermesBuiltin.arraySpread(Object.values(unlockedPowerups.unlockedPowerups), 0); let entitlements; if (null != stateFromStores) { entitlements = stateFromStores.entitlements; } if (null == entitlements) { entitlements = {}; } arraySpreadResult = HermesBuiltin.arraySpread(Object.values(entitlements), arraySpreadResult); const expiringGuildEntitlements = callback(lastBoostCount[21]).getExpiringGuildEntitlements(items); let prop; if (null != lastBoostCount) { prop = lastBoostCount.lastSeenWarningNotification; } if (null == prop) { const _Date = Date; prop = Date.now(); } let _Date2 = Date; let ends_at; if (null != expiringGuildEntitlements[expiringGuildEntitlements.length - 1]) { ends_at = tmp8.ends_at; } const prototype = _Date2.prototype; _Date2 = new _Date2(ends_at); lastBoostCount = undefined; const time = _Date2.getTime(); if (null != lastBoostCount) { lastBoostCount = lastBoostCount.lastBoostCount; } let num2 = 0; if (null != lastBoostCount) { num2 = lastBoostCount; } const diff = available - num2; if (!tmp18) { if (!useBadgeableMarketingVersion) { if (available !== num2) { if (diff > 0) { obj = {}; const obj1 = { type: callback(lastBoostCount[11]).GuildPowerupNotificationIndicatorType.UNREAD, count: diff }; obj.indicator = obj1; obj.showUnread = true; let obj2 = obj; } } obj2 = { indicator: undefined, showUnread: false }; } return obj2; } const obj3 = {}; const obj4 = { type: callback(lastBoostCount[11]).GuildPowerupNotificationIndicatorType.WARNING }; obj3.indicator = obj4; obj3.showUnread = true; obj2 = obj3; const obj9 = callback(lastBoostCount[21]); tmp18 = expiringGuildEntitlements.length > 0 && prop < time; } }, items1); } function useGuildPowerupsChannelListPopout(guildId) { const _require = guildId; const importDefault = arg1; const tmp = callback(_require(11530).usePerksCoachmarkDCF(null != arg1), 2); const dependencyMap = tmp2; const tmp3 = tmp[0] === _require(1334).DismissibleContent.GUILD_POWERUP_PERKS_COACHMARK; callback = tmp3; const available = importDefault(4038)(guildId).available; let obj = _require(11530); const items = [stateFromStores]; stateFromStores = _require(624).useStateFromStores(items, () => { const guild = stateFromStores.getGuild(closure_0); let hasItem; if (null != guild) { const features = guild.features; hasItem = features.has(tmp27.GAME_SERVERS); } return null != hasItem && hasItem; }); let obj2 = _require(624); const items1 = [stateFromStores1]; stateFromStores1 = _require(624).useStateFromStores(items1, () => stateFromStores1.getLowestGameCostForGuild(closure_0)); let obj3 = _require(624); let serverThemeEnabled = _require(4061).useServerThemeEnabled(guildId, "useGuildPowerupsChannelListPopout"); let obj4 = _require(4061); if (serverThemeEnabled) { serverThemeEnabled = obj5.useServerThemeUserEnabled("useGuildPowerupsChannelListPopout"); } const tmp7 = importDefault(11532)(guildId, arg1); let closure_8 = tmp7; obj5 = _require(4060); let tmp8 = null != arg1; if (tmp8) { tmp8 = !tmp3; } let tmp9 = callback(_require(11530).useNewPerkAvailableCoachmarkDCF(tmp8, tmp7), 2); let closure_9 = tmp10; const tmp11 = tmp9[0] === _require(1334).DismissibleContent.GUILD_POWERUP_NEW_PERK_AVAILABLE_COACHMARK; let closure_10 = tmp11; let tmp12 = importDefault(11533)(guildId); let closure_11 = tmp12; const obj6 = _require(11530); const tmp13 = importDefault(11534)(); let tmp14 = null != arg1; if (tmp14) { tmp14 = !tmp3; } if (tmp14) { tmp14 = !tmp11; } if (tmp14) { tmp14 = null != tmp12; } if (tmp14) { tmp14 = tmp13; } let tmp15 = callback(_require(11530).useBoostToUnlockCoachmarkDCF(tmp14, guildId), 2); let closure_12 = tmp16; const tmp17 = tmp15[0] === _require(1334).DismissibleContent.BOOST_TO_UNLOCK_COACHMARK; let closure_13 = tmp17; const tmp18 = importDefault(11535)(guildId); let closure_14 = tmp18; const obj7 = _require(11530); let tmp19 = null != arg1; if (tmp19) { tmp19 = !tmp3; } if (tmp19) { tmp19 = !tmp11; } if (tmp19) { tmp19 = !tmp17; } if (tmp19) { tmp19 = null != tmp18; } const tmp20 = callback(_require(11530).useExpiringPowerupCoachmarkDCF(tmp19, guildId), 2); let closure_15 = tmp21; let tmp22 = tmp20[0] === _require(1334).DismissibleContent.EXPIRING_POWERUP_COACHMARK; let closure_16 = tmp22; const obj8 = _require(11530); const gameServerEnabled = _require(4042).getGameServerEnabled(guildId, "useGuildPowerupsChannelListPopout"); const obj9 = _require(4042); const isNewGamesCoachmarkEnabled = _require(11537).useIsNewGamesCoachmarkEnabled("useGuildPowerupsChannelListPopout"); const obj10 = _require(11537); let tmp25 = null != arg1; if (tmp25) { tmp25 = gameServerEnabled; } if (tmp25) { tmp25 = isNewGamesCoachmarkEnabled; } const tmp26 = callback(_require(11530).useNewGamesCoachmarkDC(tmp25), 2); let closure_17 = tmp27; const tmp28 = tmp26[0] === _require(1334).DismissibleContent.GAME_SERVER_NEW_GAMES_COACHMARK; const ContentDismissActionType = tmp28; const obj11 = _require(11530); const isGameServerPricingEnabled = _require(11538).useIsGameServerPricingEnabled(guildId, "useGuildPowerupsChannelListPopout"); const obj12 = _require(11538); let tmp30 = null != arg1; if (tmp30) { tmp30 = !stateFromStores; } if (tmp30) { tmp30 = gameServerEnabled; } if (tmp30) { tmp30 = isGameServerPricingEnabled; } const tmp31 = callback(_require(11530).useGameServerPricingCoachmarkDCF(tmp30), 2); const maybeGetLevelUnlockedPopoutDCF = tmp32; const tmp33 = tmp31[0] === _require(1334).DismissibleContent.GAME_SERVER_PRICING_CHANGE_COACHMARK; const maybeGetPerkPurchaseablePopoutDCF = tmp33; const items2 = [guildId, arg1, tmp3, tmp11, tmp28, tmp33, tmp17, tmp22, available, stateFromStores, stateFromStores1, serverThemeEnabled]; const memo = available.useMemo(() => { if (null != closure_1) { if (!_slicedToArray) { if (!closure_10) { if (!closure_18) { if (!tmp33) { if (!closure_13) { if (!closure_16) { const tmp9 = tmp32(closure_0, closure_1); if (null != tmp9) { return tmp9; } else { const tmp15 = tmp33(closure_0, closure_1, available, serverThemeEnabled); if (null != tmp15) { return tmp15; } else { const tmp21 = memo(closure_0, stateFromStores, available, stateFromStores1); let tmp22; if (null != tmp21) { tmp22 = tmp21; } return tmp22; } } } } } } } } } }, items2); const obj13 = _require(11530); const tmp35 = callback(_require(11530).useGuildPowerupNotificationDCF(null != memo), 2); const first = tmp35[0]; const useGuildPowerupsChannelListPopout = tmp37; const items3 = [arg1, tmp3, tmp[1], memo, first, tmp35[1], tmp11, tmp9[1], tmp7, tmp17, tmp12, tmp15[1], tmp22, tmp18, tmp20[1], tmp28, tmp26[1], tmp33, tmp31[1]]; return available.useMemo(() => { if (null != allPowerups) { if (_slicedToArray) { let obj = { type: guildId(tmp2[11]).GuildPowerupNotificationPopoutType.PERKS_AVAILABLE, markAsDismissed: tmp2 }; return obj; } else if (closure_10) { if (closure_8 === tmp17.GAME_SERVER_HOSTING) { obj = { type: guildId(tmp2[11]).GuildPowerupNotificationPopoutType.GAME_SERVER_HOSTING_AVAILABLE, markAsDismissed: closure_9 }; return obj; } else { guildId = tmp18[closure_8]; const _Object = Object; const values = Object.values(allPowerups.allPowerups); const found = values.filter((skuId) => set.has(skuId.skuId)); if (0 !== found.length) { const obj1 = { powerups: found, type: guildId(tmp2[11]).GuildPowerupNotificationPopoutType.NEW_PERK_AVAILABLE, markAsDismissed: closure_9 }; return obj1; } } } else { if (tmp17) { if (null != closure_11) { const obj2 = { type: guildId(tmp2[11]).GuildPowerupNotificationPopoutType.BOOST_TO_UNLOCK, powerup: closure_11, markAsDismissed: closure_12 }; let tmp12 = obj2; } return tmp12; } if (closure_16) { if (null != tmp18) { const obj3 = { type: guildId(tmp2[11]).GuildPowerupNotificationPopoutType.EXPIRING_PERK, featuredExpiringPowerup: tmp18, markAsDismissed: closure_15 }; tmp12 = obj3; } } if (closure_18) { const obj4 = { type: guildId(tmp2[11]).GuildPowerupNotificationPopoutType.GAME_SERVER_NEW_GAMES, markAsDismissed: closure_17 }; tmp12 = obj4; } else if (closure_20) { const obj5 = { type: guildId(tmp2[11]).GuildPowerupNotificationPopoutType.GAME_SERVER_PRICING_CHANGE, markAsDismissed: closure_19 }; tmp12 = obj5; } else if (first === guildId(tmp2[15]).DismissibleContent.GUILD_POWERUP_NOTIFICATION) { if (null != memo) { obj = {}; const merged = Object.assign(memo); obj["markAsDismissed"] = function markAsDismissed(arg0) { outer1_23(arg0); outer1_21.markAsDismissed(arg0); }; tmp12 = obj; } } } } }, items3); } function useGuildPowerupsNotifications(guildId) { let indicator; let showUnread; const _require = guildId; let obj = _require(624); const items = [closure_7]; const items1 = [guildId]; const stateFromStores = obj.useStateFromStores(items, () => outer1_7.getNotificationStateForGuild(closure_0), items1); const items2 = [closure_8]; const stateFromStores1 = _require(624).useStateFromStores(items2, () => outer1_8.getStateForGuild(closure_0)); let tmp4; if (null != stateFromStores1) { tmp4 = stateFromStores1; } const obj2 = _require(624); const tmp3 = useGuildPowerupsNotificationIndicator; ({ indicator, showUnread } = useGuildPowerupsNotificationIndicator(guildId, tmp4, stateFromStores)); let tmp7; if (null != stateFromStores1) { tmp7 = stateFromStores1; } const tmp6Result = useGuildPowerupsChannelListPopout(guildId, tmp7); if (null !== stateFromStores1) { obj = { indicator, showUnread, popout: tmp6Result }; return obj; } } ({ BOOSTING_TIER_TO_LEVEL_SKU_ID: closure_9, BOOSTING_TIER_TO_LEVEL_UNLOCKED_DC: closure_10, GUILD_POWERUP_MIGRATION_USER_ID: closure_11, GUILD_POWERUP_NEW_PERK_GROUPS: closure_12, GuildPowerupNewPerkMarketingVersion: closure_13, NEW_PERK_MARKETING_VERSION_TO_POWERUP_SKU_ID_SET: closure_14, POWERUPS_INCLUDED_IN_LEVEL: closure_15 } = BoostedGuildTiers); ({ BoostedGuildTiers: closure_16, GuildFeatures: closure_17 } = ME); let result = require("_createForOfIteratorHelperLoose").fileFinishedImporting("modules/premium/powerups/hooks/useGuildPowerupsNotifications.tsx"); export default useGuildPowerupsNotifications; export { maybeGetLevelUnlockedPopoutDCF }; export { maybeGetPerkPurchaseablePopoutDCF }; export { maybeGetGameServerHostingGuildEligiblePopoutDCF }; export { useGuildPowerupsNotificationIndicator }; export { useGuildPowerupsChannelListPopout }; export const useAutoDismissGuildPowerupsNotifications = function useAutoDismissGuildPowerupsNotifications(guildId) { const _require = guildId; let items = [closure_8]; const stateFromStores = _require(624).useStateFromStores(items, () => outer1_8.getStateForGuild(closure_0)); const tmp2 = useGuildPowerupsNotifications(guildId); const dependencyMap = tmp2; let obj = _require(624); const autoDismissGuildPowerupsNewBadge = _require(11539).useAutoDismissGuildPowerupsNewBadge(guildId); const items1 = [guildId]; const effect = React.useEffect(() => { const result = guildId(tmp2[32]).guildPowerupsAckNotification(guildId); }, items1); const items2 = [tmp2]; const effect1 = React.useEffect(() => { const items = [guildId(tmp2[11]).GuildPowerupNotificationPopoutType.BOOST_TO_UNLOCK, guildId(tmp2[11]).GuildPowerupNotificationPopoutType.EXPIRING_PERK]; let type; if (null != tmp2) { const popout = tmp2.popout; if (null != popout) { type = popout.type; } } let hasItem = null != type; if (hasItem) { hasItem = set.has(tmp2.popout.type); } if (!hasItem) { hasItem = null == tmp2; } if (!hasItem) { const popout2 = tmp2.popout; hasItem = null == popout2; const obj2 = popout2; } if (!hasItem) { obj2.markAsDismissed(outer1_18.AUTO_DISMISS); } }, items2); const items3 = [guildId, stateFromStores]; const effect2 = React.useEffect(() => { if (null != stateFromStores) { const ReverseOrderedTiers = guildId(tmp2[9]).ReverseOrderedTiers; const item = ReverseOrderedTiers.forEach((arg0) => { if (null != outer2_9[arg0]) { if (null != outer1_1.unlockedPowerups[tmp]) { if (null != outer2_10[arg0]) { const obj = callback(table[10]); const result = obj.markContentAsDismissed(tmp4, outer1_0, false, outer2_18.AUTO_DISMISS); } } } }); } }, items3); };