Files
discord-decomp/sources/modules/premium/powerups/native/RoleGradientPickerActionSheet.tsx
T
2026-07-28 01:06:53 +03:00

232 lines
14 KiB
TypeScript

/* Metro module 15964; source: modules/premium/powerups/native/RoleGradientPickerActionSheet.tsx; dependencies: [57, 31, 27, 15949, 33, 4501, 697, 1941, 1360, 4080, 13189, 6275, 6758, 1244, 4578, 4589, 13797, 5278, 673, 2] */
import Module00057 from '../../../../by-id/module-00057.js'; /* Metro dependency 57 */
import ActionSheetActionCreators from '../../../action_sheet/native/ActionSheetActionCreators.tsx'; /* Metro dependency 4080 */
import LinearGradient from '../../../../by-id/module-04589-LinearGradient.js'; /* Metro dependency 4589 */
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 GlobalUtilsModule from '../../../../utils/GlobalUtils.tsx'; /* Metro dependency 1360 */
import * as EnhancedRoleColorUtilsModule from '../../enhanced_role_colors/EnhancedRoleColorUtils.tsx'; /* Metro dependency 1941 */
import * as ButtonNativeModule from '../../../../design/components/Button/native/Button.native.tsx'; /* Metro dependency 4578 */
import * as PressablesModule from '../../../../design/void/Pressables/native/Pressables.tsx'; /* Metro dependency 5278 */
import * as BottomSheetNativeModule from '../../../../design/components/Sheet/native/BottomSheet.native.tsx'; /* Metro dependency 6275 */
import * as BottomSheetTitleHeaderNativeModule from '../../../../design/components/Sheet/native/BottomSheetTitleHeader.native.tsx'; /* Metro dependency 6758 */
import * as EyeDropperIconModule from '../../../../design/components/Icon/native/redesign/generated/EyeDropperIcon.tsx'; /* Metro dependency 13797 */
function _fun123431(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#123431, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16172:6, offset: 0x0258cc87, size: 740 bytes, params: 8, frame: 24
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = ReactNativeModule;
const env0_5 = value.View;
const env0_6 = value.Pressable;
value = require(15949) /* metro dependency 15949: EnhancedRoleColorConstants */;
const env0_7 = value.DEFAULT_GRADIENT_ROLE_COLORS;
const env0_8 = value.GRADIENT_PRESETS;
value = require(33) /* metro dependency 33 */;
const env0_9 = value.jsx;
const env0_10 = value.jsxs;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
object = {};
const object2 = {'paddingVertical': null, 'paddingHorizontal': null, 'flexGrow': 1, 'justifyContent': 'center',
'alignItems': 'center'};
let PX_12 = (importDefault(697) /* metro dependency 697: native */).space.PX_12;
object2.paddingVertical = PX_12;
PX_12 = (importDefault(697) /* metro dependency 697: native */).space.PX_12;
object2.paddingHorizontal = PX_12;
const PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object2.gap = PX_16;
object.body = object2;
let PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object.gradientContainer = {'display': 'flex', 'flexDirection': 'row', 'justifyContent': 'center',
'alignItems': 'center', paddingHorizontal: PX_8};
const object4 = {'left': null, 'right': null, 'position': 'absolute', 'display': 'flex', 'flexDirection': 'row',
'justifyContent': 'space-between'};
let PX_24 = (importDefault(697) /* metro dependency 697: native */).space.PX_24;
object4.left = PX_24;
PX_24 = (importDefault(697) /* metro dependency 697: native */).space.PX_24;
object4.right = PX_24;
object.dropperContainer = object4;
const object5 = {'borderColor': 'white', 'tintColor': 'white', 'padding': null, 'borderRadius': null,
'borderWidth': 1};
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object5.padding = PX_8;
object5.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object.dropper = object5;
const object6 = {'height': 50, 'width': '100%'};
object6.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
object.gradient = object6;
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object.optionContainer = {'display': 'flex', 'flexDirection': 'row', 'gap': null, 'flexWrap': 'wrap',
'alignItems': 'center', 'justifyContent': 'center', gap: PX_8};
const object8 = {'width': 80, 'height': 50, 'borderRadius': null, 'overflow': 'hidden', 'padding': 2};
object8.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
object.pressable = object8;
const BACKGROUND_BRAND = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BRAND;
object.selected = {borderWidth: 2, borderColor: BACKGROUND_BRAND};
const object10 = {flex: 1};
object10.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
object.option = object10;
const env0_11 = Reflect.apply(createStyles, value, [object]);
(FileImportTrackerModule).fileFinishedImporting('modules/premium/powerups/native/RoleGradientPickerActionSheet.tsx');
exports.default = RoleGradientPickerActionSheet;
function RoleGradientPickerActionSheet({colors, onSelect}) { // fn#123432, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16172:1354, offset: 0x0258cf6b, size: 957 bytes, params: 2, frame: 32
let env0_3 = undefined;
const styles = useStyles();
let binding = undefined;
const useState = binding.useState;
const value3 = env0_3(Reflect.apply(useState, binding,
[colors == null ? DEFAULT_GRADIENT_ROLE_COLORS : colors.secondary_color != null ? colors : DEFAULT_GRADIENT_ROLE_COLORS]),
2);
const property = value3[0];
env0_3 = value3[1];
const Object = global.Object;
const values = Object.values;
const value4 = Reflect.apply(values, Object,
[EnhancedRoleColorUtilsModule.extractColorStringsFromServerColors(property)]);
const value5 = value4.filter((GlobalUtilsModule).isNotNullish);
binding = undefined;
const value6 = binding.useCallback(_fun123433, [property, onSelect]);
const value7 = binding.useCallback(_fun123434, []);
const value8 = binding.useCallback(_fun123435, [property, value7]);
const value9 = binding.useCallback(_fun123437, [property, value7]);
const BottomSheet = (BottomSheetNativeModule).BottomSheet;
object = {};
const BottomSheetTitleHeader = (BottomSheetTitleHeaderNativeModule).BottomSheetTitleHeader;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const XpWmJz = (require(1244) /* metro dependency 1244: indexNative */).t.XpWmJz;
const Button = (ButtonNativeModule).Button;
object.header = (
<BottomSheetTitleHeader
title={Reflect.apply(string, intl, [XpWmJz])}
trailing={<Button
variant="secondary"
size="sm"
text={intl.string((require(1244) /* metro dependency 1244: indexNative */).t['R3BPH+'])}
onPress={value6}
/>}
/>
);
const value10 = ((Component) => <Component style={styles.gradient} colors={value5} start={{'x': 0,
'y': 0}} end={{'x': 1, 'y': 0}} />)(LinearGradient);
const EyeDropperIcon = (EyeDropperIconModule).EyeDropperIcon;
const items3 = [
<View style={styles.gradientContainer}>
{value10}
<View style={styles.dropperContainer}>
<Pressable style={styles.dropper} onPress={value8}>
<EyeDropperIcon color="white" size="sm" />
</Pressable>
<Pressable style={styles.dropper} onPress={value9}>
<EyeDropperIcon color="white" size="sm" />
</Pressable>
</View>
</View>,
];
items3[1] = (
<View style={styles.optionContainer}>
{GRADIENT_PRESETS.map(_fun123439)}
</View>
);
items3[2] = (
<Button
text={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.yBZMsQ)}
onPress={onPress_123441}
/>
);
return (
<BottomSheet {...object}>
<View style={styles.body}>
{items3}
</View>
</BottomSheet>
);
function _fun123433() { // fn#123433, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16172:1610, offset: 0x0258d328, size: 53 bytes, params: 1, frame: 12
onSelect(env0_2);
const value = environment.__proto__;
(ActionSheetActionCreators).hideActionSheet();
}
function _fun123434(a0) { // fn#123434, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16172:1672, offset: 0x01b85a95, size: 19 bytes, params: 2, frame: 11
env0_3(a0);
}
function _fun123435() { // fn#123435, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16172:1704, offset: 0x0258d35d, size: 97 bytes, params: 1, frame: 16
var environment;
let value = environment.__proto__;
value = undefined;
(importDefault(13189) /* metro dependency 13189: showCustomColorPickerActionSheet */)({color: (env0_2 == null ? value : env0_2.primary_color) ?? 0,
onSelect: onSelect_123436}, 'stack');
return value;
function onSelect_123436(a0) { // fn#123436, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16172:1785, offset: 0x0258d3be, size: 41 bytes, params: 2, frame: 13
const binding = env1_4;
const object = {};
copyDataProperties(object, env1_2, undefined);
object['primary_color'] = a0;
return binding(object);
}
}
function _fun123437() { // fn#123437, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16172:1850, offset: 0x0258d3e7, size: 97 bytes, params: 1, frame: 16
var environment;
let value = environment.__proto__;
value = undefined;
(importDefault(13189) /* metro dependency 13189: showCustomColorPickerActionSheet */)({color: (env0_2 == null ? value : env0_2.secondary_color) ?? 0,
onSelect: onSelect_123438}, 'stack');
return value;
function onSelect_123438(a0) { // fn#123438, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16172:1933, offset: 0x0258d448, size: 41 bytes, params: 2, frame: 13
const binding = env1_4;
const object = {};
copyDataProperties(object, env1_2, undefined);
object['secondary_color'] = a0;
return binding(object);
}
}
function _fun123439(a0) { // fn#123439, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16172:2651, offset: 0x0258d471, size: 305 bytes, params: 2, frame: 24
var environment;
const env0_0 = a0;
let value = environment.__proto__;
const PressableOpacity = (PressablesModule).PressableOpacity;
const pressableOpacityProps = {style: [styles.pressable,
a0.start === env0_2.primary_color && a0.end === env0_2.secondary_color && styles.selected],
onPress: onPress_123440};
const defaultImport = LinearGradient;
value = Reflect.apply((require(673) /* metro dependency 673: ColorUtils */).int2hex, value, [a0.start]);
const items2 = [value];
value = require(673) /* metro dependency 673: ColorUtils */;
items2[1] = value.int2hex(a0.end);
return (
<PressableOpacity {...pressableOpacityProps} key={a0.name}>
{((Component) => <Component style={styles.option} colors={items2} start={{'x': 0, 'y': 0}} end={{'x': 1,
'y': 0}} />)(defaultImport)}
</PressableOpacity>
);
function onPress_123440() { // fn#123440, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16172:2776, offset: 0x0258d5a2, size: 64 bytes, params: 1, frame: 14
const binding = env1_4;
const object = {};
copyDataProperties(object, env1_2, undefined);
const binding2 = env0_0;
object['primary_color'] = binding2.start;
object['secondary_color'] = binding2.end;
return binding(object);
}
}
function RoleGradientPickerActionSheetOnPress() { // fn#123441, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16172:3046, owner: RoleGradientPickerActionSheet.onPress, offset: 0x0258d5e2, size: 23 bytes, params: 1, frame: 11
env0_3(DEFAULT_GRADIENT_ROLE_COLORS);
}
}
}
global.__d(_fun123431, 15964, [57, 31, 27, 15949, 33, 4501, 697, 1941, 1360, 4080, 13189, 6275, 6758, 1244, 4578,
4589, 13797, 5278, 673,
2]) /* metro module 15964, dependencies: [57, 31, 27, 15949, 33, 4501, 697, 1941, 1360, 4080, 13189, 6275, 6758, 1244, 4578, 4589, 13797, 5278, 673, 2] */;