/* 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;
}