395 lines
14 KiB
TypeScript
395 lines
14 KiB
TypeScript
// Module ID: 10754
|
|
// Function ID: 10755
|
|
// Name: QuestOrbsRewardModal
|
|
// Dependencies: [32, 5, 19, 17, 4825, 1372, 1980, 5756, 21, 5039, 10754, 1981, 4836, 576, 8298, 5943, 5992, 1115, 5899, 8271, 1365, 10755, 10756, 10757, 504, 8315, 1094, 10694, 10758, 10678, 5759, 10759, 6544, 4832, 5281, 2]
|
|
// Exports: default, openQuestOrbsRewardModal
|
|
|
|
// Module 10754 (QuestOrbsRewardModal)
|
|
import nativeDefault from "native" /* 576 */;
|
|
import utils_PlatformUtils from "utils/PlatformUtils" /* 1365 */;
|
|
import ModalActionCreatorsDefault from "ModalActionCreators" /* 5039 */;
|
|
import QuestConstants from "QuestConstants" /* 5756 */;
|
|
import FastImageDefault from "FastImage" /* 5899 */;
|
|
import XSmallIcon from "XSmallIcon" /* 5992 */;
|
|
import APNGPlayer from "APNGPlayer" /* 8271 */;
|
|
import OrbsIcon2 from "OrbsIcon" /* 8298 */;
|
|
import _modDef10755 from "module_10755" /* 10755 */;
|
|
import _modDef10756 from "module_10756" /* 10756 */;
|
|
import _slicedToArray from "_slicedToArray" /* 32 */;
|
|
import _asyncToGenerator from "_asyncToGenerator" /* 5 */;
|
|
import react from "react" /* 19 */;
|
|
import react_native from "react-native" /* 17 */;
|
|
import AccessibilityStore from "AccessibilityStore" /* 4825 */;
|
|
import UserStore from "UserStore" /* 1372 */;
|
|
import AppStateStore from "AppStateStore" /* 1980 */;
|
|
import Fragment from "Fragment" /* 21 */;
|
|
import createStyles_mod from "createStyles" /* 4836 */;
|
|
import size from "module_2" /* 2 */;
|
|
|
|
const require = globalThis.__r;
|
|
let _require;
|
|
|
|
let closure_14;
|
|
let closure_15;
|
|
let items;
|
|
let map1;
|
|
let metroImportAll;
|
|
let metroImportDefault;
|
|
let metroRequire;
|
|
let obj2;
|
|
let obj3;
|
|
let obj5;
|
|
let tmp17;
|
|
const _modDef10757 = tmp17(10757);
|
|
function OrbsBalance(balance) {
|
|
let items;
|
|
balance = balance.balance;
|
|
const tmp = closure_19();
|
|
const obj = { children: items };
|
|
const obj2 = { size: "xs", color: nativeDefault.colors.WHITE, style: tmp.orbsIcon };
|
|
const OrbsIcon = OrbsIcon2.OrbsIcon;
|
|
items = [map1(OrbsIcon, obj2), , ];
|
|
const obj3 = { style: tmp.spacer };
|
|
items[1] = map1(metroImportAll, obj3);
|
|
items[2] = balance;
|
|
return closure_15(authStore2, obj);
|
|
}
|
|
function CancelButton() {
|
|
let closeButtonIcon;
|
|
let intl;
|
|
const tmp = closure_17();
|
|
_require = tmp;
|
|
let obj = {
|
|
onPress() {
|
|
const obj = ModalActionCreatorsDefault;
|
|
obj.popWithKey(QuestOrbsRewardModal_str);
|
|
},
|
|
backImage() {
|
|
let items;
|
|
const obj = { size: "lg", style: items };
|
|
items = [closeButtonIcon.closeButtonIcon];
|
|
return map1(XSmallIcon.XSmallIcon, obj);
|
|
},
|
|
accessibilityLabel: intl.string(require("intl").t.cpT0Cq),
|
|
displayMode: "minimal",
|
|
style: tmp.closeButton
|
|
};
|
|
const HeaderBackButton = require("module_5943").HeaderBackButton;
|
|
intl = require("intl").intl;
|
|
return closure_13(HeaderBackButton, obj);
|
|
}
|
|
function StaticOrb() {
|
|
let obj2;
|
|
let obj3;
|
|
let tmp;
|
|
let tmp2;
|
|
const obj = { style: { width: "100%", height: "100%" }, children: map1(tmp2, obj2) };
|
|
obj2 = { source: obj3, style: tmp.animatedOrb, fade: false };
|
|
obj3 = { uri: _modDef10755 };
|
|
tmp = closure_25();
|
|
tmp2 = FastImageDefault;
|
|
return map1(metroImportAll, obj);
|
|
}
|
|
function AnimatedOrbContainer(isAppActive) {
|
|
let c4;
|
|
let closure_1;
|
|
let closure_3;
|
|
let first;
|
|
let first1;
|
|
let items1;
|
|
let items2;
|
|
let items3;
|
|
let tmp15Result;
|
|
let tmp7;
|
|
isAppActive = isAppActive.isAppActive;
|
|
first = undefined;
|
|
closure_1 = undefined;
|
|
first1 = undefined;
|
|
closure_3 = undefined;
|
|
c4 = undefined;
|
|
let tmp = closure_25();
|
|
[first, closure_1] = react.useState(false);
|
|
[first1, closure_3] = react.useState(false);
|
|
[tmp7, c4] = react.useState(true);
|
|
_slicedToArray(react.useState(true), 2);
|
|
const callback = react.useCallback(() => {
|
|
closure_1(true);
|
|
}, []);
|
|
const items = [first, first1];
|
|
const callback1 = react.useCallback(() => {
|
|
closure_3(true);
|
|
}, []);
|
|
const effect = react.useEffect(() => {
|
|
let closure_0;
|
|
let timeout;
|
|
const tmp = timeout;
|
|
if (tmp) {
|
|
const tmp2 = first1;
|
|
if (tmp2) {
|
|
const _setTimeout = setTimeout;
|
|
timeout = setTimeout(() => {
|
|
closure_1_4(false);
|
|
}, 1450);
|
|
return () => clearTimeout(closure_0);
|
|
}
|
|
}
|
|
}, items);
|
|
let tmp13 = !first;
|
|
const obj = { style: { width: "100%", height: "100%" }, children: items1 };
|
|
const tmp11 = closure_15;
|
|
if (!first) {
|
|
tmp13 = !first1;
|
|
}
|
|
if (tmp13) {
|
|
const obj2 = { style: { height: "100%" } };
|
|
tmp13 = map1(tmp12, obj2);
|
|
}
|
|
items1 = [tmp13, , ];
|
|
const obj3 = { uri: _modDef10756, style: items2, onLoad: callback1, animate: !tmp15Result && isAppActive };
|
|
items2 = [tmp.animatedOrb, (tmp15Result || !first1) && { opacity: 0 }];
|
|
items1[1] = map1(closure_24, obj3);
|
|
if (tmp15Result) {
|
|
const obj4 = { uri: _modDef10757, style: items3, onLoad: callback, animate: isAppActive };
|
|
items3 = [tmp.animatedOrb];
|
|
tmp15Result = map1(closure_24, obj4);
|
|
}
|
|
items1[2] = tmp15Result;
|
|
return tmp11(metroImportAll, obj);
|
|
}
|
|
({ ActivityIndicator: metroRequire, StyleSheet: metroImportDefault, View: metroImportAll } = react_native);
|
|
const RewardFilterTypes = QuestConstants.RewardFilterTypes;
|
|
({ jsx: map1, Fragment: closure_14, jsxs: closure_15 } = Fragment);
|
|
const QuestOrbsRewardModal_str = "QuestOrbsRewardModal";
|
|
let createStyles = createStyles_mod;
|
|
let obj = { closeButton: obj2, closeButtonIcon: obj3 };
|
|
obj2 = { alignSelf: "flex-start", marginHorizontal: nativeDefault.space.PX_16, zIndex: 999 };
|
|
createStyles = createStyles.createStyles;
|
|
obj3 = { tintColor: nativeDefault.colors.WHITE };
|
|
let closure_17 = createStyles(obj);
|
|
createStyles = createStyles_mod;
|
|
let closure_18 = createStyles.createStyles(() => {
|
|
let obj3;
|
|
const obj = { root: { flex: 1, backgroundColor: nativeDefault.colors.BACKGROUND_BASE_LOW }, background: metroImportDefault.absoluteFillObject, loading: obj3, header: { flexDirection: "row", alignItems: "flex-end", justifyContent: "flex-end" }, main: { flex: 2 }, animation: { flex: 3 }, body: { flex: 2, flexDirection: "column", justifyContent: "center", gap: nativeDefault.space.PX_16 }, title: { textAlign: "center", marginHorizontal: nativeDefault.space.PX_32 }, buttonsContainer: { padding: nativeDefault.space.PX_24, gap: nativeDefault.space.PX_16 } };
|
|
({ flex: 1, backgroundColor: nativeDefault.colors.BACKGROUND_BASE_LOW });
|
|
obj3 = { justifyContent: "center", alignItems: "center", backgroundColor: nativeDefault.colors.BACKGROUND_BASE_LOW };
|
|
const merged = Object.assign(metroImportDefault.absoluteFillObject);
|
|
({ flex: 2, flexDirection: "column", justifyContent: "center", gap: nativeDefault.space.PX_16 });
|
|
({ textAlign: "center", marginHorizontal: nativeDefault.space.PX_32 });
|
|
({ padding: nativeDefault.space.PX_24, gap: nativeDefault.space.PX_16 });
|
|
return obj;
|
|
});
|
|
createStyles = createStyles_mod;
|
|
let obj4 = { orbsIcon: obj5, spacer: { width: 2 } };
|
|
obj5 = { transform: items };
|
|
items = [{ translateY: 3 }];
|
|
let closure_19 = createStyles.createStyles(obj4);
|
|
let closure_22 = react.memo((uri) => {
|
|
uri = uri.uri;
|
|
let flag = uri.animate;
|
|
const onLoad = uri.onLoad;
|
|
if (flag === undefined) {
|
|
flag = true;
|
|
}
|
|
const items = [uri];
|
|
const effect = react.useEffect(() => {
|
|
const obj = FastImageDefault;
|
|
obj.preload(uri);
|
|
}, items);
|
|
let obj = { source: { uri }, style: { width: "100%", height: "100%" }, resizeMode: "cover", enableAnimation: flag, onLoad, usesSmallCache: false, fade: false };
|
|
const tmp2 = FastImageDefault;
|
|
return closure_13(tmp2, obj, "orb-animate-" + flag);
|
|
});
|
|
let closure_23 = react.memo((animate) => {
|
|
let onLoad;
|
|
let uri;
|
|
let flag = animate.animate;
|
|
({ uri, onLoad } = animate);
|
|
if (flag === undefined) {
|
|
flag = true;
|
|
}
|
|
const ref = react.useRef(null);
|
|
const obj = APNGPlayer;
|
|
const aPNGPlayerControls = obj.useAPNGPlayerControls(ref);
|
|
const items = [flag, aPNGPlayerControls];
|
|
const effect = react.useEffect(() => {
|
|
if (flag) {
|
|
aPNGPlayerControls.play();
|
|
} else {
|
|
aPNGPlayerControls.stop();
|
|
}
|
|
}, items);
|
|
return map1(APNGPlayer.APNGPlayer, { ref, url, autoplay: false, style: { width: "100%", height: "100%" }, onLoad });
|
|
});
|
|
let closure_24 = react.memo((animate) => {
|
|
let onLoad;
|
|
let style;
|
|
let uri;
|
|
let flag = animate.animate;
|
|
({ uri, style, onLoad } = animate);
|
|
if (flag === undefined) {
|
|
flag = true;
|
|
}
|
|
const obj = utils_PlatformUtils;
|
|
const obj2 = { style, renderToHardwareTextureAndroid: true, needsOffscreenAlphaCompositing: true, children: map1(obj.isAndroid() ? closure_23 : closure_22, { uri, onLoad, animate: flag }) };
|
|
return map1(metroImportAll, obj2);
|
|
});
|
|
createStyles = createStyles_mod;
|
|
let closure_25 = createStyles.createStyles({ animatedOrb: { position: "absolute", height: "130%", width: "130%", left: "-15%", top: "-15%", pointerEvents: "none" } });
|
|
let result = size.fileFinishedImporting("modules/quests/native/QuestOrbsRewardModal.native.tsx");
|
|
|
|
export default function QuestOrbsRewardModal(quest) {
|
|
let Button;
|
|
let FIilK5;
|
|
let _undefined;
|
|
let c1;
|
|
let currentUser;
|
|
let format;
|
|
let formatResult;
|
|
let intl4;
|
|
let items3;
|
|
let items4;
|
|
let items5;
|
|
let items6;
|
|
let obj15;
|
|
let obj20;
|
|
let obj8;
|
|
let state;
|
|
let tmp12Result;
|
|
let tmp14Result2;
|
|
let tmp6;
|
|
let useReducedMotion;
|
|
quest = quest.quest;
|
|
let num;
|
|
c1 = undefined;
|
|
const tmp = closure_18();
|
|
let obj = num(504);
|
|
const items = [AccessibilityStore];
|
|
const stateFromStores = obj.useStateFromStores(items, () => useReducedMotion.useReducedMotion);
|
|
let obj2 = num(8315);
|
|
num = obj2.useFetchVirtualCurrencyBalance().balance;
|
|
let obj3 = react;
|
|
[tmp6, c1] = react.useState(false);
|
|
_slicedToArray(react.useState(false), 2);
|
|
const items1 = [AppStateStore];
|
|
const obj4 = num(504);
|
|
const stateFromStores1 = obj4.useStateFromStores(items1, () => state.getState());
|
|
const ACTIVE = num(1094).AppStates.ACTIVE;
|
|
const items2 = [UserStore];
|
|
const userStatus = quest.userStatus;
|
|
let num2;
|
|
const obj5 = num(504);
|
|
const stateFromStores2 = obj5.useStateFromStores(items2, () => currentUser.getCurrentUser());
|
|
if (userStatus != null) {
|
|
num2 = userStatus.orbQuantityClaimed;
|
|
}
|
|
if (num2 == null) {
|
|
const tmp2Result = num(10694);
|
|
num2 = tmp2Result.getQuestOrbRewardQuantityForUser(quest.config, stateFromStores2);
|
|
}
|
|
const effect = obj3.useEffect(() => {
|
|
let obj = num(dependencyMap[28]);
|
|
obj.applyOrientationLock("PORTRAIT");
|
|
return () => {
|
|
const obj = num(closure_1_2[28]);
|
|
const result = obj.restoreDefaultOrientationLock();
|
|
};
|
|
}, []);
|
|
const callback = obj3.useCallback(() => {
|
|
_undefined(true);
|
|
}, []);
|
|
const obj6 = { style: tmp.root, children: items3 };
|
|
const obj7 = { style: absoluteFill.absoluteFill, accessible: false, accessibilityElementsHidden: true, importantForAccessibility: "no-hide-descendants", children: closure_13(num(10759).OrbsRewardBackground, obj8) };
|
|
const callback1 = obj3.useCallback(() => {
|
|
const obj = _undefined(dependencyMap[9]);
|
|
obj.popWithKey(QuestOrbsRewardModal_str);
|
|
const obj2 = num(dependencyMap[29]);
|
|
const obj3 = { filter: constants.VIRTUAL_CURRENCY, fromContent: num(dependencyMap[30]).QuestContent.REWARD_MODAL };
|
|
obj2.openQuestHome(obj3);
|
|
}, []);
|
|
obj8 = { style: tmp.background, onReady: callback };
|
|
items3 = [closure_13(closure_8, obj7), , ];
|
|
let tmp14Result = !tmp12Result;
|
|
if (tmp14Result) {
|
|
const obj9 = { style: tmp.loading, children: closure_13(closure_6, { animating: true }) };
|
|
tmp14Result = tmp14(tmp13, obj9);
|
|
}
|
|
items3[1] = tmp14Result;
|
|
if (tmp12Result) {
|
|
const rect = { style: items4, top: true, bottom: true, left: true, right: true, children: items5 };
|
|
items4 = [tmp.main];
|
|
const obj10 = { style: tmp.header, children: closure_13(CancelButton, {}) };
|
|
const SafeAreaPaddingView = tmp2(6544).SafeAreaPaddingView;
|
|
items5 = [closure_13(closure_8, obj10), , , ];
|
|
const obj11 = { style: tmp.animation, accessible: false, accessibilityElementsHidden: true, importantForAccessibility: "no-hide-descendants", children: tmp14Result2 };
|
|
if (stateFromStores) {
|
|
tmp14Result2 = tmp14(StaticOrb, {});
|
|
} else {
|
|
const obj12 = { isAppActive: stateFromStores1 === ACTIVE };
|
|
tmp14Result2 = tmp14(AnimatedOrbContainer, obj12);
|
|
}
|
|
items5[1] = closure_13(closure_8, obj11);
|
|
const obj13 = { style: tmp.body, children: items6 };
|
|
const obj14 = { variant: "heading-xl/bold", color: "text-overlay-light", style: tmp.title, children: format(FIilK5, obj15) };
|
|
const Heading = tmp2(4832).Heading;
|
|
let intl = tmp2(1115).intl;
|
|
format = intl.format;
|
|
FIilK5 = tmp2(1115).t.FIilK5;
|
|
if (num2 == null) {
|
|
num2 = 0;
|
|
}
|
|
obj15 = { count: num2 };
|
|
items6 = [closure_13(Heading, obj14), ];
|
|
const obj16 = { variant: "text-md/normal", color: "text-overlay-light", style: tmp.title, children: formatResult };
|
|
let Text = tmp2(4832).Text;
|
|
if (num == null) {
|
|
num = 0;
|
|
}
|
|
if (num >= 4100) {
|
|
const intl3 = tmp2(1115).intl;
|
|
const obj17 = {
|
|
balanceHook() {
|
|
const obj = { balance: num };
|
|
return map1(OrbsBalance, obj, "balance");
|
|
},
|
|
profileDecoHook() {
|
|
let intl;
|
|
const obj = { variant: "text-md/semibold", color: "text-overlay-light", children: intl.string(num(dependencyMap[17]).t.pGDUH9) };
|
|
const Text = num(dependencyMap[33]).Text;
|
|
intl = num(dependencyMap[17]).intl;
|
|
return closure_1_13(Text, obj, "profileDeco");
|
|
}
|
|
};
|
|
formatResult = intl3.format(tmp2(1115).t["2dz2AL"], obj17);
|
|
} else {
|
|
const intl2 = tmp2(1115).intl;
|
|
const obj18 = {
|
|
balanceHook() {
|
|
const obj = { balance: num };
|
|
return map1(OrbsBalance, obj, "balance");
|
|
}
|
|
};
|
|
formatResult = intl2.format(tmp2(1115).t.rKHvlX, obj18);
|
|
}
|
|
items6[1] = closure_13(Text, obj16);
|
|
items5[2] = closure_15(closure_8, obj13);
|
|
const obj19 = { style: tmp.buttonsContainer, children: closure_13(Button, obj20) };
|
|
obj20 = { onPress: callback1, variant: "primary", size: "lg", text: intl4.string(num(1115).t.uJAMFX) };
|
|
Button = tmp2(5281).Button;
|
|
intl4 = tmp2(1115).intl;
|
|
items5[3] = closure_13(closure_8, obj19);
|
|
tmp12Result = closure_15(SafeAreaPaddingView, rect);
|
|
}
|
|
items3[2] = tmp12Result;
|
|
return closure_15(closure_8, obj6);
|
|
};
|
|
export const openQuestOrbsRewardModal = function openQuestOrbsRewardModal(quest) {
|
|
let paths;
|
|
quest = quest.quest;
|
|
const obj = ModalActionCreatorsDefault;
|
|
obj.pushLazy(_asyncToGenerator(async () => {
|
|
let c0;
|
|
let c1;
|
|
await require("asyncRequire")(paths[10], paths.paths);
|
|
return arg1.default;
|
|
}), { quest }, QuestOrbsRewardModal_str);
|
|
};
|