// Metro module 11572 (f11573). import { useRef, useEffect, useCallback } from "react"; import { ScrollView, View } from "react-native"; import { BoostInfoType, GuildPowerupType } from "../constants/GuildPowerupsConstants"; import { createStyles } from "../../../../design/components/Styles/native/createStyles"; import Module712 from "../../../../_bundle/Module712"; import { useGameServerEnabled } from "../../game_server/GameServerExperiment"; import useLoadGuildPowerups from "../hooks/useLoadGuildPowerups"; import { useAutoDismissGuildPowerupsNotifications } from "../hooks/useGuildPowerupsNotifications"; import useShowGuildPowerupRollbackSheet from "./hooks/useShowGuildPowerupRollbackSheet"; import useSafeAreaInsets_native from "../../../safe_area/useSafeAreaInsets.native"; import useAnalyticsLocations, { AnalyticsLocationProvider } from "../../../app_analytics/useAnalyticsLocations"; import { useBuildGuildPowerupsSections } from "../utils/powerupListing"; import openGuildPowerupsBottomSheet from "./utils/openGuildPowerupsBottomSheet"; import openGuildPowerupsMultiPerkBottomSheet from "./utils/openGuildPowerupsMultiPerkBottomSheet"; import ModalActionCreators from "../../../../actions/ModalActionCreators"; import useGuildPowerupsBoostCount from "../hooks/useGuildPowerupsBoostCount"; import { Header } from "../../../../_bundle/Module5150"; import { intl } from "../../../../intl/index.native"; import GuildPowerups_messages from "../GuildPowerups.messages"; import { GenericHeaderTitle } from "../../../main_tabs_v2/native/shared_components/HeaderShared"; import { getHeaderCloseButton } from "../../../../design/components/Navigator/native/NavigatorHeader.native"; import GuildPowerupsBoostInfo from "./GuildPowerupsBoostInfo"; import GuildPowerupsNotificationContainer from "./GuildPowerupsNotificationContainer"; import GuildPowerupsLevelsSection from "./GuildPowerupsLevelsSection"; import GuildPowerupsPerksSection from "./GuildPowerupsPerksSection"; import GuildPowerupsRecentActivitySection from "./GuildPowerupsRecentActivitySection"; import { GuildPowerupsBoostButton } from "./GuildPowerupsBoostButton"; const useStyles = createStyles({ container: { flex: 1, backgroundColor: Module712.colors.BACKGROUND_BASE_LOW }, headerContainer: { paddingHorizontal: Module712.space.PX_16, paddingTop: Module712.space.PX_8 }, boostInfoContainer: { flexDirection: "row", justifyContent: "space-between", borderWidth: 1, borderStyle: "solid", borderColor: Module712.colors.BORDER_SUBTLE, marginBottom: Module712.space.PX_16 }, boostInfoSeparator: { width: 1, height: "100%", backgroundColor: Module712.colors.BORDER_SUBTLE }, scrollView: { paddingBottom: Module712.space.PX_96 }, boostButtonContainer: { paddingHorizontal: Module712.space.PX_16, position: "absolute", bottom: 0, left: 0, right: 0 } }); export default function GuildPowerupsModal(props) { const { guildId, analyticsLocation, autoOpenPerkId, autoOpenRequestId } = props; const gameServerEnabled = useGameServerEnabled(guildId, "GuildPowerupsModal"); useLoadGuildPowerups(guildId); useAutoDismissGuildPowerupsNotifications(guildId); useShowGuildPowerupRollbackSheet(guildId, "GuildPowerupsModal", autoOpenPerkId != null); const bottom = useSafeAreaInsets_native().bottom; const styles = useStyles(); const analyticsLocations = useAnalyticsLocations.apply(void 0, [...analyticsLocation != null ? [analyticsLocation] : []]).analyticsLocations; const buildGuildPowerupsSections = useBuildGuildPowerupsSections(guildId, gameServerEnabled); const ref = useRef(void 0); useEffect(() => { if (autoOpenPerkId != null && autoOpenRequestId != null && ref.current !== autoOpenRequestId) { for (const buildGuildPowerupsSection of buildGuildPowerupsSections) { L15: { done38: { for (const listing of buildGuildPowerupsSection.listings) { if (!(listing.type === "singlePerk" && listing.powerup.skuId === autoOpenPerkId)) { if (listing.type !== "multiPerk") { continue; } if (listing.group !== autoOpenPerkId && !listing.powerups.some((powerup) => powerup.skuId === autoOpenPerkId)) { continue; } ref.current = autoOpenRequestId; openGuildPowerupsMultiPerkBottomSheet({ guildId, listing, onDismiss: () => ModalActionCreators.pop() }); break L15; } ref.current = autoOpenRequestId; openGuildPowerupsBottomSheet({ guildId, powerup: listing.powerup }); break done38; } continue; } return void 0; } return void 0; } } }, [autoOpenPerkId, autoOpenRequestId, guildId, buildGuildPowerupsSections]); const callback = useCallback(() => { ModalActionCreators.pop(); }, []); const guildPowerupsBoostCount = useGuildPowerupsBoostCount(guildId); const { available, spent, total } = guildPowerupsBoostCount; return
} headerTitleAlign="center" headerLeft={getHeaderCloseButton(callback)} /> {buildGuildPowerupsSections.map((buildGuildPowerupsSection) => { const type = buildGuildPowerupsSection.type; if (GuildPowerupType.LEVEL === type) { return ; } if (GuildPowerupType.PERK === type) { return ; } return null; })} ; };