197 lines
8.6 KiB
TypeScript
197 lines
8.6 KiB
TypeScript
// Metro module 15860 (f15861).
|
|
import { useCallback } from "react";
|
|
import { StyleSheet, View } from "react-native";
|
|
import QuestStore from "../QuestStore";
|
|
import { QuestsExperimentLocations } from "../QuestConstants";
|
|
import { ActivityPanelModes } from "../../activities/panel/ActivityPanelConstants";
|
|
import { createStyles, createStyleProperties } from "../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../_bundle/Module712";
|
|
import { useStateFromStores } from "../../../_bundle/Module589";
|
|
import { QuestContentImpressionTrackerNative } from "./QuestContentImpressionTracker.native";
|
|
import { QuestContent } from "../QuestTypes";
|
|
import { IconButton } from "../../../design/components/Button/native/IconButton.native";
|
|
import Module8964 from "../../../_bundle/Module8964";
|
|
import { intl, t } from "../../../intl/index.native";
|
|
import { useIsScreenLandscape } from "../../screen/useIsScreenLandscape.native";
|
|
import { useGetOrFetchApplication } from "../../applications/useGetOrFetchApplications";
|
|
import { getActivityApplicationId } from "../utils/QuestTaskUtils";
|
|
import useEmbeddedActivityBackground from "../../activities/utils/useEmbeddedActivityBackground";
|
|
import { useQuestTaskDetails } from "../hooks/QuestHooks";
|
|
import { useQuestsInstructionsToWinReward } from "../hooks/QuestCopyHooks";
|
|
import { useQuestRewardClaimHandler } from "./QuestBottomSheet/QuestBottomSheetFooter";
|
|
import FramesActionCreators_native from "../../frames/FramesActionCreators.native";
|
|
import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators";
|
|
import { openQuestHome } from "./QuestUtils.native";
|
|
import { showShareActionSheet } from "../../action_sheet/native/showShareActionSheet";
|
|
import { getQuestUrl } from "../utils/QuestCopyUtils";
|
|
import { BottomSheet } from "../../../design/components/Sheet/native/BottomSheet.native";
|
|
import FastImage from "../../../components_native/common/FastImage";
|
|
import Module4611 from "../../../_bundle/Module4611";
|
|
import { VerticalGradient } from "../../../ConstantsIOS";
|
|
import QuestRewardTile from "./QuestRewardTile";
|
|
import Module12238 from "../../../_bundle/Module12238";
|
|
import QuestContextMenu from "./QuestContextMenu";
|
|
import { Stack } from "../../../design/components/Stack/native/Stack.native";
|
|
import { Text } from "../../../design/components/Text/native/Text";
|
|
import { Button } from "../../../design/components/Button/native/Button.native";
|
|
let useStyles, styleProperties, QuestProgressBottomSheet;
|
|
const contextMenuButton = function contextMenuButton(a0) {
|
|
return <IconButton {...a0} icon={Module8964} variant="secondary-overlay" accessibilityLabel={intl.string(t["UKOtz+"])} size="sm" />;
|
|
};
|
|
QuestProgressBottomSheet = function QuestProgressBottomSheet(props) {
|
|
const quest = props.quest;
|
|
const isScreenLandscape = useIsScreenLandscape();
|
|
const styles = useStyles(isScreenLandscape);
|
|
const gradientEnd = styleProperties().gradientEnd;
|
|
const url = useEmbeddedActivityBackground({
|
|
applicationId: useGetOrFetchApplication(getActivityApplicationId(quest))?.id,
|
|
size: 600,
|
|
names: ["embedded_cover"]
|
|
}).url;
|
|
const questTaskDetails = useQuestTaskDetails(quest);
|
|
const r26 = intl.formatToPlainString(t.EAYZAr, {
|
|
questName: quest.config.messages.questName
|
|
});
|
|
const questsInstructionsToWinReward = useQuestsInstructionsToWinReward({
|
|
quest,
|
|
taskDetails: questTaskDetails,
|
|
location: QuestsExperimentLocations.QUEST_ACTIVITY_BOTTOM_SHEET,
|
|
sourceQuestContent: QuestContent.RUNNING_ACTIVITY
|
|
});
|
|
const r77 = quest.userStatus?.completedAt != null && quest.userStatus?.claimedAt == null;
|
|
const questRewardClaimHandler = useQuestRewardClaimHandler({
|
|
quest,
|
|
questContent: QuestContent.RUNNING_ACTIVITY,
|
|
sourceQuestContent: QuestContent.RUNNING_ACTIVITY
|
|
});
|
|
let isClaiming = questRewardClaimHandler.isClaiming;
|
|
const { claim, isLoading } = questRewardClaimHandler;
|
|
const callback3 = useCallback(async () => {
|
|
let c28169_0;
|
|
c28169_0 = void 0;
|
|
if (await claim()) {
|
|
FramesActionCreators_native.updateFramePanelMode(ActivityPanelModes.PIP);
|
|
}
|
|
}, [claim]);
|
|
let onPress = useCallback(() => {
|
|
ActionSheetActionCreators.hideActionSheet();
|
|
FramesActionCreators_native.updateFramePanelMode(ActivityPanelModes.PIP);
|
|
openQuestHome({
|
|
scrollToQuestId: quest.id,
|
|
fromContent: QuestContent.QUEST_BOTTOM_SHEET
|
|
});
|
|
}, [quest.id]);
|
|
const callback = useCallback(() => {
|
|
ActionSheetActionCreators.hideActionSheet();
|
|
showShareActionSheet({
|
|
message: getQuestUrl(quest.id)
|
|
});
|
|
}, [quest.id]);
|
|
const callback2 = useCallback(() => {
|
|
ActionSheetActionCreators.hideActionSheet();
|
|
}, []);
|
|
const r123 = [url != null && <FastImage source={{
|
|
uri: url
|
|
}} style={styles.heroImg} />, <Module4611 style={styles.heroGradient} start={VerticalGradient.START} end={VerticalGradient.END} colors={["rgba(0, 0, 0, 0)", gradientEnd]} />, , ,];
|
|
let width = 80;
|
|
const height = isScreenLandscape ? 56 : 80;
|
|
if (isScreenLandscape) {
|
|
width = 56;
|
|
}
|
|
r123[2] = <View style={styles.gameTileContainer}>
|
|
<QuestRewardTile quest={quest} height={height} width={width} />
|
|
</View>;
|
|
r123[3] = <View style={styles.contextMenuContainer}>
|
|
<IconButton icon={Module12238} onPress={callback} variant="secondary-overlay" size="sm" accessibilityLabel={intl.string(t.RDE0Sc)} />
|
|
<QuestContextMenu quest={quest} showShareLink location={QuestsExperimentLocations.QUEST_ACTIVITY_BOTTOM_SHEET} sourceQuestContent={QuestContent.RUNNING_ACTIVITY}>{contextMenuButton}</QuestContextMenu>
|
|
</View>;
|
|
const r177 = [<View style={styles.heroContainer}>{r123}</View>, ,];
|
|
const r204 = [<Stack direction="vertical" spacing={Module712.space.PX_8} style={styles.textContainer}>
|
|
<Text variant={isScreenLandscape ? "heading-md/bold" : "heading-lg/bold"} color="mobile-text-heading-primary">{r26}</Text>
|
|
<Text style={styles.questDescription} variant={isScreenLandscape ? "text-sm/normal" : "text-md/normal"} color="text-muted">{questsInstructionsToWinReward}</Text>
|
|
</Stack>, ,];
|
|
const props2 = {
|
|
size: "lg",
|
|
text: intl.string(r77 ? t.cfY4PE : t.LLLLPD),
|
|
onPress: null,
|
|
loading: null,
|
|
grow: true
|
|
};
|
|
if (r77) {
|
|
onPress = callback3;
|
|
}
|
|
props2.onPress = onPress;
|
|
if (!isClaiming) {
|
|
isClaiming = isLoading;
|
|
}
|
|
props2.loading = isClaiming;
|
|
r204[1] = <Stack direction="vertical" spacing={Module712.space.PX_12} style={styles.buttonsContainer}>
|
|
<Button {...props2} />
|
|
<Button size="lg" text={intl.string(t.cpT0Cq)} onPress={callback2} variant="secondary" grow />
|
|
</Stack>;
|
|
r177[1] = <View style={styles.contentContainer}>{r204}</View>;
|
|
return <BottomSheet handleDisabled startExpanded>{r177}</BottomSheet>;
|
|
};
|
|
useStyles = createStyles((a0) => ({
|
|
contentContainer: {
|
|
display: "flex",
|
|
paddingHorizontal: Module712.space.PX_16,
|
|
paddingBottom: Module712.space.PX_16
|
|
},
|
|
heroContainer: {
|
|
height: a0 ? 125 : 140,
|
|
position: "relative",
|
|
marginBottom: a0 ? 0 : 52 + Module712.space.PX_8
|
|
},
|
|
heroImg: {
|
|
resizeMode: "cover",
|
|
...StyleSheet.absoluteFillObject,
|
|
borderTopLeftRadius: Module712.radii.lg,
|
|
borderTopRightRadius: Module712.radii.lg
|
|
},
|
|
heroGradient: {
|
|
...StyleSheet.absoluteFillObject,
|
|
borderTopLeftRadius: Module712.radii.lg,
|
|
borderTopRightRadius: Module712.radii.lg
|
|
},
|
|
gameTileContainer: {
|
|
position: "absolute",
|
|
bottom: a0 ? Module712.space.PX_12 : -52,
|
|
left: 0,
|
|
right: 0,
|
|
alignItems: "center"
|
|
},
|
|
contextMenuContainer: {
|
|
position: "absolute",
|
|
top: Module712.space.PX_16,
|
|
right: Module712.space.PX_16,
|
|
display: "flex",
|
|
flexDirection: "row",
|
|
gap: Module712.space.PX_16,
|
|
alignItems: "center"
|
|
},
|
|
textContainer: {
|
|
alignItems: "center",
|
|
paddingTop: a0 ? void 0 : Module712.space.PX_16,
|
|
gap: Module712.space.PX_8,
|
|
marginBottom: Module712.space.PX_16,
|
|
textAlign: "center"
|
|
},
|
|
questDescription: {
|
|
textAlign: "center"
|
|
},
|
|
buttonsContainer: {
|
|
paddingTop: a0 ? void 0 : Module712.space.PX_16
|
|
}
|
|
}));
|
|
styleProperties = createStyleProperties(() => ({
|
|
gradientEnd: Module712.colors.MOBILE_ACTIONSHEET_GRADIENT_BACKGROUND_DEFAULT
|
|
}));
|
|
export default function QuestProgressBottomSheetConnected(props) {
|
|
const questId = props.questId;
|
|
const stateFromStores = useStateFromStores([QuestStore], () => QuestStore.getQuest(questId));
|
|
return stateFromStores != null ? <QuestContentImpressionTrackerNative overrideVisibility questOrQuests={stateFromStores} questContent={QuestContent.RUNNING_ACTIVITY} sourceQuestContent={QuestContent.RUNNING_ACTIVITY}>
|
|
{() => <QuestProgressBottomSheet quest={stateFromStores} />}
|
|
</QuestContentImpressionTrackerNative> : null;
|
|
};
|