/* Metro module 4587; source: design/components/Button/native/ButtonPill.native.tsx; dependencies: [57, 31, 27, 33, 4582, 4501, 697, 4583, 3868, 3860, 4588, 4589, 4017, 4002, 4593, 3875, 4577, 4581, 2] */ function _fun38896(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#38896, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4765:6, offset: 0x010cfaf2, size: 505 bytes, params: 8, frame: 23 const env0_0 = require; const closure = BasicButtonPill; const closure2 = LoadingButtonPill; const closure3 = useLoadingStyles; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_3 = importDefault(57) /* metro dependency 57 */; const env0_4 = importAll(31) /* metro dependency 31 */; let value = require(27) /* metro dependency 27 */; const env0_5 = value.View; const env0_6 = value.StyleSheet; value = require(33) /* metro dependency 33 */; const env0_7 = value.jsx; const env0_8 = value.jsxs; const env0_9 = value.Fragment; value = require(4582) /* metro dependency 4582: ButtonConstantsNative */; let getButtonPadding = value.getButtonPadding; const SMALL_BUTTON_HEIGHT = (require(4582) /* metro dependency 4582: ButtonConstantsNative */).SMALL_BUTTON_HEIGHT; const SMALL_BUTTON_ICON_SIZE = (require(4582) /* metro dependency 4582: ButtonConstantsNative */).SMALL_BUTTON_ICON_SIZE; const env0_11 = Reflect.apply(getButtonPadding, value, [SMALL_BUTTON_HEIGHT, SMALL_BUTTON_ICON_SIZE]); value = require(4582) /* metro dependency 4582: ButtonConstantsNative */; getButtonPadding = value.getButtonPadding; const MEDIUM_BUTTON_HEIGHT = (require(4582) /* metro dependency 4582: ButtonConstantsNative */).MEDIUM_BUTTON_HEIGHT; const MEDIUM_BUTTON_ICON_SIZE = (require(4582) /* metro dependency 4582: ButtonConstantsNative */).MEDIUM_BUTTON_ICON_SIZE; const env0_12 = Reflect.apply(getButtonPadding, value, [MEDIUM_BUTTON_HEIGHT, MEDIUM_BUTTON_ICON_SIZE]); value = require(4582) /* metro dependency 4582: ButtonConstantsNative */; getButtonPadding = value.getButtonPadding; const LARGE_BUTTON_HEIGHT = (require(4582) /* metro dependency 4582: ButtonConstantsNative */).LARGE_BUTTON_HEIGHT; const LARGE_BUTTON_ICON_SIZE = (require(4582) /* metro dependency 4582: ButtonConstantsNative */).LARGE_BUTTON_ICON_SIZE; const env0_13 = Reflect.apply(getButtonPadding, value, [LARGE_BUTTON_HEIGHT, LARGE_BUTTON_ICON_SIZE]); const env0_14 = (require(4501) /* metro dependency 4501: createStyles */).createStyles(_fun38905); object = {code: "function ButtonPillNativeTsx1(){const{withSpring,loading,SUBTLE_SPRING,useReducedMotion,withDelay,FADE_DELAY,offsetY}=this.__closure;const opacityTransition=withSpring(loading?0:1,SUBTLE_SPRING,'animate-always');if(useReducedMotion){return{opacity:loading?opacityTransition:withDelay(FADE_DELAY,opacityTransition),transform:[{translateY:0}]};}return{opacity:opacityTransition,transform:[{translateY:withSpring(loading?-1*offsetY:0,SUBTLE_SPRING)}]};}"}; object = {code: "function ButtonPillNativeTsx2(){const{withSpring,loading,SUBTLE_SPRING,useReducedMotion,withDelay,FADE_DELAY,offsetY}=this.__closure;const opacityTransition=withSpring(loading?1:0,SUBTLE_SPRING,'animate-always');if(useReducedMotion){return{opacity:loading?withDelay(FADE_DELAY,opacityTransition):opacityTransition,transform:[{translateY:0}]};}return{opacity:opacityTransition,transform:[{translateY:withSpring(loading?0:offsetY,SUBTLE_SPRING)}]};}"}; (require(2) /* metro dependency 2 */).fileFinishedImporting('design/components/Button/native/ButtonPill.native.tsx'); exports.ButtonPill = ButtonPill; exports.BasicButtonPill = closure; exports.LoadingButtonPill = closure2; exports.useLoadingStyles = closure3; } function PillWrapper({children, variant, style, pressed, shiny, expressiveRiveRef, expressivePressState, size}) { // fn#38897, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4765:1609, offset: 0x010cfceb, size: 847 bytes, params: 2, frame: 33 var r5; var object2; var value7; var object4; var expressivePill; var ExpressiveButtonRive; var object6; var items2; shiny = !(shiny === undefined) && shiny; const value2 = require(dependencyMap[7]).useButtonPillStyles(variant, pressed); const value3 = require(dependencyMap[7]).useGradientPillStyles(variant); const moduleValue3 = require(dependencyMap[8]); const useThemeContext = moduleValue3.useThemeContext; const theme = Reflect.apply(useThemeContext, moduleValue3, []).theme; const styles = useStyles(variant, size); const moduleValue4 = require(dependencyMap[9]); let useToken = moduleValue4.useToken; const REDESIGN_BUTTON_PREMIUM_PRIMARY_PURPLE_FOR_GRADIENT = importDefault(dependencyMap[6]).colors.REDESIGN_BUTTON_PREMIUM_PRIMARY_PURPLE_FOR_GRADIENT; let items = [Reflect.apply(useToken, moduleValue4, [REDESIGN_BUTTON_PREMIUM_PRIMARY_PURPLE_FOR_GRADIENT])]; const moduleValue5 = require(dependencyMap[9]); useToken = moduleValue5.useToken; const REDESIGN_BUTTON_PREMIUM_PRIMARY_PURPLE_FOR_GRADIENT_2 = importDefault(dependencyMap[6]).colors.REDESIGN_BUTTON_PREMIUM_PRIMARY_PURPLE_FOR_GRADIENT_2; items[1] = Reflect.apply(useToken, moduleValue5, [REDESIGN_BUTTON_PREMIUM_PRIMARY_PURPLE_FOR_GRADIENT_2]); const moduleValue6 = require(dependencyMap[9]); useToken = moduleValue6.useToken; const REDESIGN_BUTTON_PREMIUM_PRIMARY_PINK_FOR_GRADIENT = importDefault(dependencyMap[6]).colors.REDESIGN_BUTTON_PREMIUM_PRIMARY_PINK_FOR_GRADIENT; items[2] = Reflect.apply(useToken, moduleValue6, [REDESIGN_BUTTON_PREMIUM_PRIMARY_PINK_FOR_GRADIENT]); const r10 = shiny ? ((ButtonShine) => )(require(dependencyMap[10]).ButtonShine) : null; const jsxRuntimeEnv0_9Binding = jsxRuntimeEnv0_9; if (variant === 'experimental_premium-primary') { items = [((Component) => )(importDefault(dependencyMap[11]))]; items[1] = ((View) => {children}{r10})(importDefault(dependencyMap[12]).View); object2 = {children: items}; } else { value7 = variant === 'expressive'; if (value7) { object4 = {}; expressivePill = styles.expressivePill; object4.style = [StyleSheet.absoluteFill, expressivePill]; ExpressiveButtonRive = require(dependencyMap[8]).ExpressiveButtonRive; var expressiveButtonRiveProps2 = {'withReducedMotion': 'short-loop', 'ref': null, 'fit': 'layout', ref: expressiveRiveRef, artboard: require(dependencyMap[13]).isThemeLight(theme) ? 'Mobile Expressive Button Lightmode' : 'Mobile Expressive Button Dark Mode'}; object6 = {}; object6.buttonColor = styles.expressiveRiveFill.color; expressivePill = styles.expressivePill; object6.cornerRadius = expressivePill.borderRadius; copyDataProperties(object6, expressivePressState, dependencyMap); expressiveButtonRiveProps2.dataBinding = object6; r5 = ; } else { r5 = value7; } items2 = [r5]; items2[1] = ((View) => {children}{r10})(importDefault(dependencyMap[12]).View); object2 = {children: items2}; } return ((Fragment) => )(jsxRuntimeEnv0_9Binding); } function BasicButtonPill({children, style, pressed, variant, size = require(dependencyMap[4]).DEFAULT_BUTTON_SIZE, shiny, expressiveRiveRef, expressivePressState}) { // fn#38898, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4765:2766, offset: 0x010d003a, size: 211 bytes, params: 2, frame: 23 variant = variant === undefined ? 'primary' : variant; shiny = !(shiny === undefined) && shiny; const styles = useStyles(variant, size); return ( {children} ); } function LoadingButtonPill({children, style, pressed, variant, size = require(dependencyMap[4]).DEFAULT_BUTTON_SIZE, loading, loaderSize, expressiveRiveRef, expressivePressState}) { // fn#38899, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4765:3114, offset: 0x010d010d, size: 499 bytes, params: 2, frame: 31 var r8; var Ellipsis; variant = variant === undefined ? 'primary' : variant; loading = !(loading === undefined) && loading; const styles = useStyles(variant, size); const env0_1 = env0_4.useRef(null); const [property, env0_2] = env0_3(env0_4.useState(loading), 2); env0_4.useEffect(_fun38900, [loading]); const value5 = env0_3(useLoadingStyles(loading, size), 2); const property2 = value5[0]; const property3 = value5[1]; const pillWrapperBindingProps = {variant: variant, size: size, style: [styles.pill, style], pressed: pressed, expressiveRiveRef: expressiveRiveRef, expressivePressState: expressivePressState}; let View = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View; const view = {children}; View = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View; const items4 = [styles.ellipsis, property3]; if (property) { Ellipsis = (require(4593) /* metro dependency 4593: ButtonEllipsisNative */).Ellipsis; size = loaderSize ?? size; r8 = ; } else { r8 = property; } return ( {view} {r8} ); } function useLoadingStyles(a0, a1) { // fn#38902, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4765:4737, offset: 0x010d037d, size: 404 bytes, params: 3, frame: 24 const env0_0 = a0; const binding = env0_4; const useContext = binding.useContext; const AccessibilityPreferencesContext = (require(3875) /* metro dependency 3875: AccessibilityPreferencesContext */).AccessibilityPreferencesContext; const enabled = Reflect.apply(useContext, binding, [AccessibilityPreferencesContext]).reducedMotion.enabled; const value2 = 12; const r6 = a1 !== 'lg' ? value2 : 18; const moduleValue = require(dependencyMap[value2]); let useAnimatedStyle = moduleValue.useAnimatedStyle; let closure = useLoadingStylesO; let object = {}; const withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring; object.withSpring = withSpring; object.loading = a0; const SUBTLE_SPRING = (require(4581) /* metro dependency 4581: springPresets */).SUBTLE_SPRING; object.SUBTLE_SPRING = SUBTLE_SPRING; object.useReducedMotion = enabled; object.withDelay = require(dependencyMap[value2]).withDelay; object.FADE_DELAY = env0_10; object.offsetY = r6; closure.__closure = object; closure.__workletHash = 9388603334085; closure.__initData = env0_15; object = [Reflect.apply(useAnimatedStyle, moduleValue, [closure])]; const moduleValue2 = require(dependencyMap[value2]); useAnimatedStyle = moduleValue2.useAnimatedStyle; closure = useLoadingStylesL; const object3 = {}; object3.withSpring = withSpring; object3.loading = a0; object3.SUBTLE_SPRING = SUBTLE_SPRING; object3.useReducedMotion = enabled; object3.withDelay = require(dependencyMap[value2]).withDelay; object3.FADE_DELAY = env0_10; object3.offsetY = r6; closure.__closure = object3; closure.__workletHash = 8255420825872; closure.__initData = env0_16; object[1] = Reflect.apply(useAnimatedStyle, moduleValue2, [closure]); return object; } function _fun38905(a0, a1) { // fn#38905, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4765:483, offset: 0x010d0725, size: 574 bytes, params: 3, frame: 19 var r7; const LARGE_BUTTON_HEIGHT = (require(4582) /* metro dependency 4582: ButtonConstantsNative */).LARGE_BUTTON_HEIGHT; const MEDIUM_BUTTON_HEIGHT = (require(4582) /* metro dependency 4582: ButtonConstantsNative */).MEDIUM_BUTTON_HEIGHT; const SMALL_BUTTON_HEIGHT = (require(4582) /* metro dependency 4582: ButtonConstantsNative */).SMALL_BUTTON_HEIGHT; let object3 = {}; if (a1 === 'sm') { object3 = {}; object3.minHeight = SMALL_BUTTON_HEIGHT; object3.minWidth = SMALL_BUTTON_HEIGHT; object3.paddingHorizontal = (require(4582) /* metro dependency 4582: ButtonConstantsNative */).SMALL_BUTTON_HORIZONTAL_PADDING; object3.paddingVertical = env0_11; r7 = object3; } else if (a1 === 'md') { object3 = {}; object3.minHeight = MEDIUM_BUTTON_HEIGHT; object3.minWidth = MEDIUM_BUTTON_HEIGHT; object3.paddingHorizontal = (require(4582) /* metro dependency 4582: ButtonConstantsNative */).MEDIUM_BUTTON_HORIZONTAL_PADDING; object3.paddingVertical = env0_12; r7 = object3; } else if (a1 !== 'lg') { r7 = object3; } else { object3 = {}; object3.minHeight = LARGE_BUTTON_HEIGHT; object3.minWidth = LARGE_BUTTON_HEIGHT; object3.paddingHorizontal = (require(4582) /* metro dependency 4582: ButtonConstantsNative */).LARGE_BUTTON_HORIZONTAL_PADDING; object3.paddingVertical = env0_13; r7 = object3; } const r3 = a1 === 'lg' ? (importDefault(697) /* metro dependency 697: native */).modules.button.BORDER_RADIUS_LG : (importDefault(697) /* metro dependency 697: native */).modules.button.BORDER_RADIUS; object3 = {}; const object4 = {'flexDirection': 'row', 'alignItems': 'center', 'justifyContent': 'center', 'overflow': 'hidden'}; const BUTTON_BORDER_WIDTH = (require(4582) /* metro dependency 4582: ButtonConstantsNative */).BUTTON_BORDER_WIDTH; object4.borderWidth = BUTTON_BORDER_WIDTH; object4.borderRadius = r3; copyDataProperties(object4, r7, require); object3.pill = object4; object3.expressivePill = {overflow: 'hidden', borderRadius: r3}; const CONTROL_EXPRESSIVE_BACKGROUND_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.CONTROL_EXPRESSIVE_BACKGROUND_DEFAULT; object3.expressiveRiveFill = {color: CONTROL_EXPRESSIVE_BACKGROUND_DEFAULT}; object3.childContainer = {'flexDirection': 'row', 'alignItems': 'center', 'justifyContent': 'center', 'flexGrow': 1, 'maxWidth': '100%'}; object3.ellipsis = {'position': 'absolute', 'height': '100%', 'width': '100%', 'justifyContent': 'center', 'alignItems': 'center'}; return object3; } function ButtonPill(a0) { // fn#38906, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4765:5958, offset: 0x010d0963, size: 81 bytes, params: 2, frame: 14 return a0.loading == null ? : ; } function _fun38900() { // fn#38900, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4765:3379, offset: 0x010d0300, size: 107 bytes, params: 1, frame: 15 if (env0_1.current != null) { global.clearTimeout(env0_1.current); } if (loading) { env0_2(true); } else { env0_1.current = global.setTimeout(_fun38901, 500); } } function useLoadingStylesO() { // fn#38903, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4765:4909, owner: useLoadingStyles.o, offset: 0x010d0511, size: 271 bytes, params: 1, frame: 22 var moduleValue2; const value = environment.__proto__; const springModule = require(4577) /* metro dependency 4577: spring */; const withSpring = springModule.withSpring; const r4 = env0_0 ? 0 : 1; const SUBTLE_SPRING = (require(4581) /* metro dependency 4581: springPresets */).SUBTLE_SPRING; const value5 = Reflect.apply(withSpring, springModule, [r4, SUBTLE_SPRING, 'animate-always']); const enabledBinding = enabled; const object2 = {}; if (enabledBinding) { object2.opacity = env0_0 ? value5 : (require(4017) /* metro dependency 4017: ReanimatedRexport */).withDelay(env1_10, value5); object2.transform = [{translateY: 0}]; } else { object2.opacity = value5; moduleValue2 = springModule; object2.transform = [{translateY: moduleValue2.withSpring(env0_0 ? -1 * env0_2 : 0, SUBTLE_SPRING)}]; } return object2; } function useLoadingStylesL() { // fn#38904, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4765:5399, owner: useLoadingStyles.l, offset: 0x010d0620, size: 261 bytes, params: 1, frame: 23 var moduleValue2; const value = environment.__proto__; const springModule = require(4577) /* metro dependency 4577: spring */; const withSpring = springModule.withSpring; const value3 = 0; const r5 = env0_0 ? 1 : value3; const SUBTLE_SPRING = (require(4581) /* metro dependency 4581: springPresets */).SUBTLE_SPRING; const value5 = Reflect.apply(withSpring, springModule, [r5, SUBTLE_SPRING, 'animate-always']); const enabledBinding = enabled; const object2 = {}; if (enabledBinding) { object2.opacity = env0_0 ? (require(4017) /* metro dependency 4017: ReanimatedRexport */).withDelay(env1_10, value5) : value5; object2.transform = [{translateY: value3}]; } else { object2.opacity = value5; moduleValue2 = springModule; object2.transform = [{translateY: moduleValue2.withSpring(env0_0 ? value3 : env0_2, SUBTLE_SPRING)}]; } return object2; }