/* Metro module 15384; source: modules/frames/panel/native/QuestActivityButton.tsx; dependencies: [31, 27, 4502, 7093, 15385, 6528, 33, 4017, 7744, 4501, 9483, 566, 5080, 15386, 1962, 4080, 15387, 4504, 6760, 13621, 15388, 13508, 1244, 697, 9524, 2] */
function _fun117599(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#117599, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15581:6, offset: 0x024ba1ec, size: 508 bytes, params: 8, frame: 23
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(27) /* metro dependency 27 */).View;
const accessibilityStore = importDefault(4502) /* metro dependency 4502: AccessibilityStore */;
const questStore = importDefault(7093) /* metro dependency 7093: QuestStore */;
const unenrolledActivityQuestStore = importDefault(15385) /* metro dependency 15385: UnenrolledActivityQuestStore */;
const env0_8 = (require(6528) /* metro dependency 6528: QuestConstants */).QuestVariants;
const value2 = require(33) /* metro dependency 33 */;
const env0_9 = value2.jsx;
const env0_10 = value2.jsxs;
const reanimatedRexport = importDefault(4017) /* metro dependency 4017: ReanimatedRexport */;
const createAnimatedComponent = reanimatedRexport.createAnimatedComponent;
const Circle = (require(7744) /* metro dependency 7744 */).Circle;
const env0_12 = Reflect.apply(createAnimatedComponent, reanimatedRexport, [Circle]);
const env0_13 = (require(4501) /* metro dependency 4501: createStyles */).createStyles({container: {'position': 'relative',
'width': 32, 'height': 32, 'justifyContent': 'center', 'alignItems': 'center'},
completionGlow: {'shadowOffset': null, 'shadowRadius': 12, 'shadowOpacity': 0, 'elevation': 4,
'shadowColor': '#30C77399', shadowOffset: {'width': 0, 'height': 0}}, canvas: {position: 'absolute',
transform: [{rotate: '-90deg'}]}, buttonWrapper: {'position': 'absolute', 'borderRadius': 16,
'overflow': 'hidden'}, confetti: {position: 'absolute'}});
object = {code: 'function QuestActivityButtonTsx1(){const{glowOpacity}=this.__closure;return{shadowOpacity:glowOpacity.get()};}'};
object = {code: 'function QuestActivityButtonTsx2(){const{circumference,animatedProgress}=this.__closure;return{strokeDashoffset:circumference-circumference*animatedProgress.get()};}'};
value = value.memo(QuestActivityButton);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/frames/panel/native/QuestActivityButton.tsx');
exports.default = value;
}
function QuestActivityButtonInner({quest}) { // fn#117600, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15581:952, offset: 0x024ba3e8, size: 1323 bytes, params: 2, frame: 34
let env0_3 = undefined;
const questHooksModule = require(9483) /* metro dependency 9483: QuestHooks */;
const useQuestCompletionDetails = questHooksModule.useQuestCompletionDetails;
const completedRatio = Reflect.apply(useQuestCompletionDetails, questHooksModule, [quest]).completedRatio;
const useReducedMotion = (require(566) /* metro dependency 566: flux */).useStateFromStores([AccessibilityStore],
function() {
return AccessibilityStore.useReducedMotion;
});
let binding = env0_3;
const useCallback = binding.useCallback;
const userStatus = quest.userStatus;
const value3 = Reflect.apply(useCallback, binding, [_fun117602, [quest.id, userStatus?.enrolledAt]]);
const Math = global.Math;
const PI = Math.PI;
const value4 = 2 * PI * 14.3;
const r2 = (quest == null || quest.userStatus == null ? undefined : quest.userStatus.enrolledAt) != null ? completedRatio : 0;
env0_3 = r2;
const r12 = (quest == null || quest.userStatus == null ? undefined : quest.userStatus.enrolledAt) != null && (quest == null || quest.userStatus == null ? undefined : quest.userStatus.completedAt) != null;
const value8 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(r2);
const value10 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(r12 ? 1 : 0);
const value11 = env0_3.useRef(null);
const styles = useStyles();
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
let closure = QuestActivityButtonInnerE;
closure.__closure = {glowOpacity: value10};
closure.__workletHash = 4459043613798;
closure.__initData = env0_14;
const value12 = Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
const value13 = env0_3.useMemo(_fun117604, [styles.confetti]);
const moduleValue6 = reanimatedRexportModule;
const useAnimatedProps = moduleValue6.useAnimatedProps;
closure = QuestActivityButtonInnerI;
closure.__closure = {circumference: value4, animatedProgress: value8};
closure.__workletHash = 3373122453897;
closure.__initData = env0_15;
const value14 = Reflect.apply(useAnimatedProps, moduleValue6, [closure]);
env0_3.useEffect(_fun117606, [value8, r2, useReducedMotion]);
env0_3.useEffect(_fun117608, [value10, r12, useReducedMotion]);
const View2 = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View;
const items3 = [styles.container];
items3[1] = styles.completionGlow;
items3[2] = value12;
const items2 = [{((Component) => )(importDefault(6760) /* metro dependency 6760: LottieAnimationView */)}];
const VoicePanelIconButton = importDefault(15388) /* metro dependency 15388: VoicePanelIconButton */;
const object = {icon: importDefault(13508) /* metro dependency 13508 */, onPress: value3};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const JALI2K = (require(1244) /* metro dependency 1244: indexNative */).t.JALI2K;
object.accessibilityLabel = Reflect.apply(string, intl, [JALI2K]);
items2[1] = ;
let canvas = styles.canvas;
const Svg = (require(7744) /* metro dependency 7744 */).Svg;
const object2 = {height: env0_11, width: env0_11};
const Circle = (require(7744) /* metro dependency 7744 */).Circle;
const OPACITY_32 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.OPACITY_32;
items2[2] = ;
canvas = styles.canvas;
const object3 = {height: env0_11, width: env0_11};
binding = env0_12;
const GREEN_300 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.GREEN_300;
items2[3] = ;
return (
{items2}
);
}
function QuestActivityButton({applicationId}) { // fn#117609, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15581:3203, offset: 0x024baba6, size: 263 bytes, params: 2, frame: 22
const quests = (require(566) /* metro dependency 566: flux */).useStateFromStores([QuestStore], function() {
return QuestStore.quests;
});
const autoEnroll = (require(566) /* metro dependency 566: flux */).useStateFromStores([UnenrolledActivityQuestStore],
function() {
return UnenrolledActivityQuestStore.getState().autoEnroll;
});
const value2 = env0_3.useMemo(_fun117612, [quests, applicationId]);
var env0_3 = value2;
env0_3.useEffect(_fun117615, [value2, autoEnroll,
(require(566) /* metro dependency 566: flux */).useStateFromStores([UnenrolledActivityQuestStore], _fun117614)]);
return value2 == null ? null : ;
}
function _fun117602() { // fn#117602, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15581:1145, offset: 0x024ba913, size: 222 bytes, params: 1, frame: 18
var value3;
var defaultImport;
var value5;
var defaultImport2;
const userStatus = quest.userStatus;
const value2 = undefined;
if ((userStatus == null ? value2 : userStatus.enrolledAt) == null) {
value5 = environment.__proto__;
defaultImport2 = importDefault(dependencyMap[12]);
defaultImport2.pushLazy(require(dependencyMap[14])(dependencyMap[13], dependencyMap.paths), {questId: quest.id},
env1_16);
} else {
value3 = environment.__proto__;
defaultImport = importDefault(dependencyMap[15]);
defaultImport.openLazy(require(dependencyMap[14])(dependencyMap[16], dependencyMap.paths),
'QuestProgressBottomSheet', {questId: quest.id});
}
return value2;
}
function QuestActivityButtonInnerE() { // fn#117603, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15581:1730, owner: QuestActivityButtonInner.E, offset: 0x024ba9f1, size: 25 bytes, params: 1, frame: 10
const object2 = {};
object2.shadowOpacity = env0_6.get();
return object2;
}
function _fun117604() { // fn#117604, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15581:1849, offset: 0x024baa0a, size: 87 bytes, params: 1, frame: 13
const object2 = {};
copyDataProperties(object2, styles.confetti, undefined);
object2['width'] = env1_11;
object2['height'] = env1_11;
object2['transform'] = [{scale: 1.6}];
return object2;
}
function QuestActivityButtonInnerI() { // fn#117605, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15581:1958, owner: QuestActivityButtonInner.I, offset: 0x024baa61, size: 37 bytes, params: 1, frame: 11
const binding = env0_2;
const binding2 = env0_5;
const get = binding2.get;
return {strokeDashoffset: binding - binding * Reflect.apply(get, binding2, [])};
}
function _fun117606() { // fn#117606, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15581:2112, offset: 0x024baa86, size: 89 bytes, params: 1, frame: 17
const binding = env0_5;
const set = binding.set;
const timingModule = require(4504) /* metro dependency 4504: timing */;
Reflect.apply(set, binding, [timingModule.withTiming(env0_3, {duration: useReducedMotion ? 0 : 500})]);
return _fun117607;
}
function _fun117608() { // fn#117608, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15581:2223, offset: 0x024bab0c, size: 154 bytes, params: 1, frame: 16
var binding;
var set;
var value2;
var moduleValue;
var current;
if (useReducedMotion) {
env0_6.set(0);
current = env0_7.current;
if (current != null) {
current.reset();
}
} else if (env0_4) {
binding = env0_6;
set = binding.set;
value2 = environment.__proto__;
moduleValue = require(4504) /* metro dependency 4504: timing */;
Reflect.apply(set, binding, [moduleValue.withTiming(1, {duration: 500})]);
current = env0_7.current;
if (current != null) {
current.play();
}
} else {
env0_6.set(0);
current = env0_7.current;
if (current != null) {
current.reset();
}
}
}
function _fun117612() { // fn#117612, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15581:3383, offset: 0x024bacd5, size: 73 bytes, params: 1, frame: 15
var environment;
let value = environment.__proto__;
const getEligibleQuestsForApplicationId = (require(9524) /* metro dependency 9524: QuestMatchingUtils */).getEligibleQuestsForApplicationId;
value = Reflect.apply(getEligibleQuestsForApplicationId, value, [quests, applicationId, true]);
return value.find(function(a0) {
return a0.config.features.includes(QuestVariants.MOBILE_ACTIVITY_QUEST);
});
}
function _fun117614() { // fn#117614, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15581:3544, offset: 0x024bad46, size: 47 bytes, params: 1, frame: 13
return UnenrolledActivityQuestStore.isDismissed(env0_3?.id);
}
function _fun117615() { // fn#117615, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15581:3605, offset: 0x024bad75, size: 158 bytes, params: 1, frame: 18
var value5;
var defaultImport;
let r0 = env0_3 == null || env0_3.userStatus?.enrolledAt != null;
r0 = !r0 ? autoEnroll : r0;
r0 = !r0 ? env0_4 : r0;
if (!r0) {
value5 = environment.__proto__;
defaultImport = importDefault(dependencyMap[12]);
defaultImport.pushLazy(require(dependencyMap[14])(dependencyMap[13], dependencyMap.paths), {questId: env0_3.id},
env1_16);
}
}
function _fun117607() { // fn#117607, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15581:2166, offset: 0x024baadf, size: 45 bytes, params: 1, frame: 12
const value = environment.__proto__.__proto__;
(require(4017) /* metro dependency 4017: ReanimatedRexport */).cancelAnimation(env1_5);
}