/* Metro module 6735; source: modules/guild_onboarding/native/GuildOnboardingPromptOptionButton.tsx; dependencies: [57, 31, 27, 4502, 6540, 1881, 33, 4501, 697, 566, 4017, 4504, 4577, 6736, 1244, 3860, 3874, 5278, 6739, 1423, 4573, 6742, 1305, 2] */ import Module00057 from '../../../by-id/module-00057.js'; /* Metro dependency 57 */ import Native from '../../../external/discord_common/js/packages/tokens/native.tsx'; /* Metro dependency 697 */ import AccessibilityStore from '../../a11y/AccessibilityStore.tsx'; /* Metro dependency 4502 */ import EmojiStore from '../../emojis/EmojiStore.tsx'; /* Metro dependency 6540 */ import * as FileImportTrackerModule from '../../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as ReactNativeModule from '../../../by-id/module-00027-ReactNative.js'; /* Metro dependency 27 */ import * as ReactModule from '../../../by-id/module-00031-React.js'; /* Metro dependency 31 */ import * as JsxRuntimeModule from '../../../by-id/module-00033-JsxRuntime.js'; /* Metro dependency 33 */ import * as IndexNativeModule from '../../../intl/index.native.tsx'; /* Metro dependency 1244 */ import * as EmojiConstantsModule from '../../emojis/EmojiConstants.tsx'; /* Metro dependency 1881 */ import * as UseTokenModule from '../../../design/tokens/native/useToken.tsx'; /* Metro dependency 3860 */ import * as UseA11yRolesNativeModule from '../../../external/discord_common/js/packages/design/hooks/useA11yRolesNative.tsx'; /* Metro dependency 3874 */ import * as ReanimatedRexportModule from '../../reanimated/ReanimatedRexport.tsx'; /* Metro dependency 4017 */ import * as TimingModule from '../../../design/animation/reanimated/timing/timing.tsx'; /* Metro dependency 4504 */ import * as TextModule from '../../../design/components/Text/native/Text.tsx'; /* Metro dependency 4573 */ import * as PressablesModule from '../../../design/void/Pressables/native/Pressables.tsx'; /* Metro dependency 5278 */ import * as CheckmarkSmallIconModule from '../../../design/components/Icon/native/redesign/generated/CheckmarkSmallIcon.tsx'; /* Metro dependency 6742 */ function _fun53153(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#53153, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6913:6, offset: 0x0133f1ab, size: 573 bytes, params: 8, frame: 23 const env0_0 = require; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); let value = JsxRuntimeModule; const env0_9 = value.jsx; const env0_10 = value.jsxs; value = require(4501) /* metro dependency 4501: createStyles */; const createStyles = value.createStyles; object = {}; const object2 = {'borderRadius': null, 'borderWidth': 2, 'borderStyle': 'solid', 'marginBottom': 8}; object2.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.md; object.container = object2; object.optionButton = {'paddingVertical': 12, 'paddingHorizontal': 16, 'display': 'flex', 'flexDirection': 'row', 'alignItems': 'center'}; object.optionTextEmoji = {'fontSize': 24, 'lineHeight': 24, 'marginRight': 12, 'paddingTop': 5}; object.optionImageEmoji = {'height': 24, 'width': 24, 'marginRight': 12}; object.optionText = {flexShrink: 1}; let BACKGROUND_BRAND = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BRAND; object.checkIcon = {'position': 'absolute', 'top': -6, 'right': -6, 'width': 20, 'height': 20, 'backgroundColor': null, 'borderRadius': 10, 'display': 'flex', 'alignItems': 'center', 'justifyContent': 'center', backgroundColor: BACKGROUND_BRAND}; object.newBadgeWrapper = {'position': 'absolute', 'top': -6, 'right': -6}; object.newBadge = {fontWeight: 'bold'}; BACKGROUND_BRAND = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BRAND; object.roleCount = {'position': 'absolute', 'top': -6, 'right': 24, 'paddingVertical': 2, 'paddingHorizontal': 6, 'backgroundColor': null, 'borderRadius': 10, 'display': 'flex', 'alignItems': 'center', 'justifyContent': 'center', backgroundColor: BACKGROUND_BRAND}; const env0_11 = Reflect.apply(createStyles, value, [object]); object = {code: 'function GuildOnboardingPromptOptionButtonTsx1(){const{selected,withTiming,Easing,useReducedMotion,withSequence,withSpring}=this.__closure;const rawOpacity=selected?1:0;const opacity=withTiming(rawOpacity,{duration:150,easing:Easing.out(Easing.ease)});const rawScale=selected?1:0.7;const scale=useReducedMotion?rawScale:withSequence(withSpring(rawScale*1.2,{stiffness:80,damping:6,mass:0.3}),withSpring(rawScale,{stiffness:80,damping:6,mass:0.3}));return{opacity:opacity,transform:[{scale:scale}]};}'}; object = {code: 'function GuildOnboardingPromptOptionButtonTsx2(){const{showMemberCount,withDelay,withTiming,Easing,useReducedMotion}=this.__closure;const rawOpacity=showMemberCount?1:0;const opacity=withDelay(showMemberCount?400:0,withTiming(rawOpacity,{duration:150,easing:Easing.out(Easing.ease)}));const rawTranslate=showMemberCount?0:16;const translateX=useReducedMotion?rawTranslate:withDelay(showMemberCount?400:0,withTiming(rawTranslate,{duration:200,easing:Easing.out(Easing.ease)}));return{opacity:opacity,transform:[{translateX:translateX}]};}'}; object = {code: "function GuildOnboardingPromptOptionButtonTsx3(){const{useReducedMotion,Easing,withTiming,selected,selectedBorderColor,isNew,unselectedBrandBorderColor,unselectedBorderColor,selectedBackgroundColor}=this.__closure;const timing=useReducedMotion?{duration:0}:{duration:200,easing:Easing.out(Easing.ease)};return{borderColor:withTiming(selected?selectedBorderColor:isNew?unselectedBrandBorderColor:unselectedBorderColor,timing),backgroundColor:withTiming(selected?selectedBackgroundColor:'transparent',timing)};}"}; object = {code: 'function GuildOnboardingPromptOptionButtonTsx4(){const{useReducedMotion,scale}=this.__closure;return useReducedMotion?{}:{transform:[{scale:scale.get()}]};}'}; (FileImportTrackerModule).fileFinishedImporting('modules/guild_onboarding/native/GuildOnboardingPromptOptionButton.tsx'); exports.default = PromptOptionButton; function PromptOptionButton({guildId, option, selected, onSelect, suppressMemberCount, canBeNew}) { // fn#53154, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6913:2931, offset: 0x0133f3e8, size: 2519 bytes, params: 2, frame: 43 var r23; var r24; var Math; var max; var value8; const intl = (require(1244) /* metro dependency 1244: indexNative */).intl; var Emoji; var TextBadge; const suppressMemberCount2 = suppressMemberCount; const env0_12 = undefined; const env0_13 = undefined; const styles = useStyles(); const value3 = (require(566) /* metro dependency 566: flux */).useStateFromStores([EmojiStore], _fun53155); const useReducedMotion = (require(566) /* metro dependency 566: flux */).useStateFromStores([AccessibilityStore], function() { return AccessibilityStore.useReducedMotion; }); const useReducedMotion2 = useReducedMotion; let useAnimatedStyle = ReanimatedRexportModule.useAnimatedStyle; let closure = PromptOptionButtonD; object = {selected: selected}; object.withTiming = (require(4504) /* metro dependency 4504: timing */).withTiming; const Easing = ReanimatedRexportModule.Easing; object.Easing = Easing; object.useReducedMotion = useReducedMotion; object.withSequence = ReanimatedRexportModule.withSequence; object.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring; closure.__closure = object; closure.__workletHash = 8281627194581; closure.__initData = env0_12; const value4 = Reflect.apply(useAnimatedStyle, ReanimatedRexportModule, [closure]); if ((importDefault(6736) /* metro dependency 6736: useGuildRoleMemberCounts */)(guildId) == null) { r23 = 0; } else if (option.roleIds == null) { r23 = 0; } else { Math = global.Math; max = Math.max; value8 = option.roleIds.map(_fun53158); object = []; arraySpread(object, value8, 0, undefined); r23 = apply(max, object, Math, undefined); } const binding = useReducedMotion2; const [property, env0_7] = suppressMemberCount2(binding.useState(false), 2); const env0_8 = binding.useRef(null); binding.useEffect(_fun53159, [property]); useAnimatedStyle = ReanimatedRexportModule.useAnimatedStyle; closure = PromptOptionButtonK; object = {showMemberCount: property}; object.withDelay = ReanimatedRexportModule.withDelay; object.withTiming = (require(4504) /* metro dependency 4504: timing */).withTiming; object.Easing = Easing; object.useReducedMotion = useReducedMotion; closure.__closure = object; closure.__workletHash = 9518487706997; closure.__initData = env0_13; const value12 = Reflect.apply(useAnimatedStyle, ReanimatedRexportModule, [closure]); const value13 = ReanimatedRexportModule.useSharedValue(1); const r29 = canBeNew && option.isUnseen; const value16 = useReducedMotion2.useMemo(_fun53163, [(option == null || option.emoji == null ? undefined : option.emoji.id) != null || (option == null || option.emoji == null ? undefined : option.emoji.name) != null, option.emoji?.name, option.title, option.description]); let useToken = UseTokenModule.useToken; const BACKGROUND_BRAND = (Native).colors.BACKGROUND_BRAND; const value17 = Reflect.apply(useToken, UseTokenModule, [BACKGROUND_BRAND]); useToken = UseTokenModule.useToken; const BORDER_SUBTLE = (Native).colors.BORDER_SUBTLE; const value18 = Reflect.apply(useToken, UseTokenModule, [BORDER_SUBTLE]); useToken = UseTokenModule.useToken; const BORDER_STRONG = (Native).colors.BORDER_STRONG; const value19 = Reflect.apply(useToken, UseTokenModule, [BORDER_STRONG]); const env0_14 = value19; useToken = UseTokenModule.useToken; const BACKGROUND_BASE_LOWEST = (Native).colors.BACKGROUND_BASE_LOWEST; const value20 = Reflect.apply(useToken, UseTokenModule, [BACKGROUND_BASE_LOWEST]); const env0_15 = value20; useAnimatedStyle = ReanimatedRexportModule.useAnimatedStyle; closure = PromptOptionButtonL; object = {useReducedMotion: useReducedMotion}; object.Easing = Easing; object.withTiming = (require(4504) /* metro dependency 4504: timing */).withTiming; object.selected = selected; object.selectedBorderColor = value19; object.isNew = r29; object.unselectedBrandBorderColor = value17; object.unselectedBorderColor = value18; object.selectedBackgroundColor = value20; closure.__closure = object; closure.__workletHash = 17180171486485; closure.__initData = env0_14; const value21 = Reflect.apply(useAnimatedStyle, ReanimatedRexportModule, [closure]); useAnimatedStyle = ReanimatedRexportModule.useAnimatedStyle; closure = PromptOptionButtonX; closure.__closure = {useReducedMotion: useReducedMotion, scale: value13}; closure.__workletHash = 319662489785; closure.__initData = env0_15; const value22 = Reflect.apply(useAnimatedStyle, ReanimatedRexportModule, [closure]); const {accessibilityRole, accessibilityState} = (UseA11yRolesNativeModule).useCheckboxA11yNative({checked: selected}); const View2 = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View; const items2 = [value22, value21]; items2[2] = styles.container; const PressableOpacity = (PressablesModule).PressableOpacity; const pressableOpacityProps2 = {activeOpacity: 0.6, style: [styles.optionButton], onPress: onPress_53166, onPressIn: onPressIn_53167, onPressOut: onPressOut_53168, accessibilityRole: accessibilityRole, accessibilityState: accessibilityState, accessibilityLabel: value16, accessibilityHint: suppressMemberCount || r23 <= 0 ? undefined : intl.formatToPlainString((require(1244) /* metro dependency 1244: indexNative */).t.iyXfAn, {memberCount: r23})}; let r16 = (option == null || option.emoji == null ? undefined : option.emoji.id) != null || (option == null || option.emoji == null ? undefined : option.emoji.name) != null; if (r16) { Emoji = importDefault(6739) /* metro dependency 6739: Emoji */; var defaultImportProps = {textEmojiStyle: styles.optionTextEmoji, fastImageStyle: styles.optionImageEmoji}; r24 = value3 != null ? (importDefault(1423) /* metro dependency 1423: AvatarUtils */).getEmojiURL({id: value3.id, animated: value3.animated, size: EMOJI_URL_BASE_SIZE}) : undefined; defaultImportProps.src = r24; r24 = (option == null || option.emoji == null ? undefined : option.emoji.name) ?? ''; defaultImportProps.name = r24; r16 = ( ); } const Text = (TextModule).Text; const items5 = [ {r16} {option.title} {option.description != null && option.description.length > 0 && {option.description}} , ]; items5[1] = ( r23 > 0 ? ((View) => {intl.format((require(1244) /* metro dependency 1244: indexNative */).t.EgKsZA, {memberCount: r23})})((importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View) : null ); const View4 = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View; const items7 = [styles.checkIcon, value4]; const CheckmarkSmallIcon = (CheckmarkSmallIconModule).CheckmarkSmallIcon; const WHITE = (Native).colors.WHITE; items5[2] = ( ); let r5 = canBeNew && !selected && option.isUnseen; if (r5) { TextBadge = (require(1305) /* metro dependency 1305: native */).TextBadge; r5 = ( ); } items5[3] = r5; return ( {items5} ); function _fun53155() { // fn#53155, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6913:3096, offset: 0x0133fdbf, size: 108 bytes, params: 1, frame: 16 const optionBinding = option; const value2 = null; const value3 = undefined; return value2 != (value2 == optionBinding || value2 == option.emoji ? value3 : option.emoji.id) ? EmojiStore.getUsableCustomEmojiById(value2 == option || value2 == option.emoji ? value3 : option.emoji.id) : value2; } function PromptOptionButtonD() { // fn#53157, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6913:3329, owner: PromptOptionButton.D, offset: 0x0133fe3a, size: 286 bytes, params: 1, frame: 23 var r1; var withSequence; var value9; var moduleValue3; var value; const r6 = selected ? 1 : 0; const withTiming = TimingModule.withTiming; const Easing = (require(4017) /* metro dependency 4017: ReanimatedRexport */).Easing; const out = Easing.out; const Easing2 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).Easing; const value5 = Reflect.apply(withTiming, TimingModule, [r6, {duration: 150, easing: Reflect.apply(out, Easing, [Easing2.ease])}]); const r9 = selected ? 1 : 0.7; object = {opacity: value5}; if (useReducedMotion) { r1 = r9; } else { value = require(4017) /* metro dependency 4017: ReanimatedRexport */; withSequence = value.withSequence; value9 = (require(4577) /* metro dependency 4577: spring */).withSpring(1.2 * r9, {'stiffness': 80, 'damping': 6, 'mass': 0.3}); moduleValue3 = require(4577) /* metro dependency 4577: spring */; value = Reflect.apply(withSequence, value, [value9, moduleValue3.withSpring(r9, {'stiffness': 80, 'damping': 6, 'mass': 0.3})]); r1 = value; } object.transform = [{scale: r1}]; return object; } function _fun53158(a0) { // fn#53158, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6913:3914, offset: 0x00c94798, size: 16 bytes, params: 2, frame: 2 return ReactNativeModule.View[a0]; } function _fun53159() { // fn#53159, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6913:3995, offset: 0x0133ff58, size: 60 bytes, params: 1, frame: 15 if (env0_6) { env0_8.current = global.setTimeout(_fun53160, 3000); return _fun53161; } function _fun53160() { // fn#53160, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6913:4034, offset: 0x0133ff94, size: 30 bytes, params: 1, frame: 12 env1_7(false); env1_8.current = null; } function _fun53161() { // fn#53161, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6913:4067, offset: 0x0133ffb2, size: 46 bytes, params: 1, frame: 11 if (env1_8.current != null) { global.clearTimeout(env1_8.current); } } } function PromptOptionButtonK() { // fn#53162, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6913:4163, owner: PromptOptionButton.K, offset: 0x0133ffe0, size: 344 bytes, params: 1, frame: 26 var object3; var r6; var moduleValue3; var object; var value; const value2 = 0; const r10 = env0_6 ? 1 : value2; const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */; let withDelay = reanimatedRexportModule.withDelay; let r1 = env0_6 ? 400 : value2; const timingModule = require(4504) /* metro dependency 4504: timing */; let withTiming = timingModule.withTiming; const Easing = reanimatedRexportModule.Easing; const out = Easing.out; const Easing2 = reanimatedRexportModule.Easing; const value6 = Reflect.apply(withDelay, reanimatedRexportModule, [r1, Reflect.apply(withTiming, timingModule, [r10, {duration: 150, easing: Reflect.apply(out, Easing, [Easing2.ease])}])]); const r9 = env0_6 ? value2 : 16; object3 = {opacity: value6}; if (useReducedMotion) { r1 = r9; } else { moduleValue3 = reanimatedRexportModule; withDelay = moduleValue3.withDelay; r6 = env0_6 ? 400 : value2; value = require(4504) /* metro dependency 4504: timing */; withTiming = value.withTiming; object = {duration: 200}; object.easing = Easing.out((require(4017) /* metro dependency 4017: ReanimatedRexport */).Easing.ease); value = Reflect.apply(withDelay, moduleValue3, [r6, Reflect.apply(withTiming, value, [r9, object])]); r1 = value; } object3.transform = [{translateX: r1}]; return object3; } function _fun53163() { // fn#53163, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6913:4814, offset: 0x01340138, size: 422 bytes, params: 1, frame: 18 var name; const intl = (IndexNativeModule).intl; const t = (IndexNativeModule).t; var value4; var value5; const binding = env0_11; const optionBinding = option; if (binding) { name = optionBinding.emoji?.name; value4 = ''; value5 = (name ?? value4).replace(RegExp('^:|:$', 'g'), value4); return option.description == null ? intl.formatToPlainString(t.rBPpAN, {emojiName: value5, title: option.title}) : option.description.length > 0 ? intl.formatToPlainString(t.nSzqkg, {emojiName: value5, title: option.title, description: option.description}) : intl.formatToPlainString(t.rBPpAN, {emojiName: value5, title: option.title}); } return optionBinding.description == null ? option.title : option.description.length > 0 ? intl.formatToPlainString(t.U4lDOC, {title: option.title, description: option.description}) : option.title; } function PromptOptionButtonL() { // fn#53164, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6913:5607, owner: PromptOptionButton.L, offset: 0x013402de, size: 222 bytes, params: 1, frame: 19 var r4; var object; var value2; var Easing; if (useReducedMotion) { r4 = {duration: 0}; } else { object = {duration: 200}; value2 = environment.__proto__; Easing = (require(4017) /* metro dependency 4017: ReanimatedRexport */).Easing; object.easing = Easing.out((require(4017) /* metro dependency 4017: ReanimatedRexport */).Easing.ease); r4 = object; } object = {}; object.borderColor = TimingModule.withTiming(selected ? env0_14 : env0_10 ? env0_12 : env0_13, r4); object.backgroundColor = TimingModule.withTiming(selected ? env0_15 : 'transparent', r4); return object; } function PromptOptionButtonX() { // fn#53165, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6913:6108, owner: PromptOptionButton.X, offset: 0x013403bc, size: 50 bytes, params: 1, frame: 11 var object2; var object4; if (useReducedMotion) { object2 = {}; } else { object4 = {}; object4.scale = env0_9.get(); object2 = {transform: [object4]}; } return object2; } function PromptOptionButtonOnPress() { // fn#53166, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6913:6483, owner: PromptOptionButton.onPress, offset: 0x013403ee, size: 46 bytes, params: 1, frame: 12 onSelect(!selected); if (!suppressMemberCount) { env0_7(!selected); } } function PromptOptionButtonOnPressIn() { // fn#53167, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6913:6514, owner: PromptOptionButton.onPressIn, offset: 0x0134041c, size: 181 bytes, params: 1, frame: 23 const binding = env0_9; const set = binding.set; let value = environment.__proto__; value = require(4017) /* metro dependency 4017: ReanimatedRexport */; const withSequence = value.withSequence; let withTiming = TimingModule.withTiming; const value2 = Reflect.apply(withTiming, TimingModule, [1, {duration: 0}]); withTiming = TimingModule.withTiming; const Easing = (require(4017) /* metro dependency 4017: ReanimatedRexport */).Easing; const out = Easing.out; const Easing2 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).Easing; Reflect.apply(set, binding, [Reflect.apply(withSequence, value, [value2, Reflect.apply(withTiming, TimingModule, [1.02, {duration: 200, easing: Reflect.apply(out, Easing, [Easing2.ease])}])])]); } function PromptOptionButtonOnPressOut() { // fn#53168, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6913:6687, owner: PromptOptionButton.onPressOut, offset: 0x013404d1, size: 122 bytes, params: 1, frame: 20 const binding = env0_9; const set = binding.set; let value = environment.__proto__; value = require(4504) /* metro dependency 4504: timing */; const withTiming = value.withTiming; const Easing = (ReanimatedRexportModule).Easing; const out = Easing.out; const Easing2 = (ReanimatedRexportModule).Easing; Reflect.apply(set, binding, [Reflect.apply(withTiming, value, [1, {duration: 100, easing: Reflect.apply(out, Easing, [Easing2.ease])}])]); } } } global.__d(_fun53153, 6735, [57, 31, 27, 4502, 6540, 1881, 33, 4501, 697, 566, 4017, 4504, 4577, 6736, 1244, 3860, 3874, 5278, 6739, 1423, 4573, 6742, 1305, 2]) /* metro module 6735, dependencies: [57, 31, 27, 4502, 6540, 1881, 33, 4501, 697, 566, 4017, 4504, 4577, 6736, 1244, 3860, 3874, 5278, 6739, 1423, 4573, 6742, 1305, 2] */;