// Metro module 14146 (f14147). import { useMemo, useCallback, useEffect } from "react"; import { View } from "react-native"; import AccessibilityStore from "../../../a11y/AccessibilityStore"; import UserStore from "../../../../stores/UserStore"; import QuestStore from "../../QuestStore"; import { ACTION_SHEET_MINIMUM_BOTTOM_PADDING } from "../../../action_sheet/native/ActionSheetConstants"; import Module712 from "../../../../_bundle/Module712"; import { createStyles } from "../../../../design/components/Styles/native/createStyles"; import { QuestContent, TaskPlatformScreen } from "../../QuestTypes"; import { useProgressState, QuestProgressState, useQuestTaskDetails, useIsQuestProgressing, useTaskPlatformScreen, useConnectedAccounts } from "../../hooks/QuestHooks"; import * as _QuestRewardUtils from "../../utils/QuestRewardUtils"; import { getDefaultReward } from "../../utils/QuestCopyUtils"; import { useFetchCollectiblesProduct } from "../../../collectibles/hooks/useFetchCollectiblesProduct"; import { useStateFromStoresObject, useStateFromStores } from "../../../../_bundle/Module589"; import { useToken } from "../../../../design/tokens/native/useToken"; import tinycolor from "../../../../_bundle/tinycolor"; import { handleRewardClaimThenView, getPrimaryCtaIcon } from "../QuestUtils.native"; import { useWatchTaskPressHandler, useMobileActivityPressHandler } from "./QuestBottomSheetHooks"; import { Button } from "../../../../design/components/Button/native/Button.native"; import { getVideoQuestWatchCtaText } from "../../utils/MobileQuestVideoWatchCtaCopy"; import { supportedConsoles } from "../../utils/QuestPlatformUtils"; import { useHasWatchVideoOnMobileTasks, useMobileActivityQuest } from "../QuestHooks.native"; import { usePrimaryCtaCopy } from "../../hooks/QuestCopyHooks"; import { QuestBottomSheetStep } from "./QuestBottomSheet"; import { IconButton } from "../../../../design/components/Button/native/IconButton.native"; import { intl, t } from "../../../../intl/index.native"; import { ArrowLargeLeftIcon } from "../../../../design/components/Icon/native/redesign/generated/ArrowLargeLeftIcon"; import { useTrackQuestContentClickedWithImpression } from "../../lib/analytics/AnalyticsHooks"; import { useQuestImpressionId } from "../../lib/analytics/ContentImpressionTrackerHooks"; import { RefreshIcon } from "../../../../design/components/Icon/native/redesign/generated/RefreshIcon"; import { shouldMigrateToAdAnalyticsInterface, AdAnalyticsInterfaceExperimentStep } from "../../experiments/AdAnalyticsInterfaceExperiment"; import { captureAdUserAction } from "../../../ads/analytics/captureAdUserAction"; import { AdUserActionType } from "../../../ads/analytics/captureAdUserActionTypes"; import { AdCreativeType } from "../../../../_bundle/Module6013"; import { QuestContentCTA } from "../../lib/analytics/AnalyticsTypes"; import useSafeAreaInsets_native from "../../../safe_area/useSafeAreaInsets.native"; import useWindowDimensions_native from "../../../screen/useWindowDimensions.native"; import * as _ReanimatedRexport from "../../../reanimated/ReanimatedRexport"; import ReanimatedRexport, { useSharedValue, useAnimatedStyle } from "../../../reanimated/ReanimatedRexport"; import { withTiming } from "../../../../design/animation/reanimated/timing/timing"; import { LARGE_BUTTON_HEIGHT } from "../../../../design/components/Button/native/ButtonConstants.native"; let PX_16, useStyles, WatchTaskButton, NextButton, DefibButton, ClaimButton, __initData, __initData2, AnimatedFooter; const useQuestRewardClaimHandler = function useQuestRewardClaimHandler(a0) { let product, isFetching, isFetchingRewardCode, stateFromStores, stateFromStores2; const { quest, hideActionSheet: hideActionSheet2 = true } = a0; const hideActionSheet = hideActionSheet2; let questContent = a0.questContent; if (questContent === void 0) { questContent = QuestContent.QUEST_BOTTOM_SHEET; } const QUEST_BOTTOM_SHEET = questContent; const { onSuccess, sourceQuestContent } = a0; product = void 0; isFetching = void 0; isFetchingRewardCode = void 0; stateFromStores = void 0; stateFromStores2 = void 0; const progressState = useProgressState(quest); const hasCollectiblesQuestReward = _QuestRewardUtils.hasCollectiblesQuestReward(quest.config); const memo = useMemo(() => getDefaultReward(quest.config).skuId, [quest.config]); const fetchCollectiblesProduct = useFetchCollectiblesProduct(progressState === QuestProgressState.COMPLETED ? hasCollectiblesQuestReward ? memo : null : null); product = fetchCollectiblesProduct.product; isFetching = fetchCollectiblesProduct.isFetching; const stateFromStoresObject = useStateFromStoresObject([QuestStore], () => ({ isFetchingRewardCode: QuestStore.isFetchingRewardCode(quest.id), isClaimingReward: QuestStore.isClaimingReward(quest.id) })); const isClaimingReward = stateFromStoresObject.isClaimingReward; isFetchingRewardCode = stateFromStoresObject.isFetchingRewardCode; stateFromStores = useStateFromStores([UserStore], () => { const currentUser = UserStore.getCurrentUser(); return currentUser == null ? void 0 : currentUser.hasVerifiedEmailOrPhone(); }); stateFromStores2 = useStateFromStores([UserStore], () => UserStore.getCurrentUser()?.verified); const memo2 = useMemo(() => { let r0 = isFetching; if (!isFetching) { r0 = isFetchingRewardCode; } return r0; }, [isFetching, isFetchingRewardCode]); const token = useToken(Module712.colors.BACKGROUND_BASE_LOWER); const token2 = useToken(Module712.colors.BACKGROUND_BASE_LOW); const token3 = useToken(Module712.colors.BACKGROUND_BASE_LOWEST); if (product != null) { let buttonColors = product.styles?.buttonColors; if (buttonColors == null) { buttonColors = []; } let confettiColors = product.styles?.confettiColors; if (confettiColors == null) { confettiColors = []; } product.styles = { buttonColors, confettiColors, backgroundColors: [tinycolor(token2), tinycolor(token), tinycolor(token3)] }; } return { isLoading: memo2, isClaiming: isClaimingReward, claim: useCallback(() => handleRewardClaimThenView({ quest, product, hideActionSheet, questContent: QUEST_BOTTOM_SHEET, currentUserHasVerifiedEmailOrPhone: stateFromStores, currentUserHasVerifiedEmail: stateFromStores2, onSuccess, sourceQuestContent }), [quest, product, stateFromStores, stateFromStores2, hideActionSheet, QUEST_BOTTOM_SHEET, onSuccess, sourceQuestContent]) }; }; WatchTaskButton = function WatchTaskButton(props) { const { questId: questId3, sourceQuestContent: sourceQuestContent4, taskDetails } = props; return