decord/source/design/components/Button/native/ButtonPill.native.tsx

351 lines
14 KiB
TypeScript
Raw Normal View History

2026-08-25 06:04:03 +00:00
// Module ID: 4824
// Function ID: 4825
2026-07-20 16:05:17 +00:00
// Name: PillWrapper
2026-08-25 06:04:03 +00:00
// Dependencies: [32, 19, 17, 21, 4819, 4380, 712, 4820, 4108, 4101, 4825, 4826, 4120, 1363, 4830, 1356, 4814, 4818, 2]
2026-07-20 16:05:17 +00:00
// Exports: ButtonPill
2026-08-25 06:04:03 +00:00
// Module 4824 (PillWrapper)
2026-08-24 06:08:38 +00:00
import ThemesDefault from "Themes" /* 712 */;
2026-08-25 06:04:03 +00:00
import map from "map" /* 4101 */;
import ManaContext from "ManaContext" /* 4108 */;
import _modDef4120 from "module_4120" /* 4120 */;
import MINIMUM_HIT_AREA2 from "MINIMUM_HIT_AREA" /* 4819 */;
import styleProperties from "styleProperties" /* 4820 */;
import LinearGradientDefault from "LinearGradient" /* 4826 */;
2026-08-24 06:08:38 +00:00
import closure_3 from "_slicedToArray" /* 32 */;
import closure_4 from "noop" /* 19 */;
import get_ActivityIndicator from "get ActivityIndicator" /* 17 */;
import jsxProd from "jsxProd" /* 21 */;
2026-08-25 06:04:03 +00:00
import MINIMUM_HIT_AREA from "MINIMUM_HIT_AREA" /* 4819 */;
import createCacheKey from "createCacheKey" /* 4380 */;
2026-07-23 10:11:24 +00:00
2026-08-24 06:08:38 +00:00
require = arg1;
2026-07-20 16:05:17 +00:00
function PillWrapper(expressivePressState) {
({ children, variant, style, shiny } = expressivePressState);
if (shiny === undefined) {
shiny = false;
}
expressivePressState = expressivePressState.expressivePressState;
({ expressiveRiveRef, size } = expressivePressState);
2026-08-24 06:08:38 +00:00
let obj = styleProperties;
2026-07-20 16:05:17 +00:00
const buttonPillStyles = obj.useButtonPillStyles(variant, expressivePressState.pressed);
2026-08-24 06:08:38 +00:00
obj1 = styleProperties;
2026-07-20 16:05:17 +00:00
const gradientPillStyles = obj1.useGradientPillStyles(variant);
2026-08-24 06:08:38 +00:00
let obj2 = ManaContext;
2026-07-29 08:29:29 +00:00
const tmp5 = callback3(variant, size);
2026-08-24 06:08:38 +00:00
let obj3 = map;
let items = [obj3.useToken(ThemesDefault.colors.REDESIGN_BUTTON_PREMIUM_PRIMARY_PURPLE_FOR_GRADIENT), , ];
let obj4 = map;
items[1] = obj4.useToken(ThemesDefault.colors.REDESIGN_BUTTON_PREMIUM_PRIMARY_PURPLE_FOR_GRADIENT_2);
let obj5 = map;
items[2] = obj5.useToken(ThemesDefault.colors.REDESIGN_BUTTON_PREMIUM_PRIMARY_PINK_FOR_GRADIENT);
const items1 = [ThemesDefault.unsafe_rawColors.PREMIUM_TIER_0_PURPLE_FOR_GRADIENTS, ThemesDefault.unsafe_rawColors.PREMIUM_TIER_0_BLUE_FOR_GRADIENTS_2, ThemesDefault.unsafe_rawColors.PREMIUM_TIER_0_BLUE_FOR_GRADIENTS];
2026-07-29 08:29:29 +00:00
let tmp7 = null;
2026-07-20 16:05:17 +00:00
if (shiny) {
2026-07-29 08:29:29 +00:00
obj = { variant: null };
obj[0] = variant;
2026-08-25 06:04:03 +00:00
tmp7 = callback2(tmp(4825).ButtonShine, obj);
2026-07-20 16:05:17 +00:00
}
if ("experimental_premium-primary" !== variant) {
if ("experimental_premium-basic" !== variant) {
2026-07-29 08:29:29 +00:00
let tmp11Result = "expressive" === variant;
if (tmp11Result) {
obj = { style: null, children: null };
const items2 = [closure_6.absoluteFill, tmp5.expressivePill];
obj[0] = items2;
obj1 = { withReducedMotion: "short-loop", ref: null, fit: "layout", artboard: null, dataBinding: null };
obj1[1] = expressiveRiveRef;
2026-07-20 16:05:17 +00:00
let str = "Mobile Expressive Button Dark Mode";
2026-07-29 08:29:29 +00:00
if (tmpResult.isThemeLight(obj2.useThemeContext().theme)) {
2026-07-20 16:05:17 +00:00
str = "Mobile Expressive Button Lightmode";
}
2026-07-29 08:29:29 +00:00
obj1[3] = str;
obj2 = { buttonColor: null, cornerRadius: null };
obj2[0] = tmp5.expressiveRiveFill.color;
obj2[1] = tmp5.expressivePill.borderRadius;
2026-07-20 16:05:17 +00:00
const merged = Object.assign(expressivePressState);
2026-07-29 08:29:29 +00:00
obj1[4] = obj2;
2026-08-25 06:04:03 +00:00
obj[1] = callback2(tmp(4108).ExpressiveButtonRive, obj1);
2026-07-29 08:29:29 +00:00
tmp11Result = tmp11(closure_5, obj);
const tmp12 = closure_5;
2026-08-11 06:20:06 +00:00
tmpResult = tmp(1363);
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
obj3 = { children: null };
const items3 = [tmp11Result, ];
obj4 = { style: null, children: null };
2026-07-20 16:05:17 +00:00
const items4 = [style, buttonPillStyles];
2026-07-29 08:29:29 +00:00
obj4[0] = items4;
const items5 = [children, tmp7];
obj4[1] = items5;
2026-08-25 06:04:03 +00:00
items3[1] = tmp9(tmp6(4120).View, obj4);
2026-07-29 08:29:29 +00:00
obj3[0] = items3;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
return tmp9(tmp10, obj3);
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
obj5 = { start: { x: 0, y: 0 }, end: { x: 1, y: 0 }, style: items6, colors: null };
2026-07-23 10:11:24 +00:00
items6 = [style, gradientPillStyles, closure_6.absoluteFill];
2026-07-20 16:05:17 +00:00
if ("experimental_premium-basic" === variant) {
items = items1;
}
2026-07-29 08:29:29 +00:00
const obj6 = { children: null };
obj5[3] = items;
2026-08-24 06:08:38 +00:00
const items7 = [callback2(LinearGradientDefault, obj5), ];
2026-07-20 16:05:17 +00:00
const items8 = [style, buttonPillStyles];
2026-07-29 08:29:29 +00:00
const items9 = [children, tmp7];
2026-08-25 06:04:03 +00:00
items7[1] = closure_8(_modDef4120.View, { style: items8, children: items9 });
2026-07-29 08:29:29 +00:00
obj6[0] = items7;
obj3 = obj6;
2026-07-20 16:05:17 +00:00
}
class BasicButtonPill {
constructor(arg0) {
str = global.variant;
({ children, style, pressed } = global);
if (str === undefined) {
str = "primary";
}
DEFAULT_BUTTON_SIZE = global.size;
if (DEFAULT_BUTTON_SIZE === undefined) {
2026-07-23 10:11:24 +00:00
tmp = closure_0;
tmp2 = closure_2;
2026-07-29 08:29:29 +00:00
DEFAULT_BUTTON_SIZE = require("MINIMUM_HIT_AREA").DEFAULT_BUTTON_SIZE;
2026-07-20 16:05:17 +00:00
}
flag = global.shiny;
if (flag === undefined) {
flag = false;
}
({ expressiveRiveRef, expressivePressState } = global);
2026-08-24 06:08:38 +00:00
tmp3 = closure_14(str, DEFAULT_BUTTON_SIZE);
2026-07-29 08:29:29 +00:00
obj = { variant: str, size: DEFAULT_BUTTON_SIZE, style: items, pressed, shiny: flag, expressiveRiveRef, expressivePressState, children: jsx(View, obj) };
2026-07-20 16:05:17 +00:00
items = [, ];
items[0] = tmp3.pill;
items[1] = style;
obj = { style: tmp3.childContainer, children };
return jsx(PillWrapper, obj);
}
}
class LoadingButtonPill {
constructor(arg0) {
str = global.variant;
({ children, style, pressed } = global);
if (str === undefined) {
str = "primary";
}
DEFAULT_BUTTON_SIZE = global.size;
if (DEFAULT_BUTTON_SIZE === undefined) {
2026-07-23 10:11:24 +00:00
tmp = c0;
2026-08-24 06:08:38 +00:00
tmp2 = closure_2;
2026-07-29 08:29:29 +00:00
DEFAULT_BUTTON_SIZE = require("MINIMUM_HIT_AREA").DEFAULT_BUTTON_SIZE;
2026-07-20 16:05:17 +00:00
}
flag = global.loading;
if (flag === undefined) {
flag = false;
}
2026-07-23 10:11:24 +00:00
c0 = flag;
2026-07-20 16:05:17 +00:00
loaderSize = global.loaderSize;
2026-08-24 06:08:38 +00:00
closure_1 = undefined;
closure_2 = undefined;
2026-07-20 16:05:17 +00:00
({ expressiveRiveRef, expressivePressState } = global);
2026-08-24 06:08:38 +00:00
tmp3 = closure_14(str, DEFAULT_BUTTON_SIZE);
closure_1 = closure_4.useRef(null);
tmp4 = closure_3(closure_4.useState(flag), 2);
[tmp5, closure_2] = tmp4;
2026-07-20 16:05:17 +00:00
items = [];
items[0] = flag;
2026-08-24 06:08:38 +00:00
effect = closure_4.useEffect(() => {
2026-07-20 16:05:17 +00:00
if (null != ref.current) {
const _clearTimeout = clearTimeout;
2026-07-29 08:29:29 +00:00
clearTimeout(tmp.current);
2026-07-20 16:05:17 +00:00
}
if (flag) {
2026-07-29 08:29:29 +00:00
_undefined(true);
2026-07-20 16:05:17 +00:00
} else {
const _setTimeout = setTimeout;
2026-07-29 08:29:29 +00:00
tmp.current = setTimeout(() => {
callback(false);
2026-07-20 16:05:17 +00:00
}, 500);
}
}, items);
2026-08-24 06:08:38 +00:00
tmp7 = closure_3(useLoadingStyles(flag, DEFAULT_BUTTON_SIZE), 2);
2026-07-29 08:29:29 +00:00
obj = { variant: str, size: DEFAULT_BUTTON_SIZE, style: items1, pressed, expressiveRiveRef, expressivePressState, children: null };
2026-07-20 16:05:17 +00:00
items1 = [, ];
items1[0] = tmp3.pill;
items1[1] = style;
2026-07-29 08:29:29 +00:00
tmp12 = jsx;
2026-07-20 16:05:17 +00:00
[tmp8, tmp9] = tmp7;
tmp10 = jsxs;
tmp11 = PillWrapper;
2026-08-24 06:08:38 +00:00
tmp13 = closure_2;
2026-07-20 16:05:17 +00:00
items2 = [, ];
items2[0] = tmp3.childContainer;
items2[1] = tmp8;
items3 = [, ];
2026-08-25 06:04:03 +00:00
items3[0] = jsx(require("module_4120").View, { style: items2, children });
2026-07-29 08:29:29 +00:00
obj = { style: items4, children: null };
2026-07-20 16:05:17 +00:00
items4 = [, ];
items4[0] = tmp3.ellipsis;
items4[1] = tmp9;
2026-07-29 08:29:29 +00:00
if (tmp12Result) {
2026-07-23 10:11:24 +00:00
tmp14 = c0;
2026-07-29 08:29:29 +00:00
obj1 = { variant: null, size: null };
obj1[0] = str;
if (loaderSize == null) {
loaderSize = DEFAULT_BUTTON_SIZE;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
obj1[1] = loaderSize;
tmp12Result = tmp12(require("EllipsisCircle").Ellipsis, obj1);
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
obj[1] = tmp12Result;
2026-08-25 06:04:03 +00:00
items3[1] = tmp12(require("module_4120").View, obj);
2026-07-29 08:29:29 +00:00
obj[6] = items3;
2026-07-20 16:05:17 +00:00
return tmp10(tmp11, obj);
}
}
function useLoadingStyles(flag, DEFAULT_BUTTON_SIZE) {
2026-07-23 10:11:24 +00:00
const _require = flag;
const enabled = React.useContext(_require(num[15]).AccessibilityPreferencesContext).reducedMotion.enabled;
num = 12;
2026-07-20 16:05:17 +00:00
if ("lg" === DEFAULT_BUTTON_SIZE) {
num = 18;
}
2026-07-29 08:29:29 +00:00
let tmpResult = tmp(tmp2[12]);
2026-07-20 16:05:17 +00:00
const fn = function o() {
2026-07-23 10:11:24 +00:00
let obj = callback(num[16]);
num = 1;
if (callback) {
2026-07-20 16:05:17 +00:00
num = 0;
}
2026-07-23 10:11:24 +00:00
const withSpringResult = obj.withSpring(num, callback(num[17]).SUBTLE_SPRING, "animate-always");
2026-07-29 08:29:29 +00:00
obj = { opacity: null, transform: null };
2026-07-20 16:05:17 +00:00
if (enabled) {
let withDelayResult = withSpringResult;
2026-07-29 08:29:29 +00:00
if (!tmp3) {
let tmpResult = tmp(tmp2[12]);
2026-08-24 06:08:38 +00:00
withDelayResult = tmpResult.withDelay(closure_1_10, withSpringResult);
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
obj[0] = withDelayResult;
const items = [{ translateY: 0 }];
obj[1] = items;
let tmp6 = obj;
2026-07-20 16:05:17 +00:00
} else {
2026-07-29 08:29:29 +00:00
obj[0] = withSpringResult;
tmpResult = tmp(tmp2[16]);
2026-07-20 16:05:17 +00:00
let num2 = 0;
2026-07-29 08:29:29 +00:00
if (tmp3) {
2026-07-20 16:05:17 +00:00
num2 = -1 * num;
}
2026-07-29 08:29:29 +00:00
obj = { translateY: null };
obj[0] = tmpResult.withSpring(num2, tmp(tmp2[17]).SUBTLE_SPRING);
const items1 = [obj];
obj[1] = items1;
tmp6 = obj;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
return tmp6;
2026-07-20 16:05:17 +00:00
};
2026-07-29 08:29:29 +00:00
let obj = { withSpring: tmp(tmp2[16]).withSpring, loading: flag, SUBTLE_SPRING: tmp(tmp2[17]).SUBTLE_SPRING, useReducedMotion: enabled, withDelay: tmp(tmp2[12]).withDelay, FADE_DELAY: c10, offsetY: num };
2026-07-20 16:05:17 +00:00
fn.__closure = obj;
fn.__workletHash = 9388603334085;
2026-07-29 08:29:29 +00:00
fn.__initData = closure_18;
let items = [tmpResult.useAnimatedStyle(fn), ];
tmpResult = tmp(tmp2[12]);
2026-07-20 16:05:17 +00:00
const fn2 = function l() {
2026-07-23 10:11:24 +00:00
let obj = callback(num[16]);
num = 0;
if (callback) {
2026-07-20 16:05:17 +00:00
num = 1;
}
2026-07-23 10:11:24 +00:00
const withSpringResult = obj.withSpring(num, callback(num[17]).SUBTLE_SPRING, "animate-always");
2026-07-29 08:29:29 +00:00
obj = { opacity: null, transform: null };
2026-07-20 16:05:17 +00:00
if (enabled) {
let withDelayResult = withSpringResult;
2026-07-29 08:29:29 +00:00
if (tmp3) {
let tmpResult = tmp(tmp2[12]);
2026-08-24 06:08:38 +00:00
withDelayResult = tmpResult.withDelay(closure_1_10, withSpringResult);
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
obj[0] = withDelayResult;
const items = [{ translateY: 0 }];
obj[1] = items;
let tmp5 = obj;
2026-07-20 16:05:17 +00:00
} else {
2026-07-29 08:29:29 +00:00
obj[0] = withSpringResult;
tmpResult = tmp(tmp2[16]);
2026-07-20 16:05:17 +00:00
let num2 = 0;
2026-07-29 08:29:29 +00:00
if (!tmp3) {
2026-07-20 16:05:17 +00:00
num2 = num;
}
2026-07-29 08:29:29 +00:00
obj = { translateY: null };
obj[0] = tmpResult.withSpring(num2, tmp(tmp2[17]).SUBTLE_SPRING);
const items1 = [obj];
obj[1] = items1;
tmp5 = obj;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
return tmp5;
2026-07-20 16:05:17 +00:00
};
2026-07-29 08:29:29 +00:00
obj = { withSpring: tmp(tmp2[16]).withSpring, loading: flag, SUBTLE_SPRING: tmp(tmp2[17]).SUBTLE_SPRING, useReducedMotion: enabled, withDelay: tmp(tmp2[12]).withDelay, FADE_DELAY: c10, offsetY: num };
2026-07-20 16:05:17 +00:00
fn2.__closure = obj;
fn2.__workletHash = 8255420825872;
2026-07-29 08:29:29 +00:00
fn2.__initData = closure_19;
items[1] = tmpResult.useAnimatedStyle(fn2);
2026-07-20 16:05:17 +00:00
return items;
}
2026-07-29 08:29:29 +00:00
({ View: c5, StyleSheet: closure_6 } = get_ActivityIndicator);
2026-08-24 06:08:38 +00:00
({ jsx: error, jsxs: closure_8, Fragment: c9 } = jsxProd);
2026-07-23 10:11:24 +00:00
let c10 = 300;
2026-07-29 08:29:29 +00:00
const buttonPadding = MINIMUM_HIT_AREA.getButtonPadding(require("MINIMUM_HIT_AREA").SMALL_BUTTON_HEIGHT, require("MINIMUM_HIT_AREA").SMALL_BUTTON_ICON_SIZE);
const buttonPadding2 = MINIMUM_HIT_AREA.getButtonPadding(require("MINIMUM_HIT_AREA").MEDIUM_BUTTON_HEIGHT, require("MINIMUM_HIT_AREA").MEDIUM_BUTTON_ICON_SIZE);
const buttonPadding3 = MINIMUM_HIT_AREA.getButtonPadding(require("MINIMUM_HIT_AREA").LARGE_BUTTON_HEIGHT, require("MINIMUM_HIT_AREA").LARGE_BUTTON_ICON_SIZE);
let closure_14 = createCacheKey.createStyles((arg0, arg1) => {
2026-07-20 16:05:17 +00:00
if ("sm" === arg1) {
2026-07-29 08:29:29 +00:00
let obj = { minHeight: null, minWidth: null, paddingHorizontal: null, paddingVertical: null };
2026-08-24 06:08:38 +00:00
obj[0] = MINIMUM_HIT_AREA2.SMALL_BUTTON_HEIGHT;
obj[1] = MINIMUM_HIT_AREA2.SMALL_BUTTON_HEIGHT;
obj[2] = MINIMUM_HIT_AREA2.SMALL_BUTTON_HORIZONTAL_PADDING;
2026-07-29 08:29:29 +00:00
obj[3] = closure_11;
2026-07-20 16:05:17 +00:00
} else if ("md" === arg1) {
2026-07-29 08:29:29 +00:00
obj = { minHeight: null, minWidth: null, paddingHorizontal: null, paddingVertical: null };
2026-08-24 06:08:38 +00:00
obj[0] = MINIMUM_HIT_AREA2.MEDIUM_BUTTON_HEIGHT;
obj[1] = MINIMUM_HIT_AREA2.MEDIUM_BUTTON_HEIGHT;
obj[2] = MINIMUM_HIT_AREA2.MEDIUM_BUTTON_HORIZONTAL_PADDING;
2026-07-29 08:29:29 +00:00
obj[3] = closure_12;
} else {
obj = {};
if ("lg" === arg1) {
2026-08-24 06:08:38 +00:00
obj1 = { minHeight: null, minWidth: null, paddingHorizontal: null, paddingVertical: null };
obj1[0] = MINIMUM_HIT_AREA2.LARGE_BUTTON_HEIGHT;
obj1[1] = MINIMUM_HIT_AREA2.LARGE_BUTTON_HEIGHT;
obj1[2] = MINIMUM_HIT_AREA2.LARGE_BUTTON_HORIZONTAL_PADDING;
2026-07-29 08:29:29 +00:00
obj1[3] = closure_13;
obj = obj1;
}
2026-07-20 16:05:17 +00:00
}
2026-08-24 06:08:38 +00:00
let obj3 = MINIMUM_HIT_AREA2;
2026-07-25 08:10:48 +00:00
const buttonBorderRadius = obj3.getButtonBorderRadius(arg1);
2026-07-29 08:29:29 +00:00
const obj2 = { pill: null, expressivePill: null, expressiveRiveFill: null, childContainer: null, ellipsis: null };
2026-08-24 06:08:38 +00:00
obj3 = { flexDirection: "row", alignItems: "center", justifyContent: "center", overflow: "hidden", borderWidth: MINIMUM_HIT_AREA2.BUTTON_BORDER_WIDTH, borderRadius: buttonBorderRadius };
2026-07-20 16:05:17 +00:00
const merged = Object.assign(obj);
2026-07-29 08:29:29 +00:00
obj2[0] = obj3;
obj2[1] = { overflow: "hidden", borderRadius: buttonBorderRadius };
2026-08-24 06:08:38 +00:00
obj2[2] = { color: ThemesDefault.colors.CONTROL_EXPRESSIVE_BACKGROUND_DEFAULT };
2026-07-29 08:29:29 +00:00
obj2[3] = { flexDirection: "row", alignItems: "center", justifyContent: "center", flexGrow: 1, maxWidth: "100%" };
obj2[4] = { position: "absolute", height: "100%", width: "100%", justifyContent: "center", alignItems: "center" };
2026-07-20 16:05:17 +00:00
return obj2;
});
2026-07-29 08:29:29 +00:00
let closure_18 = { 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)}]};}" };
let closure_19 = { 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)}]};}" };
2026-08-24 06:08:38 +00:00
const result = require("set").fileFinishedImporting("design/components/Button/native/ButtonPill.native.tsx");
2026-07-20 16:05:17 +00:00
export const ButtonPill = function ButtonPill(loading) {
if (null == loading.loading) {
let obj = {};
const merged = Object.assign(loading);
let tmp6 = callback2(BasicButtonPill, obj);
} else {
obj = {};
const merged1 = Object.assign(loading);
tmp6 = callback2(LoadingButtonPill, obj);
}
return tmp6;
};
export { BasicButtonPill };
export { LoadingButtonPill };
export { useLoadingStyles };