Initial commit

This commit is contained in:
janisslsm committed 2026-07-27 16:20:00 +03:00
commit af3b49f756
16065 files changed
+2938410

No files matched your search

@@ -0,0 +1,26 @@
/* Metro module 13726; source: modules/user_settings/appearance/native/FontScaleStore.tsx; dependencies: [477, 8519, 685, 2] */
function _fun104875(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#104875, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13923:6, offset: 0x022a3045, size: 234 bytes, params: 8, frame: 18
var object2;
var r4;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = require(477) /* metro dependency 477: PlatformUtils */;
if (value.isAndroid()) {
value = importDefault(8519) /* metro dependency 8519: NativeFontModule */;
value = value.getCustomFontScale();
r4 = value;
} else {
r4 = {'fontScale': 1, 'isClassicChatFontScaleEnabled': false};
}
object2 = {};
object2.persistedFontScale = r4.fontScale;
object2.persistedIsClassicChatFontScaleEnabled = r4.isClassicChatFontScaleEnabled;
object2.fontScale = r4.fontScale;
object2.isClassicChatFontScaleEnabled = r4.isClassicChatFontScaleEnabled;
value = require(685) /* metro dependency 685 */;
value = value.createWithEqualityFn(_fun104876);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/FontScaleStore.tsx');
exports.DEFAULT_FONT_SCALE_STORE_STATE = object2;
exports.useFontScaleStore = value;
}
@@ -0,0 +1,10 @@
/* Metro module 13735; source: modules/user_settings/appearance/native/SettingsAppearanceConstants.tsx; dependencies: [2] */
function _fun104937(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#104937, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13932:6, offset: 0x022a6090, size: 92 bytes, params: 8, frame: 15
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/SettingsAppearanceConstants.tsx');
exports.default = {'THEME_ITEM_WIDTH': 56, 'THEME_ITEM_HEIGHT': 72, 'THEME_ITEM_PADDING': 4,
'THEME_ITEM_HORIZONTAL_MARGIN': 8, 'BACKGROUND_GRADIENT_DARK_OPACITY': 0.85,
'BACKGROUND_GRADIENT_LIGHT_OPACITY': 0.7};
}
@@ -0,0 +1,116 @@
/* Metro module 13740; source: modules/user_settings/appearance/native/SettingsAppearanceDummyData.tsx; dependencies: [661, 1244, 13741, 13742, 13743, 13744, 13745, 13746, 13747, 13748, 13749, 13750, 13751, 10951, 13752, 2] */
function _fun104949(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#104949, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13937:6, offset: 0x022a6c62, size: 124 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = (require(661) /* metro dependency 661: Constants */).StatusTypes;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/SettingsAppearanceDummyData.tsx');
exports.default = _default_104950;
}
function _default_104950() { // fn#104950, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13937:127, offset: 0x022a6cde, size: 2254 bytes, params: 1, frame: 27
const items2 = [{'id': '1', 'kind': 'messages-header'}];
const object = {};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
let string = intl.string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const B6GPzA = t.B6GPzA;
object.title = Reflect.apply(string, intl, [B6GPzA]);
object.subtitle = intl.string(t['Tnrh/k']);
object.kind = 'activity';
object.image = importDefault(13741) /* metro dependency 13741 */;
object.avatars = [importDefault(13742) /* metro dependency 13742 */,
importDefault(13743) /* metro dependency 13743 */, importDefault(13744) /* metro dependency 13744 */,
importDefault(13745) /* metro dependency 13745 */, importDefault(13746) /* metro dependency 13746 */];
const items3 = [object];
const object5 = {};
string = intl.string;
const YAgqmE = t.YAgqmE;
object5.title = Reflect.apply(string, intl, [YAgqmE]);
object5.subtitle = intl.string(t['9YJgal']);
object5.kind = 'voice-chat';
object5.image = importDefault(13747) /* metro dependency 13747 */;
items3[1] = object5;
items2[1] = {'id': '2', 'kind': 'activity-cards', cards: items3};
const object7 = {'id': '3', 'kind': 'channel-row'};
object7.timestamp = intl.formatToPlainString(t['XIGt+W'], {minutes: 24});
object7.title = intl.string(t['mK5Zd+']);
object7.preview = intl.string(t.cvvVUV);
object7.isUnread = true;
object7.avatar1 = importDefault(13748) /* metro dependency 13748 */;
items2[2] = object7;
const object9 = {'id': '4', 'kind': 'channel-row'};
object9.timestamp = intl.formatToPlainString(t['XIGt+W'], {minutes: 32});
string = intl.string;
const FpJH9k = t.FpJH9k;
object9.title = Reflect.apply(string, intl, [FpJH9k]);
string = intl.string;
const F1WIrQ = t.F1WIrQ;
object9.preview = Reflect.apply(string, intl, [F1WIrQ]);
object9.isUnread = true;
object9.avatar1 = importDefault(13749) /* metro dependency 13749 */;
object9.avatar2 = importDefault(13750) /* metro dependency 13750 */;
items2[3] = object9;
const object11 = {'id': '5', 'kind': 'channel-row'};
object11.timestamp = intl.formatToPlainString(t.rhY1Rs, {hours: 1});
string = intl.string;
const PHbyD7 = t.PHbyD7;
object11.title = Reflect.apply(string, intl, [PHbyD7]);
string = intl.string;
const GSuP1s = t.GSuP1s;
object11.preview = Reflect.apply(string, intl, [GSuP1s]);
object11.avatar1 = importDefault(13751) /* metro dependency 13751 */;
const IDLE = StatusTypes.IDLE;
object11.status = IDLE;
items2[4] = object11;
const object13 = {'id': '7', 'kind': 'channel-row'};
object13.timestamp = intl.formatToPlainString(t.rhY1Rs, {hours: 2});
object13.title = intl.string(t['0HGnUV']);
object13.preview = intl.string(t['VYL+vm']);
object13.avatar1 = importDefault(10951) /* metro dependency 10951 */;
object13.avatar2 = importDefault(13744) /* metro dependency 13744 */;
items2[5] = object13;
const object15 = {'id': '10', 'kind': 'channel-row'};
object15.timestamp = intl.formatToPlainString(t.rhY1Rs, {hours: 2});
object15.title = intl.string(t['z+f+zN']);
string = intl.string;
const Wy2xnv = t.Wy2xnv;
object15.preview = Reflect.apply(string, intl, [Wy2xnv]);
object15.avatar1 = importDefault(13750) /* metro dependency 13750 */;
items2[6] = object15;
const object17 = {'id': '11', 'kind': 'channel-row'};
object17.timestamp = intl.formatToPlainString(t.rhY1Rs, {hours: 4});
object17.title = intl.string(t['AYOqO/']);
string = intl.string;
const OrbvPP = t.OrbvPP;
object17.preview = Reflect.apply(string, intl, [OrbvPP]);
object17.avatar1 = importDefault(13745) /* metro dependency 13745 */;
object17.avatar2 = importDefault(10951) /* metro dependency 10951 */;
items2[7] = object17;
const object19 = {'id': '12', 'kind': 'channel-row'};
object19.timestamp = intl.formatToPlainString(t.rhY1Rs, {hours: 6});
object19.title = intl.string(t['86rWJp']);
object19.preview = intl.string(t.dFT4dX);
object19.avatar1 = importDefault(13752) /* metro dependency 13752 */;
let DND = StatusTypes.DND;
object19.status = DND;
items2[8] = object19;
const object21 = {'id': '13', 'kind': 'channel-row'};
object21.timestamp = intl.formatToPlainString(t.rhY1Rs, {hours: 18});
object21.title = intl.string(t['z3+vGV']);
string = intl.string;
const Zj8Sl1 = t.Zj8Sl1;
object21.preview = Reflect.apply(string, intl, [Zj8Sl1]);
object21.avatar1 = importDefault(13745) /* metro dependency 13745 */;
items2[9] = object21;
const object22 = {'id': '15', 'kind': 'channel-row'};
object22.timestamp = intl.formatToPlainString(t.rhY1Rs, {hours: 21});
object22.title = intl.string(t['8SENG2']);
object22.preview = intl.string(t['2ziAWp']);
object22.avatar1 = importDefault(13743) /* metro dependency 13743 */;
DND = StatusTypes.DND;
object22.status = DND;
items2[10] = object22;
return items2;
}
@@ -0,0 +1,375 @@
/* Metro module 13763; source: modules/user_settings/appearance/native/SettingsAppearancePickerUtils.tsx; dependencies: [31, 482, 4045, 3966, 4001, 4000, 697, 1347, 3860, 1244, 2] */
function _fun104997(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#104997, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13960:6, offset: 0x022aa0e4, size: 244 bytes, params: 8, frame: 18
const env0_0 = require;
const _arrayLikeToArray_105000 = function(a0, a1) {
var r0;
var r1;
var r2;
var value3;
var length;
var value5;
var value = undefined;
var value2 = value == null;
reducibleJoin2: while (true) {
if (value2) {
r0 = value2;
break reducibleJoin2;
}
value3 = value > a0.length;
r0 = value3;
break reducibleJoin2;
}
reducibleJoin4: while (true) {
if (r0) {
length = a0.length;
r1 = length;
break reducibleJoin4;
}
r1 = value;
break reducibleJoin4;
}
value = (0, global.Array)(r1);
var value4 = 0;
if (value4 < r1) {
r2 = value4;
reducibleLoop5: while (true) {
value[r2] = a0[r2];
value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1;
if (value5 < r1) {
r2 = value5;
continue reducibleLoop5;
}
break reducibleLoop5;
}
}
return value;
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(482) /* metro dependency 482: Constants */).ThemeTypes;
const padWithLast = function(a0) {
var r4;
var r3;
var property;
var value = a1;
r4 = value !== undefined ? value : 5;
var items = [];
value = 0;
if (value < r4) {
r3 = value;
while (true) {
if (r3 < a0.length) {
items.push(a0[r3]);
} else {
property = a0[a0.length - 1];
items.push({hex: property.hex, stop: 100});
}
value = typeof r3 === 'bigint' ? r3 + 1n : +r3 + 1;
if (value < r4) {
r3 = value;
continue;
}
break;
}
}
return items;
};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/SettingsAppearancePickerUtils.tsx');
exports.convertThemesToAnimatedThemes = convertThemesToAnimatedThemes;
exports.useLaunchWelcomeSystemTheme = useLaunchWelcomeSystemTheme;
}
function _createForOfIteratorHelperLoose_104998(a0, a1) { // fn#104998, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13960:135, offset: 0x022aa1d8, size: 372 bytes, params: 3, frame: 20
var r6;
var r9;
var r5;
var value3;
var regexp;
const env0_0 = a0;
const Symbol = global.Symbol;
let value = typeof Symbol !== 'undefined';
let r1 = value && a0[global.Symbol.iterator];
r1 = !r1 ? a0['@@iterator'] : r1;
if (r1) {
value = r1.call(a0);
return value.next.bind(value);
}
const Array = global.Array;
if (Array.isArray(a0)) {
if (r1) {
}
return _fun104999;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_105000(a0, value);
r5 = value;
} else {
value3 = ({}).toString.call(a0).slice(8, -1);
r6 = value3 === 'Object' && a0.constructor;
r9 = r6 ? a0.constructor.name : value3;
if (r9 === 'Map') {
r6 = global.Array.from(a0);
} else if (r9 === 'Set') {
r6 = global.Array.from(a0);
} else if (r9 === 'Arguments') {
value = _arrayLikeToArray_105000(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_105000(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun104999;
}
const TypeError = global.TypeError;
throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');
}
function getMaxColors() { // fn#105001, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13960:1062, offset: 0x022aa34c, size: 296 bytes, params: 1, frame: 23
var r2;
var r3;
var r10;
var r0;
var value5;
var type;
const ClientThemeType = (require(3966) /* metro dependency 3966: ClientThemesTypes */).ClientThemeType;
var STANDARD_BACKGROUND_THEME;
var BACKGROUND_GRADIENT_PRESET;
var CUSTOM_BACKGROUND_GRADIENT;
var Math;
var max;
var customThemeSettings;
var colors;
var length;
var value6;
var value7;
var value8;
var value9;
const _createForOfIteratorHelperLoose_104998Binding = _createForOfIteratorHelperLoose_104998;
const mobileThemesUtilsModule = require(4045) /* metro dependency 4045: MobileThemesUtils */;
const getAllMobileThemes = mobileThemesUtilsModule.getAllMobileThemes;
const value2 = _createForOfIteratorHelperLoose_104998Binding(Reflect.apply(getAllMobileThemes,
mobileThemesUtilsModule, []));
const value3 = value2();
let done = value3.done;
const value4 = 0;
if (done) {
r0 = value4;
} else {
r2 = value4;
r3 = value3;
while (true) {
value5 = r3.value;
type = value5.type;
STANDARD_BACKGROUND_THEME = ClientThemeType.STANDARD_BACKGROUND_THEME;
if (STANDARD_BACKGROUND_THEME !== type) {
BACKGROUND_GRADIENT_PRESET = ClientThemeType.BACKGROUND_GRADIENT_PRESET;
if (BACKGROUND_GRADIENT_PRESET === type) {
Math = global.Math;
value7 = Math.max(value5.colors.length, r2);
r10 = value7;
break;
}
CUSTOM_BACKGROUND_GRADIENT = ClientThemeType.CUSTOM_BACKGROUND_GRADIENT;
if (CUSTOM_BACKGROUND_GRADIENT !== type) {
r10 = r2;
break;
}
Math = global.Math;
max = Math.max;
customThemeSettings = value5.customThemeSettings;
colors = customThemeSettings.colors;
length = colors.length;
value6 = Reflect.apply(max, Math, [length, r2]);
r10 = value6;
break;
}
Math = global.Math;
value8 = Math.max(1, r2);
r10 = value8;
value9 = value2();
done = value9.done;
if (done) {
r0 = r10;
break;
}
r2 = r10;
r3 = value9;
continue;
}
}
return r0;
}
function mix_105002(a0, a1, a2, a3) { // fn#105002, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13960:1484, offset: 0x022aa474, size: 255 bytes, params: 5, frame: 22
var r3;
var defaultImport3;
var defaultImport4;
let value = a0 !== 'light';
const defaultImport = importDefault(4001) /* metro dependency 4001: Color */;
const value3 = Object.create(defaultImport.prototype, {constructor: {value: defaultImport}});
if (value) {
defaultImport4 = new defaultImport(0, 0, 0, a2);
r3 = defaultImport4 instanceof Object ? defaultImport4 : value3;
} else {
defaultImport3 = new defaultImport(255, 255, 255, a3);
r3 = defaultImport3 instanceof Object ? defaultImport3 : value3;
}
const {r, g, b} = (require(4000) /* metro dependency 4000: ColorUtils */).hexToRgb(a1);
const r5 = value ? 0.3 : 0.2;
const mixColors = (require(4000) /* metro dependency 4000: ColorUtils */).mixColors;
const defaultImport2 = defaultImport;
const value10 = Object.create(defaultImport2.prototype, {constructor: {value: defaultImport2}});
const defaultImport22 = new defaultImport2(r, g, b, r5);
value = Reflect.apply(mixColors, value, [r3, defaultImport22 instanceof Object ? defaultImport22 : value10]);
return value.toHexString();
}
function convertBackgroundGradientToAnimatedTheme(a0, a1, a2) { // fn#105004, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13960:1873, offset: 0x022aa5e0, size: 150 bytes, params: 4, frame: 16
const env0_0 = a0;
const env0_1 = a1;
const env0_2 = a2;
const object2 = {};
object2.theme = a0.theme;
object2.name = a0.getName();
object2.midpointPercentage = a0.midpointPercentage ?? 50;
object2.angle = a0.angle ?? 0;
object2.colors = padWithLast(a0.colors.map(_fun105005), getMaxColors());
return object2;
}
function convertStandardThemeToAnimatedTheme(a0, a1, a2) { // fn#105006, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13960:2176, offset: 0x022aa6d7, size: 307 bytes, params: 4, frame: 18
var object2;
const theme = a0.theme;
const LIGHT = ThemeTypes.LIGHT;
const value2 = 'light';
const semanticColor = (importDefault(697) /* metro dependency 697: native */).internal.resolveSemanticColor(LIGHT === theme ? value2 : ThemeTypes.DARK === theme ? 'dark' : ThemeTypes.DARKER === theme ? 'darker' : ThemeTypes.MIDNIGHT === theme ? 'midnight' : value2,
a2, {enabledExperiments: a1});
object2 = {};
object2.theme = a0.theme;
object2.name = a0.getName();
object2.midpointPercentage = 50;
object2.angle = 0;
object2.colors = padWithLast([{hex: semanticColor, stop: 20}, {hex: semanticColor, stop: 40}, {hex: semanticColor,
stop: 60}, {hex: semanticColor, stop: 80}, {hex: semanticColor, stop: 100}], getMaxColors());
return object2;
}
function convertCustomBackgroundGradientToAnimatedTheme(a0, a1, a2) { // fn#105007, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13960:2656, offset: 0x022aa80a, size: 146 bytes, params: 4, frame: 15
const env0_0 = a0;
const env0_1 = a1;
const env0_2 = a2;
const object2 = {};
object2.theme = a0.theme;
object2.name = a0.getName();
object2.midpointPercentage = 50;
object2.angle = a0.customThemeSettings.gradientAngle ?? 0;
object2.colors = padWithLast(a0.customThemeSettings.colors.map(_fun105008), getMaxColors());
return object2;
}
function convertThemesToAnimatedThemes(a0) { // fn#105009, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13960:3130, offset: 0x022aa911, size: 321 bytes, params: 2, frame: 24
var r2;
var value7;
var type;
const ClientThemeType = (require(3966) /* metro dependency 3966: ClientThemesTypes */).ClientThemeType;
var STANDARD_BACKGROUND_THEME;
var BACKGROUND_GRADIENT_PRESET;
var CUSTOM_BACKGROUND_GRADIENT;
var value8;
const value = a1;
const value2 = a2;
const value3 = a3;
const value4 = a4;
const r10 = value !== undefined ? value : 0.7;
const r9 = value2 !== undefined ? value2 : 0.8;
const r8 = value3 !== undefined ? value3 : [];
const r7 = value4 !== undefined ? value4 : (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_SURFACE_HIGH;
const items2 = [];
const value5 = _createForOfIteratorHelperLoose_104998(a0);
const value6 = value5();
let done = value6.done;
if (!done) {
r2 = value6;
while (true) {
value7 = r2.value;
type = value7.type;
STANDARD_BACKGROUND_THEME = ClientThemeType.STANDARD_BACKGROUND_THEME;
if (STANDARD_BACKGROUND_THEME !== type) {
BACKGROUND_GRADIENT_PRESET = ClientThemeType.BACKGROUND_GRADIENT_PRESET;
if (BACKGROUND_GRADIENT_PRESET === type) {
items2.push(convertBackgroundGradientToAnimatedTheme(value7, r10, r9));
break;
}
CUSTOM_BACKGROUND_GRADIENT = ClientThemeType.CUSTOM_BACKGROUND_GRADIENT;
if (CUSTOM_BACKGROUND_GRADIENT !== type) {
break;
}
items2.push(convertCustomBackgroundGradientToAnimatedTheme(value7, r10, r9));
break;
}
items2.push(convertStandardThemeToAnimatedTheme(value7, r8, r7));
value8 = value5();
done = value8.done;
if (done) {
break;
}
r2 = value8;
continue;
}
}
return items2;
}
function useLaunchWelcomeSystemTheme() { // fn#105010, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13960:3683, offset: 0x022aaa52, size: 160 bytes, params: 1, frame: 18
const value2 = (importDefault(1347) /* metro dependency 1347: getSystemThemeNative */)();
const LIGHT = ThemeTypes.LIGHT;
const r5 = value2 === LIGHT ? ThemeTypes.LIGHT : ThemeTypes.DARKER;
const useTokenModule = require(3860) /* metro dependency 3860: useToken */;
const useToken = useTokenModule.useToken;
const BACKGROUND_BASE_LOW = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOW;
return env0_3.useMemo(_fun105011, [Reflect.apply(useToken, useTokenModule, [BACKGROUND_BASE_LOW, r5])]);
}
function _fun105005({token, stop}) { // fn#105005, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13960:2045, offset: 0x022aa676, size: 97 bytes, params: 2, frame: 19
const object2 = {};
object2.hex = mix_105002(env0_0.theme,
(importDefault(697) /* metro dependency 697: native */).unsafe_rawColors[token], require, importDefault);
object2.stop = stop;
return object2;
}
function _fun105008(a0, a1) { // fn#105008, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13960:2841, offset: 0x022aa89c, size: 117 bytes, params: 3, frame: 20
const object2 = {};
const value = environment.__proto__;
const mix_105002Binding = mix_105002;
const binding = env0_0;
object2.hex = mix_105002Binding(binding.theme, a0, require, importDefault);
object2.stop = binding.customThemeSettings.colors.length > 1 ? a1 * (100 / (env0_0.customThemeSettings.colors.length - 1)) : 0;
return object2;
}
function _fun105011() { // fn#105011, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13960:3809, offset: 0x022aaaf2, size: 226 bytes, params: 1, frame: 17
const object2 = {'theme': 'system', 'name': null, 'midpointPercentage': 50, 'angle': 0};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.name = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.zlvNOj);
object2.colors = padWithLast([{hex: env0_0, stop: 20}, {hex: env0_0, stop: 40}, {hex: env0_0, stop: 60},
{hex: env0_0, stop: 80}, {hex: env0_0, stop: 100}], getMaxColors());
return object2;
}
@@ -0,0 +1,137 @@
/* Metro module 13725; source: modules/user_settings/appearance/native/SettingsAppearanceScreen.tsx; dependencies: [31, 3964, 1311, 1310, 13726, 8224, 33, 1484, 477, 9603, 1244, 8519, 690, 4594, 13727, 632, 9692, 13170, 2] */
function _fun104864(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#104864, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13922:6, offset: 0x022a2a29, size: 254 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const clientThemesBackgroundStore = importDefault(3964) /* metro dependency 3964: ClientThemesBackgroundStore */;
const selectivelySyncedUserSettingsStore = importDefault(1311) /* metro dependency 1311: SelectivelySyncedUserSettingsStore */;
const themeStore = importDefault(1310) /* metro dependency 1310: ThemeStore */;
const fontScaleStoreModule = require(13726) /* metro dependency 13726: FontScaleStore */;
const env0_7 = fontScaleStoreModule.DEFAULT_FONT_SCALE_STORE_STATE;
const env0_8 = fontScaleStoreModule.useFontScaleStore;
const env0_9 = (require(8224) /* metro dependency 8224: SettingsConstants */).MobileSetting;
const env0_10 = (require(33) /* metro dependency 33 */).jsx;
value = value.memo(_fun104865);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/SettingsAppearanceScreen.tsx');
exports.default = value;
}
function _fun104865() { // fn#104865, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13922:255, offset: 0x022a2b27, size: 203 bytes, params: 1, frame: 20
(importDefault(4594) /* metro dependency 4594: useMountEffect */)(_fun104866);
const {theme,
gradientPresetId} = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStoresObject([ThemeStore,
ClientThemesBackgroundStore], _fun104867);
useFontScalingData();
return ((Component) => <Component node={env0_3.useMemo(_fun104874,
[])} key={'' + theme + '-' + gradientPresetId} />)(importDefault(13170) /* metro dependency 13170: SettingLayout */);
}
function _fun104866() { // fn#104866, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13922:276, offset: 0x022a2bf2, size: 61 bytes, params: 1, frame: 12
const value = environment.__proto__;
if (SelectivelySyncedUserSettingsStore.shouldSync('appearance')) {
(require(13727) /* metro dependency 13727: SavedCustomThemeActionCreators */).fetchUserCustomThemes();
}
}
function _fun104867() { // fn#104867, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13922:392, offset: 0x022a2c2f, size: 67 bytes, params: 1, frame: 5
const value = environment.__proto__;
return {theme: ThemeStore.theme, gradientPresetId: ClientThemesBackgroundStore.gradientPreset?.id ?? ''};
}
function useFontScalingData() { // fn#104868, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13922:533, offset: 0x022a2c72, size: 147 bytes, params: 1, frame: 16
const value2 = useFontScaleStore();
const value3 = (require(1484) /* metro dependency 1484: useNavigationNative */).useNativeStackNavigation();
const binding = env1_3;
binding.useEffect(_fun104869, [value3, value2.fontScale, value2.isClassicChatFontScaleEnabled,
value2.persistedFontScale, value2.persistedIsClassicChatFontScaleEnabled]);
binding.useEffect(function() {
return _fun104872;
}, []);
}
function _fun104874() { // fn#104874, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13922:1186, offset: 0x022a2e6f, size: 470 bytes, params: 1, frame: 21
const settingBuildersModule = require(9692) /* metro dependency 9692: SettingBuilders */;
const createList = settingBuildersModule.createList;
const MOBILE_VISUAL_REFRESH = MobileSetting.MOBILE_VISUAL_REFRESH;
const items2 = [{settings: [MOBILE_VISUAL_REFRESH]}];
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const Ksh3ik = t.Ksh3ik;
const APPEARANCE_THEME_PICKER = MobileSetting.APPEARANCE_THEME_PICKER;
const SYNC_THEME = MobileSetting.SYNC_THEME;
items2[1] = {label: Reflect.apply(string, intl, [Ksh3ik]), settings: [APPEARANCE_THEME_PICKER, SYNC_THEME]};
const DEFAULT_GUILD_THEME_PREFERENCE = MobileSetting.DEFAULT_GUILD_THEME_PREFERENCE;
items2[2] = {settings: [DEFAULT_GUILD_THEME_PREFERENCE]};
const ANDROID_FONT_SCALE = MobileSetting.ANDROID_FONT_SCALE;
const ANDROID_CLASSIC_CHAT_FONT_SCALE = MobileSetting.ANDROID_CLASSIC_CHAT_FONT_SCALE;
items2[3] = {label: intl.string(t.i19n5L), settings: [ANDROID_FONT_SCALE, ANDROID_CLASSIC_CHAT_FONT_SCALE]};
const DMS_MESSAGE_PREVIEWS = MobileSetting.DMS_MESSAGE_PREVIEWS;
items2[4] = {settings: [DMS_MESSAGE_PREVIEWS]};
const DMS_HAPPENING_NOW_CARDS = MobileSetting.DMS_HAPPENING_NOW_CARDS;
items2[5] = {label: intl.string(t.lEde7i), settings: [DMS_HAPPENING_NOW_CARDS]};
const object = {};
object.label = intl.string(t['5h0QOP']);
const EXACT_SEARCH_RESULT_COUNTS = MobileSetting.EXACT_SEARCH_RESULT_COUNTS;
object.settings = [EXACT_SEARCH_RESULT_COUNTS];
items2[6] = object;
const TIMESTAMP_HOUR_CYCLE = MobileSetting.TIMESTAMP_HOUR_CYCLE;
items2[7] = {settings: [TIMESTAMP_HOUR_CYCLE]};
return Reflect.apply(createList, settingBuildersModule, [{sections: items2}]);
}
function _fun104869() { // fn#104869, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13922:623, offset: 0x022a2d05, size: 220 bytes, params: 1, frame: 20
var environment;
var binding;
var setOptions;
var object2;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
let value = environment.__proto__.__proto__;
const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */;
if (platformUtilsModule.isAndroid()) {
binding = env0_0;
if (binding.persistedFontScale !== binding.fontScale) {
binding = env0_1;
setOptions = binding.setOptions;
object2 = {};
value = require(9603) /* metro dependency 9603: HeaderShared */;
object2.headerRight = value.getRenderHeaderTextButton(intl.string(t['R3BPH+']), _fun104870);
Reflect.apply(setOptions, binding, [object2]);
} else {
binding = env0_0;
if (binding.persistedIsClassicChatFontScaleEnabled !== binding.isClassicChatFontScaleEnabled) {
binding = env0_1;
setOptions = binding.setOptions;
object2 = {};
value = require(9603) /* metro dependency 9603: HeaderShared */;
object2.headerRight = value.getRenderHeaderTextButton(intl.string(t['R3BPH+']), _fun104870);
Reflect.apply(setOptions, binding, [object2]);
} else {
env0_1.setOptions({headerRight: undefined});
}
}
}
}
function _fun104871() { // fn#104871, offset: 0x022a2e1d, size: 11 bytes, params: 1, frame: 1
return _fun104872;
}
function _fun104870() { // fn#104870, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13922:865, offset: 0x022a2de1, size: 60 bytes, params: 1, frame: 13
let value = environment.__proto__.__proto__.__proto__;
value = importDefault(8519) /* metro dependency 8519: NativeFontModule */;
const setCustomFontScale = value.setCustomFontScale;
const binding = env1_0;
return Reflect.apply(setCustomFontScale, value, [binding.fontScale, binding.isClassicChatFontScaleEnabled]);
}
function _fun104872() { // fn#104872, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13922:1112, offset: 0x022a2e28, size: 47 bytes, params: 1, frame: 12
var environment;
const value = environment.__proto__.__proto__.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(function() {
return useFontScaleStore.setState(DEFAULT_FONT_SCALE_STORE_STATE);
});
}
@@ -0,0 +1,649 @@
/* Metro module 13729; source: modules/user_settings/appearance/native/SettingsAppearanceThemePickerScreen.tsx; dependencies: [57, 31, 27, 3964, 1354, 1311, 1310, 1312, 1313, 482, 33, 4501, 697, 477, 4501, 1244, 13730, 11256, 13732, 1478, 632, 4045, 1357, 1314, 3966, 6518, 13646, 1485, 6771, 6789, 3866, 5287, 8853, 4017, 4000, 3963, 4504, 4507, 3868, 9610, 4573, 5278, 5286, 13647, 13734, 9221, 13740, 13753, 13762, 6618, 7725, 2] */
function _fun104884(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#104884, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:6, offset: 0x022a340f, size: 1635 bytes, params: 8, frame: 27
const env0_0 = require;
const getThemeOverride = function(a0, a1, a2) {
var value = a2;
var property = a0[a1];
return property != null ? property.theme === 'system' ? value : property.theme : undefined;
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = 0;
const env0_3 = importDefault(dependencyMap[value]);
const env0_4 = importAll(31) /* metro dependency 31 */;
const env0_5 = (require(27) /* metro dependency 27 */).View;
const clientThemesBackgroundStore = importDefault(3964) /* metro dependency 3964: ClientThemesBackgroundStore */;
const customThemeMobileStore = importDefault(1354) /* metro dependency 1354: CustomThemeMobileStore */;
const selectivelySyncedUserSettingsStore = importDefault(1311) /* metro dependency 1311: SelectivelySyncedUserSettingsStore */;
const themeStore = importDefault(1310) /* metro dependency 1310: ThemeStore */;
const unsyncedUserSettingsStore = importDefault(1312) /* metro dependency 1312: UnsyncedUserSettingsStore */;
const env0_11 = (require(1313) /* metro dependency 1313: ThemeConstants */).SystemThemeState;
const ThemeTypes = (require(482) /* metro dependency 482: Constants */).ThemeTypes;
const value2 = require(33) /* metro dependency 33 */;
const env0_13 = value2.jsx;
const env0_14 = value2.jsxs;
const env0_15 = value2.Fragment;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object = {};
const object3 = {'flex': 1, 'paddingHorizontal': null, 'alignItems': 'center'};
let PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object3.paddingHorizontal = PX_16;
const PX_24 = (importDefault(697) /* metro dependency 697: native */).space.PX_24;
object3.gap = PX_24;
const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */;
PX_16 = platformUtilsModule.isIOS() ? value : (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object3.marginBottom = PX_16;
object.container = object3;
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object.landscapeContainer = {flexDirection: 'row', gap: PX_16};
object.landscapePreview = {flex: 1};
object.landscapeSelector = {'flex': 1, 'justifyContent': 'center', 'overflow': 'hidden'};
const object4 = {'width': '100%', 'gap': null, 'alignItems': 'center'};
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object4.gap = PX_16;
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object4.paddingHorizontal = PX_16;
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object4.marginBottom = PX_16;
object.segmentedControlContainer = object4;
object.textCentered = {textAlign: 'center'};
const env0_16 = Reflect.apply(createStyles, createStylesModule, [object]);
const LIGHT = ThemeTypes.LIGHT;
object = [LIGHT];
const DARKER = ThemeTypes.DARKER;
object[1] = DARKER;
const MIDNIGHT = ThemeTypes.MIDNIGHT;
object[2] = MIDNIGHT;
const DARK = ThemeTypes.DARK;
object[3] = DARK;
const env0_18 = object.map(function(a0) {
var internal = importDefault(dependencyMap[12]).internal;
var CARD_SECONDARY_BG = importDefault(dependencyMap[12]).colors.CARD_SECONDARY_BG;
return internal.resolveSemanticColor(a0, CARD_SECONDARY_BG);
});
const env0_19 = object.map(function(a0, a1) {
return a1;
});
value = require(4501) /* metro dependency 4501: createStyles */;
let createAnimatedThemedStyles = value.createAnimatedThemedStyles;
const BACKGROUND_BASE_LOW = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOW;
const env0_20 = Reflect.apply(createAnimatedThemedStyles, value, [{backgroundColor: BACKGROUND_BASE_LOW}, object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createAnimatedThemedStyles = value.createAnimatedThemedStyles;
const BACKGROUND_MOD_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_MOD_SUBTLE;
const env0_21 = Reflect.apply(createAnimatedThemedStyles, value, [{backgroundColor: BACKGROUND_MOD_SUBTLE}, object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createAnimatedThemedStyles = value.createAnimatedThemedStyles;
const BACKGROUND_MOD_STRONG = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_MOD_STRONG;
const env0_22 = Reflect.apply(createAnimatedThemedStyles, value, [{backgroundColor: BACKGROUND_MOD_STRONG}, object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createAnimatedThemedStyles = value.createAnimatedThemedStyles;
const BACKGROUND_SURFACE_HIGHEST = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_SURFACE_HIGHEST;
const env0_23 = Reflect.apply(createAnimatedThemedStyles, value, [{backgroundColor: BACKGROUND_SURFACE_HIGHEST},
object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createAnimatedThemedStyles = value.createAnimatedThemedStyles;
const BACKGROUND_SURFACE_HIGH = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_SURFACE_HIGH;
const env0_24 = Reflect.apply(createAnimatedThemedStyles, value, [{backgroundColor: BACKGROUND_SURFACE_HIGH},
object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createAnimatedThemedStyles = value.createAnimatedThemedStyles;
const TEXT_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_DEFAULT;
const env0_25 = Reflect.apply(createAnimatedThemedStyles, value, [{color: TEXT_DEFAULT}, object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createAnimatedThemedStyles = value.createAnimatedThemedStyles;
const MOBILE_TEXT_HEADING_PRIMARY = (importDefault(697) /* metro dependency 697: native */).colors.MOBILE_TEXT_HEADING_PRIMARY;
const env0_26 = Reflect.apply(createAnimatedThemedStyles, value, [{color: MOBILE_TEXT_HEADING_PRIMARY}, object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createAnimatedThemedStyles = value.createAnimatedThemedStyles;
let TEXT_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_SUBTLE;
const env0_27 = Reflect.apply(createAnimatedThemedStyles, value, [{color: TEXT_SUBTLE}, object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createAnimatedThemedStyles = value.createAnimatedThemedStyles;
const TEXT_MUTED = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_MUTED;
const env0_28 = Reflect.apply(createAnimatedThemedStyles, value, [{color: TEXT_MUTED}, object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createAnimatedThemedStyles = value.createAnimatedThemedStyles;
const BORDER_MUTED = (importDefault(697) /* metro dependency 697: native */).colors.BORDER_MUTED;
const env0_29 = Reflect.apply(createAnimatedThemedStyles, value, [{borderColor: BORDER_MUTED}, object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createAnimatedThemedStyles = value.createAnimatedThemedStyles;
const BORDER_STRONG = (importDefault(697) /* metro dependency 697: native */).colors.BORDER_STRONG;
const env0_30 = Reflect.apply(createAnimatedThemedStyles, value, [{borderColor: BORDER_STRONG}, object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createAnimatedThemedStyles = value.createAnimatedThemedStyles;
const BORDER_NORMAL = (importDefault(697) /* metro dependency 697: native */).colors.BORDER_NORMAL;
const env0_31 = Reflect.apply(createAnimatedThemedStyles, value, [{borderColor: BORDER_NORMAL}, object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createAnimatedThemedStyles = value.createAnimatedThemedStyles;
const REDESIGN_ACTIVITY_CARD_BADGE_ICON = (importDefault(697) /* metro dependency 697: native */).colors.REDESIGN_ACTIVITY_CARD_BADGE_ICON;
const env0_32 = Reflect.apply(createAnimatedThemedStyles, value, [{tintColor: REDESIGN_ACTIVITY_CARD_BADGE_ICON},
object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createAnimatedThemedStyles = value.createAnimatedThemedStyles;
TEXT_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_SUBTLE;
const env0_33 = Reflect.apply(createAnimatedThemedStyles, value, [{tintColor: TEXT_SUBTLE}, object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createAnimatedThemedStyles = value.createAnimatedThemedStyles;
const INTERACTIVE_TEXT_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.INTERACTIVE_TEXT_DEFAULT;
const env0_34 = Reflect.apply(createAnimatedThemedStyles, value, [{tintColor: INTERACTIVE_TEXT_DEFAULT}, object]);
value = require(4501) /* metro dependency 4501: createStyles */;
createAnimatedThemedStyles = value.createAnimatedThemedStyles;
const TEXT_BRAND = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_BRAND;
const env0_35 = Reflect.apply(createAnimatedThemedStyles, value, [{color: TEXT_BRAND}, object]);
object = {code: 'function SettingsAppearanceThemePickerScreenTsx1(){const{activeIndex}=this.__closure;return activeIndex.get();}'};
object = {code: 'function SettingsAppearanceThemePickerScreenTsx2(activeIndex){const{runOnJS,setPendingThemeIndex}=this.__closure;runOnJS(setPendingThemeIndex)(Math.round(activeIndex));}'};
object = {code: 'function SettingsAppearanceThemePickerScreenTsx3(){const{mobileThemes,isClientThemesSelector,currentThemeIndex,themeTypeIndex,ClientThemeType,withTiming,interpolateColor,cardSecondaryStops,cardSecondaryStyles,timingStandard,bgRaised}=this.__closure;const theme=mobileThemes[isClientThemesSelector?currentThemeIndex:themeTypeIndex.get()];if(!isClientThemesSelector||theme.type===ClientThemeType.STANDARD_BACKGROUND_THEME){return{backgroundColor:withTiming(interpolateColor(themeTypeIndex.get(),cardSecondaryStops,cardSecondaryStyles),timingStandard)};}else{return{backgroundColor:withTiming(bgRaised,timingStandard)};}}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/SettingsAppearanceThemePickerScreen.tsx');
exports.default = _default_104910;
}
function getSegmentedControlItems() { // fn#104888, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:2435, offset: 0x022a3ae7, size: 328 bytes, params: 1, frame: 21
let object2 = {};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const K2sFfo = (require(1244) /* metro dependency 1244: indexNative */).t.K2sFfo;
object2.label = Reflect.apply(string, intl, [K2sFfo]);
const LIGHT = ThemeTypes.LIGHT;
object2.id = LIGHT;
const ThemeLightIcon = (require(13730) /* metro dependency 13730: ThemeLightIcon */).ThemeLightIcon;
object2.icon = <ThemeLightIcon />;
object2.page = null;
const items2 = [object2];
object2 = {};
object2.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.b8Cei3);
const DARKER = ThemeTypes.DARKER;
object2.id = DARKER;
const ThemeDarkIcon = (require(11256) /* metro dependency 11256: ThemeDarkIcon */).ThemeDarkIcon;
object2.icon = <ThemeDarkIcon />;
object2.page = null;
items2[1] = object2;
object2 = {};
object2.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.pQwSpQ);
const MIDNIGHT = ThemeTypes.MIDNIGHT;
object2.id = MIDNIGHT;
const ThemeMidnightIcon = (require(13732) /* metro dependency 13732: ThemeMidnightIcon */).ThemeMidnightIcon;
object2.icon = <ThemeMidnightIcon />;
object2.page = null;
items2[2] = object2;
return items2;
}
function ThemePicker({defaultIndex, mobileThemes, isPreview, isSynced, deviceWidth, deviceHeight, canGoBack, themeSelector, hasSaveButton, hasMidnightNux, headerTitle, onSaveTheme, isRefreshEnabled}) { // fn#104889, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:3813, offset: 0x022a3c2f, size: 2580 bytes, params: 2, frame: 49
var object3;
var r17;
var themeOverride;
var items6;
var Text;
var object5;
var intl;
var items13;
const env0_3 = canGoBack;
const env0_4 = hasSaveButton;
const styles = useStyles();
const value2 = deviceWidth > deviceHeight;
const value3 = (require(1485) /* metro dependency 1485 */).useNavigation();
const defaultImport = importDefault(6771) /* metro dependency 6771: useAnalyticsLocations */;
const CLIENT_THEMES_THEME_SELECTOR = (importDefault(6789) /* metro dependency 6789: AnalyticsLocation */).CLIENT_THEMES_THEME_SELECTOR;
const analyticsLocations = defaultImport(CLIENT_THEMES_THEME_SELECTOR).analyticsLocations;
let binding = env0_4;
let useState = binding.useState;
const value5 = env0_3(Reflect.apply(useState, binding, [defaultIndex]), 2);
const property = value5[0];
const env0_11 = value5[1];
useState = binding.useState;
const themesModule = require(3866) /* metro dependency 3866: themes */;
const value10 = Reflect.apply(useState, binding,
[themesModule.isThemeDark(mobileThemes[defaultIndex].theme) ? 'light-content' : 'dark-content']);
binding = env0_3;
const value11 = binding(value10, 2);
const property2 = value11[0];
const env0_12 = value11[1];
const value12 = (require(5287) /* metro dependency 5287 */).useHeaderHeight();
const value13 = themeSelector === 'nitro';
const binding2 = env0_4;
useState = binding2.useState;
const value14 = binding(Reflect.apply(useState, binding2, [0]), 2);
const property3 = value14[0];
const env0_14 = value14[1];
let closure = _fun104890;
const value15 = binding2.useCallback(closure, []);
let useMemo = binding2.useMemo;
const value16 = Reflect.apply(useMemo, binding2, [getSegmentedControlItems, []]);
const value17 = binding2.useMemo(_fun104891, [isRefreshEnabled]);
const value18 = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([ThemeStore],
function() {
return require(dependencyMap[30]).isThemeLight(ThemeStore.systemTheme) ? ThemeTypes.LIGHT : ThemeTypes.DARKER;
});
useState = binding2.useState;
const value19 = binding(Reflect.apply(useState, binding2, [value17]), 2);
const property4 = value19[0];
const property5 = value19[1];
const value20 = (require(8853) /* metro dependency 8853: SegmentedControlStateNative */).useSegmentedControlState({items: value16,
pageWidth: property3, defaultIndex: value17});
const activeIndex = value20.activeIndex;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
closure = function() {
return activeIndex.get();
};
closure.__closure = {activeIndex: activeIndex};
closure.__workletHash = 12670867470872;
closure.__initData = env0_37;
const closure2 = ThemePickerQ_104895;
closure2.__closure = {runOnJS: reanimatedRexportModule.runOnJS, setPendingThemeIndex: property5};
closure2.__workletHash = 7003433484889;
closure2.__initData = env0_38;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
const moduleValue7 = reanimatedRexportModule;
const useSharedValue = moduleValue7.useSharedValue;
const r16 = value13 ? Reflect.apply(useSharedValue, moduleValue7,
[mobileThemes[defaultIndex].theme !== 'light' ? 1 : 0]) : value20.activeIndex;
const env0_18 = r16;
binding = env0_4;
const value22 = binding.useMemo(_fun104896, []);
const env0_19 = value22;
const moduleValue8 = reanimatedRexportModule;
const useAnimatedStyle = moduleValue8.useAnimatedStyle;
closure = Ie;
object3 = {mobileThemes: mobileThemes, isClientThemesSelector: value13, currentThemeIndex: property,
themeTypeIndex: r16};
const ClientThemeType = (require(3966) /* metro dependency 3966: ClientThemesTypes */).ClientThemeType;
object3.ClientThemeType = ClientThemeType;
object3.withTiming = (require(4504) /* metro dependency 4504: timing */).withTiming;
object3.interpolateColor = reanimatedRexportModule.interpolateColor;
object3.cardSecondaryStops = env0_19;
object3.cardSecondaryStyles = env0_18;
object3.timingStandard = (require(4507) /* metro dependency 4507: timingPresets */).timingStandard;
object3.bgRaised = value22;
closure.__closure = object3;
closure.__workletHash = 10807943820408;
closure.__initData = env0_39;
object3 = {textNormal: env0_25(r16), textMuted: env0_28(r16), textBrand: env0_35(r16), borderFaint: env0_29(r16),
borderStrong: env0_30(r16), borderNormal: env0_31(r16), headerPrimary: env0_26(r16),
headerSecondary: env0_27(r16), activityIcon: env0_32(r16), bgModSubtle: undefined(r16),
bgModStrong: undefined(r16), iconHeaderSecondary: env0_33(r16), iconInteractive: env0_34(r16),
bgBasePrimary: undefined(r16), bgSurfaceOverlay: env0_23(r16), bgSurfaceHigh: env0_24(r16),
bgRaised: Reflect.apply(useAnimatedStyle, moduleValue8, [closure])};
const value24 = binding.useCallback(_fun104898, [property, value13, r16, onSaveTheme, mobileThemes, isSynced,
analyticsLocations, value3]);
binding.useEffect(_fun104900, [value3, binding.useCallback(_fun104899, [hasSaveButton, mobileThemes, property,
isPreview, analyticsLocations, isSynced])]);
binding.useEffect(_fun104902, [property, value24, analyticsLocations, mobileThemes, isSynced, isPreview,
headerTitle, value13, value3, object3.textNormal, object3.textBrand, canGoBack, onSaveTheme, hasSaveButton,
property4, value18]);
(require(5286) /* metro dependency 5286: useNavigatorBackPressHandlerNative */).useNavigatorBackPressHandler(function() {
return !canGoBack;
});
if (value13) {
r17 = ((Component) => <Component themes={mobileThemes} currentThemeIndex={property} isPreview={isPreview} isSynced={isSynced} defaultIndex={defaultIndex} deviceWidth={value2 ? global.Math.floor(deviceWidth / 2) : deviceWidth} animatedStyles={object3} hasMidnightNux={hasMidnightNux} onThemeSelected={binding.useCallback(_fun104908, [property])} />)(importDefault(13734) /* metro dependency 13734: SettingsAppearanceThemeCarousel */);
} else {
themeOverride = getThemeOverride(mobileThemes, property4, value18);
var viewBindingProps = {style: styles.segmentedControlContainer, onLayout: value15};
items6 = [((ThemeContextProvider) => <ThemeContextProvider theme={themeOverride}>{((SegmentedControl) => <SegmentedControl variant="experimental_Large" state={value20} />)((require(9221) /* metro dependency 9221: SegmentedControlNative */).SegmentedControl)}</ThemeContextProvider>)((require(3868) /* metro dependency 3868: native */).ThemeContextProvider)];
Text = (require(4573) /* metro dependency 4573: Text */).Text;
var textProps = {'animated': true, 'variant': 'text-xs/medium', style: [object3.headerSecondary,
styles.textCentered]};
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
items6[1] = <Text {...textProps}>{intl.string((require(1244) /* metro dependency 1244: indexNative */).t.d5Gu9A)}</Text>;
r17 = <View {...viewBindingProps}>{items6}</View>;
}
binding = env0_4;
binding.useEffect(_fun104909, [property, mobileThemes, r16, value18, isRefreshEnabled]);
useMemo = binding.useMemo;
const value34 = ((Component) => <Component themes={mobileThemes} themeIndex={property} animatedStyles={object3} data={Reflect.apply(useMemo,
binding, [importDefault(13740) /* metro dependency 13740: SettingsAppearanceDummyData */,
[]])} useGradientBackground={value13} isNitroLocked={value13 && isPreview && mobileThemes[property].type !== (require(3966) /* metro dependency 3966: ClientThemesTypes */).ClientThemeType.STANDARD_BACKGROUND_THEME} />)(importDefault(13753) /* metro dependency 13753: SettingsAppearanceChannelList */);
const View2 = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View;
const items9 = [{'width': '100%', 'height': '100%'}];
items9[1] = !value13 && object3.bgBasePrimary;
const r5 = value13 ? ((Component) => <Component themes={mobileThemes} themeIndex={property} isDimmed />)(importDefault(13762) /* metro dependency 13762: SettingsAppearanceGradientBackground */) : null;
const SafeAreaPaddingView = (require(6618) /* metro dependency 6618: SafeAreaView */).SafeAreaPaddingView;
const items10 = [styles.container];
items10[1] = value2 && styles.landscapeContainer;
items10[2] = {marginTop: value12};
const value38 = ((Component) => <Component animated barStyle={property2} />)(importDefault(7725) /* metro dependency 7725: StatusBarAndroid */);
const jsxRuntimeEnv0_15Binding = jsxRuntimeEnv0_15;
const object2 = {};
if (value2) {
items13 = [<View style={styles.landscapePreview}>{value34}</View>];
items13[1] = <View style={styles.landscapeSelector}>{r17}</View>;
object2.children = items13;
} else {
object2.children = [value34, r17];
}
return (
<View2 style={items9}>
{r5}
<SafeAreaPaddingView bottom style={items10}>
{value38}
{((Fragment) => <Fragment {...object2} />)(jsxRuntimeEnv0_15Binding)}
</SafeAreaPaddingView>
</View2>
);
}
function _default_104910({onSaveTheme, headerTitle, canGoBack, themeSelector, hasSaveButton, hasMidnightNux}) { // fn#104910, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:9077, offset: 0x022a4dc3, size: 503 bytes, params: 2, frame: 30
canGoBack = canGoBack === undefined || canGoBack;
themeSelector = themeSelector === undefined ? 'nitro' : themeSelector;
hasSaveButton = !(hasSaveButton === undefined) && hasSaveButton;
hasMidnightNux = !(hasMidnightNux === undefined) && hasMidnightNux;
const {width, height} = (importDefault(1478) /* metro dependency 1478: useWindowDimensionsNative */)();
const value3 = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStoresObject([ClientThemesBackgroundStore,
ThemeStore, UnsyncedUserSettingsStore, SelectivelySyncedUserSettingsStore, CustomThemeMobileStore], function() {
var object = {};
object.userPreset = ClientThemesBackgroundStore.gradientPreset;
object.isPreview = ClientThemesBackgroundStore.isPreview;
var useSystemTheme = UnsyncedUserSettingsStore.useSystemTheme;
object.usingSystemTheme = useSystemTheme === SystemThemeState.ON;
object.isSynced = SelectivelySyncedUserSettingsStore.shouldSync('appearance');
object.userTheme = ThemeStore.theme;
object.hasCustomTheme = CustomThemeMobileStore.hasCustomTheme();
return object;
});
const isSynced = value3.isSynced;
const env0_0 = value3.usingSystemTheme;
const userPreset = value3.userPreset;
const isPreview = value3.isPreview;
const env0_2 = value3.userTheme;
const env0_3 = value3.hasCustomTheme;
const value4 = (require(4045) /* metro dependency 4045: MobileThemesUtils */).useAllMobileThemes();
const env0_4 = value4;
const value5 = (importDefault(1357) /* metro dependency 1357: MobileVisualRefreshExperiment */)('SettingsAppearanceThemePickerScreen');
const binding = env0_4;
return (
<ThemePicker
defaultIndex={(importDefault(6518) /* metro dependency 6518: useInitialValue */)(_fun104915)}
isPreview={isPreview}
isSynced={isSynced}
mobileThemes={binding.useMemo(_fun104914, [binding.useMemo(_fun104912, [userPreset, value4]), value5])}
deviceWidth={width}
deviceHeight={height}
canGoBack={canGoBack}
themeSelector={themeSelector}
onSaveTheme={onSaveTheme}
hasSaveButton={hasSaveButton}
hasMidnightNux={hasMidnightNux}
headerTitle={headerTitle}
isRefreshEnabled={value5}
/>
);
}
function _fun104890({nativeEvent}) { // fn#104890, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:4392, offset: 0x022a4643, size: 36 bytes, params: 2, frame: 11
env0_14(nativeEvent.layout.width);
}
function _fun104891() { // fn#104891, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:4497, offset: 0x022a4667, size: 89 bytes, params: 1, frame: 12
var environment;
const value = environment.__proto__;
const theme = ThemeStore.theme;
const DARK = ThemeTypes.DARK;
return theme !== DARK ? env1_17.findIndex(function(a0) {
return a0 === ThemeStore.theme;
}) : isRefreshEnabled ? env1_17.findIndex(_fun104892) : env1_17.indexOf(ThemeTypes.DARKER);
}
function ThemePickerQ_104895(a0) { // fn#104895, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:4941, owner: ThemePicker.Q, offset: 0x022a472c, size: 70 bytes, params: 2, frame: 13
let value = environment.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value = value.runOnJS(env0_16);
const Math = global.Math;
value(Math.round(a0));
}
function _fun104896() { // fn#104896, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:5206, offset: 0x022a4772, size: 83 bytes, params: 1, frame: 16
let value = environment.__proto__;
value = require(4000) /* metro dependency 4000: ColorUtils */;
const hexWithOpacity = value.hexWithOpacity;
const OverlayColors = (require(3963) /* metro dependency 3963: ClientThemesUtils */).OverlayColors;
const LIGHT = OverlayColors.LIGHT;
const OverlayOpacity = (require(3963) /* metro dependency 3963: ClientThemesUtils */).OverlayOpacity;
const LEVEL_1 = OverlayOpacity.LEVEL_1;
return Reflect.apply(hexWithOpacity, value, [LIGHT, LEVEL_1]);
}
function Ie() { // fn#104897, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:5335, owner: ThemePicker.Ie, offset: 0x022a47c5, size: 262 bytes, params: 1, frame: 24
var binding;
var type;
var value3;
var value4;
var moduleValue;
var withTiming;
var moduleValue2;
var interpolateColor;
const timingStandard = (require(4507) /* metro dependency 4507: timingPresets */).timingStandard;
var moduleValue3;
var value;
const mobileThemesBinding = mobileThemes;
let r0 = env0_13 ? env0_10 : env0_18.get();
if (env0_13) {
type = mobileThemesBinding[r0].type;
value3 = environment.__proto__;
if (type !== (require(3966) /* metro dependency 3966: ClientThemesTypes */).ClientThemeType.STANDARD_BACKGROUND_THEME) {
moduleValue3 = require(4504) /* metro dependency 4504: timing */;
r0 = {backgroundColor: moduleValue3.withTiming(env0_19, timingStandard)};
} else {
value4 = environment.__proto__;
moduleValue = require(4504) /* metro dependency 4504: timing */;
withTiming = moduleValue.withTiming;
moduleValue2 = require(4017) /* metro dependency 4017: ReanimatedRexport */;
interpolateColor = moduleValue2.interpolateColor;
binding = env0_18;
value = binding.get();
binding = env1_19;
value = Reflect.apply(interpolateColor, moduleValue2, [value, binding, env1_18]);
r0 = {backgroundColor: Reflect.apply(withTiming, moduleValue, [value, timingStandard])};
}
} else {
value4 = environment.__proto__;
moduleValue = require(4504) /* metro dependency 4504: timing */;
withTiming = moduleValue.withTiming;
moduleValue2 = require(4017) /* metro dependency 4017: ReanimatedRexport */;
interpolateColor = moduleValue2.interpolateColor;
binding = env0_18;
value = binding.get();
binding = env1_19;
value = Reflect.apply(interpolateColor, moduleValue2, [value, binding, env1_18]);
r0 = {backgroundColor: Reflect.apply(withTiming, moduleValue, [value, timingStandard])};
}
return r0;
}
function _fun104898() { // fn#104898, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:6313, offset: 0x022a48cb, size: 123 bytes, params: 1, frame: 17
const binding = env0_13;
const mobileThemesBinding = mobileThemes;
const r6 = binding ? mobileThemesBinding[env0_10] : mobileThemesBinding[env0_18.get()];
const userSettingsAppearanceThemeUtilsModule = require(13646) /* metro dependency 13646: UserSettingsAppearanceThemeUtils */;
userSettingsAppearanceThemeUtilsModule.handleSaveTheme(r6, analyticsLocations, isSynced);
if (onSaveTheme == null) {
env0_8.goBack();
} else {
onSaveTheme();
}
}
function _fun104899() { // fn#104899, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:6446, offset: 0x022a4946, size: 129 bytes, params: 1, frame: 16
var type;
var value2;
var value3;
var moduleValue;
const property = mobileThemes[env0_10];
if (!hasSaveButton) {
if (isPreview) {
type = property.type;
value2 = environment.__proto__;
if (type !== (require(3966) /* metro dependency 3966: ClientThemesTypes */).ClientThemeType.STANDARD_BACKGROUND_THEME) {
return undefined;
}
value3 = environment.__proto__;
moduleValue = require(13646) /* metro dependency 13646: UserSettingsAppearanceThemeUtils */;
moduleValue.handleSaveTheme(property, analyticsLocations, isSynced);
return undefined;
}
moduleValue = require(13646) /* metro dependency 13646: UserSettingsAppearanceThemeUtils */;
moduleValue.handleSaveTheme(property, analyticsLocations, isSynced);
}
}
function _fun104900() { // fn#104900, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:6609, offset: 0x022a49c7, size: 34 bytes, params: 1, frame: 13
return env0_8.addListener('beforeRemove', _fun104901);
}
function _fun104902() { // fn#104902, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:6680, offset: 0x022a49f8, size: 212 bytes, params: 1, frame: 16
var environment;
var type;
var value2;
var value3;
const property = mobileThemes[env0_10];
let binding = env0_13;
if (binding && isPreview) {
type = property.type;
value2 = environment.__proto__;
value3 = type !== (require(3966) /* metro dependency 3966: ClientThemesTypes */).ClientThemeType.STANDARD_BACKGROUND_THEME;
}
binding = env0_8;
const setOptions = binding.setOptions;
const value5 = undefined;
const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */;
Reflect.apply(setOptions, binding, [{'headerBackground': null, 'headerTransparent': true,
'headerBackVisible': false, 'headerLeft': null, 'headerTitle': null, 'headerTitleAlign': 'center',
headerBackground: platformUtilsModule.isIOS() ? value5 : _fun104903, headerLeft: headerLeft_104904,
headerTitle: headerTitle_104905, headerRight: hasSaveButton ? _fun104906 : value5}]);
return value5;
}
function _fun104908(a0) { // fn#104908, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:7601, offset: 0x022a4cd8, size: 63 bytes, params: 2, frame: 13
var value;
if (a0 !== env0_10) {
env0_11(a0);
value = environment.__proto__;
value = require(13647) /* metro dependency 13647: ClientThemesBackgroundActionCreators */;
value.updateMobilePendingThemeIndex(a0);
}
}
function _fun104909() { // fn#104909, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:8242, offset: 0x022a4d17, size: 172 bytes, params: 1, frame: 15
const property = mobileThemes[env0_10];
let r0 = property.theme === 'system' ? env0_15 ?? ThemeTypes.DARKER : property.theme;
const DARK = ThemeTypes.DARK;
r0 = !(r0 !== DARK || isRefreshEnabled) ? ThemeTypes.DARKER : r0;
let binding = env0_18;
const set = binding.set;
const binding2 = env1_17;
Reflect.apply(set, binding, [binding2.indexOf(r0)]);
binding = env0_12;
const LIGHT = ThemeTypes.LIGHT;
binding(r0 !== LIGHT ? 'light-content' : 'dark-content');
}
function _fun104912() { // fn#104912, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:9658, offset: 0x022a5032, size: 97 bytes, params: 1, frame: 15
const id = userPreset?.id;
const BackgroundGradientPresetId = (require(1314) /* metro dependency 1314: preloaded_user_settings */).BackgroundGradientPresetId;
const EASTER_EGG = BackgroundGradientPresetId.EASTER_EGG;
const result = id === EASTER_EGG;
return env0_4.filter(_fun104913);
}
function _fun104914() { // fn#104914, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:9903, offset: 0x022a50fc, size: 77 bytes, params: 1, frame: 15
var r0;
var items2;
let binding = env0_5;
const binding2 = env0_6;
if (binding) {
r0 = binding2;
} else {
items2 = [binding2[1], env0_6[0]];
binding = env0_6;
arraySpread(items2, binding.slice(2), 2, binding);
r0 = items2;
}
return r0;
}
function _fun104915() { // fn#104915, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:9958, offset: 0x022a5149, size: 63 bytes, params: 1, frame: 19
const value = environment.__proto__;
return (require(13646) /* metro dependency 13646: UserSettingsAppearanceThemeUtils */).getUserThemeIndex(userPreset,
usingSystemTheme, env0_7, userTheme, hasCustomTheme);
}
function _fun104892(a0) { // fn#104892, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:4534, offset: 0x022a46c0, size: 22 bytes, params: 2, frame: 2
return a0 === ThemeStore.theme;
}
function _fun104901() { // fn#104901, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:6644, offset: 0x022a49e9, size: 15 bytes, params: 1, frame: 9
env1_22();
}
function _fun104903() { // fn#104903, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:6822, offset: 0x022a4acc, size: 23 bytes, params: 1, frame: 13
return <View />;
}
function headerLeft_104904() { // fn#104904, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:6887, offset: 0x022a4ae3, size: 124 bytes, params: 1, frame: 18
var value2;
if (canGoBack) {
value2 = environment.__proto__.__proto__;
const ThemeContextProvider = (require(3868) /* metro dependency 3868: native */).ThemeContextProvider;
return (
<ThemeContextProvider theme={getThemeOverride(mobileThemes, env1_10, env1_15)}>
{((Component) => <Component navigation={env1_8} />)(importDefault(9610) /* metro dependency 9610: PressableNavigatorModalIcon */)}
</ThemeContextProvider>
);
}
return null;
}
function headerTitle_104905() { // fn#104905, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:7043, offset: 0x022a4b5f, size: 150 bytes, params: 1, frame: 19
var r4;
var intl;
const value = environment.__proto__.__proto__;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const textNormal = env1_20.textNormal;
if (headerTitle != null) {
r4 = headerTitle;
} else {
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
r4 = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.XAS5Pi);
}
return (
<Text
animated
variant="redesign/heading-18/bold"
style={textNormal}
>
{r4}
</Text>
);
}
function _fun104906() { // fn#104906, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:7232, offset: 0x022a4bf5, size: 227 bytes, params: 1, frame: 20
const PressableOpacity = (require(5278) /* metro dependency 5278: Pressables */).PressableOpacity;
const pressableOpacityProps = {hitSlop: 8, disabled: env0_0, onPress: env1_21};
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const items2 = [env1_20.textBrand];
items2[1] = env0_0 && ({opacity: 0.4});
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
return (
<PressableOpacity {...pressableOpacityProps}>
<Text
animated
variant="text-md/semibold"
style={items2}
>
{intl.string((require(1244) /* metro dependency 1244: indexNative */).t.i4jeWR)}
</Text>
</PressableOpacity>
);
}
function _fun104913(a0) { // fn#104913, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13926:9757, offset: 0x022a5093, size: 105 bytes, params: 2, frame: 14
const type = a0.type;
const value = environment.__proto__.__proto__;
const ClientThemeType = (require(3966) /* metro dependency 3966: ClientThemesTypes */).ClientThemeType;
const BACKGROUND_GRADIENT_PRESET = ClientThemeType.BACKGROUND_GRADIENT_PRESET;
let r0 = type !== BACKGROUND_GRADIENT_PRESET || a0.id !== (require(1314) /* metro dependency 1314: preloaded_user_settings */).BackgroundGradientPresetId.EASTER_EGG;
r0 = !r0 ? result : r0;
return r0;
}
@@ -0,0 +1,148 @@
/* Metro module 13646; source: modules/user_settings/appearance/native/UserSettingsAppearanceThemeUtils.tsx; dependencies: [661, 3965, 1880, 3966, 1314, 13647, 11515, 7896, 3866, 683, 2] */
function _fun104208(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#104208, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13843:6, offset: 0x0228a662, size: 221 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_3 = constantsModule.AnalyticEvents;
const env0_4 = constantsModule.ThemeTypes;
const env0_5 = (require(3965) /* metro dependency 3965: ClientThemesConstants */).BACKGROUND_GRADIENT_PRESETS_MOBILE;
const env0_6 = (require(1880) /* metro dependency 1880: PremiumConstants */).AnalyticsPremiumFeatureNames;
const closure = function({isPersisted, isSynced, themeName, analyticsLocations}) {
var defaultImport = importDefault(dependencyMap[9]);
var CLIENT_THEME_UPDATED = AnalyticEvents.CLIENT_THEME_UPDATED;
defaultImport.track(CLIENT_THEME_UPDATED, {feature_name: AnalyticsPremiumFeatureNames.CLIENT_THEME,
theme_name: themeName, is_persisted: isPersisted, is_synced: isSynced, location_stack: analyticsLocations});
};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/UserSettingsAppearanceThemeUtils.tsx');
exports.handleSaveTheme = handleSaveTheme;
exports.trackClientThemeUpdated = closure;
exports.getUserThemeIndex = getUserThemeIndex;
}
function getThemeNameForAnalytics(a0) { // fn#104209, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13843:224, offset: 0x0228a73f, size: 165 bytes, params: 2, frame: 16
const type = a0.type;
const ClientThemeType = (require(3966) /* metro dependency 3966: ClientThemesTypes */).ClientThemeType;
const CUSTOM_BACKGROUND_GRADIENT = ClientThemeType.CUSTOM_BACKGROUND_GRADIENT;
return type === CUSTOM_BACKGROUND_GRADIENT ? 'custom theme' : a0.type === ClientThemeType.BACKGROUND_GRADIENT_PRESET ? (require(1314) /* metro dependency 1314: preloaded_user_settings */).BackgroundGradientPresetId[a0.id] : 'default ' + a0.theme;
}
function handleSaveTheme(a0, a1, a2) { // fn#104211, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13843:812, offset: 0x0228a85a, size: 601 bytes, params: 4, frame: 19
var r0;
const ClientThemeType = (require(3966) /* metro dependency 3966: ClientThemesTypes */).ClientThemeType;
var saveClientTheme;
var updateBackgroundGradientPreset;
var id;
var moduleValue2;
var updateCustomTheme;
var customThemeSettings;
var moduleValue3;
var moduleValue4;
var isThemeDark;
var value;
const trackClientThemeUpdatedBinding = trackClientThemeUpdated;
let object2 = {isPersisted: true, isSynced: a2};
object2.themeName = getThemeNameForAnalytics(a0);
object2.analyticsLocations = a1;
trackClientThemeUpdatedBinding(object2);
let theme = a0.theme;
if (theme === 'system') {
value = require(13647) /* metro dependency 13647: ClientThemesBackgroundActionCreators */;
value.resetBackgroundGradientPreset();
value = require(11515) /* metro dependency 11515: CustomThemeMobileActionCreators */;
value.resetCustomTheme();
value = require(7896) /* metro dependency 7896: UserSettingsActionCreators */;
value = value.saveClientTheme({theme: a0.theme});
r0 = value;
} else if (a0.type === ClientThemeType.CUSTOM_BACKGROUND_GRADIENT) {
(require(13647) /* metro dependency 13647: ClientThemesBackgroundActionCreators */).resetBackgroundGradientPreset();
moduleValue2 = require(11515) /* metro dependency 11515: CustomThemeMobileActionCreators */;
updateCustomTheme = moduleValue2.updateCustomTheme;
customThemeSettings = a0.customThemeSettings;
theme = a0.theme;
Reflect.apply(updateCustomTheme, moduleValue2, [customThemeSettings, theme]);
moduleValue3 = require(7896) /* metro dependency 7896: UserSettingsActionCreators */;
saveClientTheme = moduleValue3.saveClientTheme;
object2 = {};
customThemeSettings = a0.customThemeSettings;
object2.customUserThemeSettings = customThemeSettings;
moduleValue4 = require(3866) /* metro dependency 3866: themes */;
isThemeDark = moduleValue4.isThemeDark;
theme = a0.theme;
object2.theme = Reflect.apply(isThemeDark, moduleValue4, [theme]) ? ThemeTypes.DARK : ThemeTypes.LIGHT;
r0 = Reflect.apply(saveClientTheme, moduleValue3, [object2]);
} else if (a0.type === ClientThemeType.BACKGROUND_GRADIENT_PRESET) {
value = require(13647) /* metro dependency 13647: ClientThemesBackgroundActionCreators */;
updateBackgroundGradientPreset = value.updateBackgroundGradientPreset;
id = a0.id;
Reflect.apply(updateBackgroundGradientPreset, value, [id]);
value = require(11515) /* metro dependency 11515: CustomThemeMobileActionCreators */;
value.resetCustomTheme();
value = require(7896) /* metro dependency 7896: UserSettingsActionCreators */;
saveClientTheme = value.saveClientTheme;
id = a0.id;
value = Reflect.apply(saveClientTheme, value, [{backgroundGradientPresetId: id, theme: a0.theme}]);
r0 = value;
} else {
value = require(13647) /* metro dependency 13647: ClientThemesBackgroundActionCreators */;
value.resetBackgroundGradientPreset();
value = require(11515) /* metro dependency 11515: CustomThemeMobileActionCreators */;
value.resetCustomTheme();
value = require(7896) /* metro dependency 7896: UserSettingsActionCreators */;
value = value.saveClientTheme({theme: a0.theme});
r0 = value;
}
return r0;
}
function getUserThemeIndex(a0, a1, a2, a3, a4) { // fn#104212, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13843:1733, offset: 0x0228aab3, size: 189 bytes, params: 6, frame: 14
var r2;
var r0;
var value3;
var index3;
var value5;
let value = a3;
const env0_0 = a0;
const index = a2.findIndex(function({type}) {
return type === require(dependencyMap[3]).ClientThemeType.CUSTOM_BACKGROUND_GRADIENT;
});
if (a0 != null) {
value = a2.findIndex(function({type}) {
return type === require(dependencyMap[3]).ClientThemeType.BACKGROUND_GRADIENT_PRESET;
});
index3 = BACKGROUND_GRADIENT_PRESETS_MOBILE.findIndex(_fun104215);
value5 = 0;
if (value >= value5) {
if (index3 >= value5) {
value += index3;
r0 = value;
} else {
r0 = value5;
}
} else {
r0 = value5;
}
return r0;
}
if (a4) {
if (index >= 0) {
return a2.findIndex(function({type}) {
return type === require(dependencyMap[3]).ClientThemeType.CUSTOM_BACKGROUND_GRADIENT;
});
}
r2 = a1 ? 'system' : value;
value = a2.findIndex(_fun104217);
value3 = 0;
r2 = value >= value3 ? value : value3;
return r2;
}
r2 = a1 ? 'system' : value;
value = a2.findIndex(_fun104217);
value3 = 0;
return value >= value3 ? value : value3;
}
function _fun104217({theme}) { // fn#104217, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13843:2124, offset: 0x0228abd6, size: 22 bytes, params: 2, frame: 2
return theme === env0_1;
}
@@ -0,0 +1,164 @@
/* Metro module 13757; source: modules/user_settings/appearance/native/components/SettingsAppearanceActivityCardItem.tsx; dependencies: [31, 27, 1949, 13758, 33, 4017, 1305, 4501, 697, 632, 7599, 5475, 4573, 1856, 13759, 13760, 13761, 2] */
function _fun104975(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#104975, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13954:6, offset: 0x022a8618, size: 860 bytes, params: 8, frame: 31
var object8;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
importAll(31) /* metro dependency 31 */;
let value = require(27) /* metro dependency 27 */;
const StyleSheet = value.StyleSheet;
const env0_3 = value.View;
const localeStore = importDefault(1949) /* metro dependency 1949: LocaleStore */;
value = require(13758) /* metro dependency 13758: HappeningNowConstants */;
const HAPPENING_NOW_BADGE_SIZE = value.HAPPENING_NOW_BADGE_SIZE;
const HAPPENING_NOW_CARD_HEIGHT = value.HAPPENING_NOW_CARD_HEIGHT;
const HAPPENING_NOW_CARD_MARGIN_RIGHT = value.HAPPENING_NOW_CARD_MARGIN_RIGHT;
const HAPPENING_NOW_CARD_PADDING = value.HAPPENING_NOW_CARD_PADDING;
const HAPPENING_NOW_CARD_PADDING_RIGHT = value.HAPPENING_NOW_CARD_PADDING_RIGHT;
const HAPPENING_NOW_CONTENT_HEIGHT = value.HAPPENING_NOW_CONTENT_HEIGHT;
value = require(33) /* metro dependency 33 */;
const env0_5 = value.jsx;
const env0_6 = value.jsxs;
value = importDefault(4017) /* metro dependency 4017: ReanimatedRexport */;
const createAnimatedComponent = value.createAnimatedComponent;
const Icon = (require(1305) /* metro dependency 1305: native */).Icon;
const env0_7 = Reflect.apply(createAnimatedComponent, value, [Icon]);
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
object8 = {};
const object10 = {};
object10.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.lg;
object10.borderWidth = StyleSheet.hairlineWidth;
object10.padding = HAPPENING_NOW_CARD_PADDING;
object10.paddingRight = HAPPENING_NOW_CARD_PADDING_RIGHT;
object10.marginRight = HAPPENING_NOW_CARD_MARGIN_RIGHT;
object10.height = HAPPENING_NOW_CARD_HEIGHT;
object10.flexDirection = 'row';
object10.alignItems = 'center';
object8.card = object10;
object8.cardBadgeWrapper = {'position': 'absolute', 'top': 0, 'right': 0};
const object11 = {height: HAPPENING_NOW_CONTENT_HEIGHT, minWidth: HAPPENING_NOW_CONTENT_HEIGHT};
const PX_12 = (importDefault(697) /* metro dependency 697: native */).space.PX_12;
object11.marginRight = PX_12;
object11.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.md;
object11.position = 'relative';
object8.cardImage = object11;
const object12 = {'display': 'flex', 'alignItems': 'center', 'justifyContent': 'center', 'width': null,
'height': null, 'borderTopRightRadius': 15};
object12.width = HAPPENING_NOW_BADGE_SIZE;
object12.height = HAPPENING_NOW_BADGE_SIZE;
object12.borderBottomLeftRadius = (importDefault(697) /* metro dependency 697: native */).radii.md;
object8.cardBadge = object12;
const object13 = {height: '100%'};
const CARD_SECONDARY_BG = (importDefault(697) /* metro dependency 697: native */).colors.CARD_SECONDARY_BG;
object13.backgroundColor = CARD_SECONDARY_BG;
object13.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
object8.cardImageAssetContainer = object13;
const object14 = {width: HAPPENING_NOW_CONTENT_HEIGHT, height: HAPPENING_NOW_CONTENT_HEIGHT};
object14.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
object8.cardImageAssetBackground = object14;
const object15 = {width: HAPPENING_NOW_CONTENT_HEIGHT, height: HAPPENING_NOW_CONTENT_HEIGHT};
object15.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
object15.borderWidth = 1;
const BORDER_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.BORDER_SUBTLE;
object15.borderColor = BORDER_SUBTLE;
object8.cardImageAsset = object15;
object8.shiftedAvatar = {marginLeft: -4};
const object16 = {'flexDirection': 'row', 'alignItems': 'center', 'justifyContent': 'center', 'marginLeft': -4,
'height': null, 'minWidth': null, 'borderRadius': null, 'paddingHorizontal': 4, 'paddingTop': 1};
const AVATAR_SIZE_MAP = (require(1305) /* metro dependency 1305: native */).AVATAR_SIZE_MAP;
const AvatarSizes = (require(1305) /* metro dependency 1305: native */).AvatarSizes;
let XSMALL_20 = AvatarSizes.XSMALL_20;
object16.height = AVATAR_SIZE_MAP[XSMALL_20];
XSMALL_20 = AvatarSizes.XSMALL_20;
object16.minWidth = AVATAR_SIZE_MAP[XSMALL_20];
object16.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object8.userCounter = object16;
const env0_8 = Reflect.apply(createStyles, value, [object8]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/components/SettingsAppearanceActivityCardItem.tsx');
exports.default = ActivityCardItem;
}
function ActivityCardItem({kind, title, subtitle, image, avatars, animatedStyles}) { // fn#104976, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13954:1687, offset: 0x022a8974, size: 958 bytes, params: 2, frame: 37
const locale = require(dependencyMap[9]).useStateFromStores([LocaleStore], function() {
return LocaleStore.locale;
});
const styles = useStyles();
let r2 = avatars?.slice(0, 3);
r2 = r2 ?? [];
const r25 = avatars != null ? avatars.length - r2.length : 0;
const r17 = avatars != null ? r2.map(_fun104978) : null;
const View2 = importDefault(dependencyMap[5]).View;
const items2 = [styles.card];
items2[1] = animatedStyles.borderStrong;
items2[2] = animatedStyles.bgRaised;
const items3 = [<View style={[styles.cardImageAssetContainer,
styles.cardImage]}><View style={styles.cardImageAssetBackground}>{((Component) => <Component style={styles.cardImageAsset} source={image} />)(importDefault(dependencyMap[11]))}</View></View>];
const items7 = [<View style={{flexDirection: 'row'}}><View style={{flexDirection: 'row'}}>{r17}</View>{r25 > 0 ? ((View) => <View style={[styles.userCounter,
animatedStyles.bgModStrong]}>{((Text) => <Text animated variant="text-xxs/semibold" allowFontScaling={false} style={animatedStyles.textNormal}>{'+'}{require(dependencyMap[13]).humanizeValue(r25,
locale)}</Text>)(require(dependencyMap[12]).Text)}</View>)(importDefault(dependencyMap[5]).View) : null}</View>];
const HappeningNowCardHeader = require(dependencyMap[14]).HappeningNowCardHeader;
items7[1] = <HappeningNowCardHeader animated style={animatedStyles.headerPrimary}>{title}</HappeningNowCardHeader>;
const HappeningNowCardSubtitle = require(dependencyMap[14]).HappeningNowCardSubtitle;
items7[2] = <HappeningNowCardSubtitle animated style={animatedStyles.headerSecondary}>{subtitle}</HappeningNowCardSubtitle>;
items3[1] = <View>{items7}</View>;
const View4 = importDefault(dependencyMap[5]).View;
const items8 = [styles.cardBadge];
items8[1] = animatedStyles.bgModSubtle;
const binding = env0_7;
const activityIcon = animatedStyles.activityIcon;
const Icon = require(dependencyMap[6]).Icon;
const Sizes = Icon.Sizes;
const REFRESH_SMALL_16 = Sizes.REFRESH_SMALL_16;
items3[2] = <View style={styles.cardBadgeWrapper}><View4 style={items8}>{((Component) => <Component style={activityIcon} size={REFRESH_SMALL_16} resizeMode="stretch" source={importDefault(kind === 'activity' ? dependencyMap[15] : dependencyMap[16])} />)(binding)}</View4></View>;
return (
<View2 style={items2}>
{items3}
</View2>
);
}
function _fun104978(a0, a1) { // fn#104978, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13954:1930, offset: 0x022a8d32, size: 353 bytes, params: 3, frame: 27
var r5;
var object;
const AVATAR_SIZE_MAP = (require(1305) /* metro dependency 1305: native */).AVATAR_SIZE_MAP;
var value;
const value2 = env0_1.length - 1;
const value4 = undefined;
const Avatar = (require(1305) /* metro dependency 1305: native */).Avatar;
const AvatarSizes = (require(1305) /* metro dependency 1305: native */).AvatarSizes;
let XSMALL_20 = AvatarSizes.XSMALL_20;
const avatar = <Avatar source={a0} size={XSMALL_20} />;
const shiftedAvatar = a1 === 0 ? value4 : styles.shiftedAvatar;
if (a1 !== value2) {
value = importDefault(7599) /* metro dependency 7599: ClipView */;
object = {};
object.shape = (require(7599) /* metro dependency 7599: ClipView */).CutoutShape.Circle;
XSMALL_20 = AvatarSizes.XSMALL_20;
object.x = AVATAR_SIZE_MAP[XSMALL_20] - 4 - 2;
object.y = -2;
XSMALL_20 = AvatarSizes.XSMALL_20;
object.size = AVATAR_SIZE_MAP[XSMALL_20] + 4;
value = ((Component) => <Component cutouts={[object]}>{avatar}</Component>)(value);
r5 = value;
} else if (env0_2 <= 0) {
r5 = avatar;
} else {
value = importDefault(7599) /* metro dependency 7599: ClipView */;
object = {};
object.shape = (require(7599) /* metro dependency 7599: ClipView */).CutoutShape.Circle;
XSMALL_20 = AvatarSizes.XSMALL_20;
object.x = AVATAR_SIZE_MAP[XSMALL_20] - 4 - 2;
object.y = -2;
XSMALL_20 = AvatarSizes.XSMALL_20;
object.size = AVATAR_SIZE_MAP[XSMALL_20] + 4;
value = ((Component) => <Component cutouts={[object]}>{avatar}</Component>)(value);
r5 = value;
}
return (
<View style={shiftedAvatar} key={a1}>
{r5}
</View>
);
}
@@ -0,0 +1,38 @@
/* Metro module 13756; source: modules/user_settings/appearance/native/components/SettingsAppearanceActivityCardsItem.tsx; dependencies: [31, 33, 8416, 697, 13757, 2] */
function _fun104971(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#104971, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13953:6, offset: 0x022a8498, size: 138 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
importAll(31) /* metro dependency 31 */;
const env0_3 = (require(33) /* metro dependency 33 */).jsx;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/components/SettingsAppearanceActivityCardsItem.tsx');
exports.default = ActivityCardsItem;
}
function ActivityCardsItem({cards, animatedStyles}) { // fn#104972, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13953:252, offset: 0x022a8522, size: 180 bytes, params: 2, frame: 20
const FlashList = (require(8416) /* metro dependency 8416: flashList */).FlashList;
const object = {};
let PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object.paddingVertical = PX_16;
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object.paddingHorizontal = PX_16;
return (
<FlashList
contentContainerStyle={object}
data={cards}
renderItem={renderItem_104973}
keyExtractor={function(a0) {
return a0.title;
}}
estimatedItemSize={265}
showsHorizontalScrollIndicator={false}
horizontal
/>
);
}
function ActivityCardsItemRenderItem({item}) { // fn#104973, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13953:451, owner: ActivityCardsItem.renderItem, offset: 0x022a85d6, size: 66 bytes, params: 2, frame: 15
const value = environment.__proto__;
return ((Component) => <Component animatedStyles={animatedStyles} {...item} />)(importDefault(13757) /* metro dependency 13757: SettingsAppearanceActivityCardItem */);
}
@@ -0,0 +1,92 @@
/* Metro module 13753; source: modules/user_settings/appearance/native/components/SettingsAppearanceChannelList.tsx; dependencies: [31, 27, 33, 4501, 697, 13754, 13755, 13756, 4017, 1244, 13762, 8416, 13765, 2] */
function _fun104963(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#104963, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13950:6, offset: 0x022a78f4, size: 382 bytes, params: 8, frame: 23
var object4;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
let value = require(27) /* metro dependency 27 */;
const StyleSheet = value.StyleSheet;
const env0_4 = value.View;
value = require(33) /* metro dependency 33 */;
const env0_5 = value.jsx;
const env0_6 = value.jsxs;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
object4 = {};
const object5 = {};
copyDataProperties(object5, StyleSheet.absoluteFillObject, undefined);
object5['borderRadius'] = (importDefault(697) /* metro dependency 697: native */).radii.xl;
object5['overflow'] = 'hidden';
object4.channelPreviewGradient = object5;
const object6 = {'flex': 1, 'marginTop': null, 'borderRadius': null, 'width': '100%', 'borderWidth': 1};
const PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object6.marginTop = PX_8;
object6.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.xl;
const SHADOW_HIGH = (importDefault(697) /* metro dependency 697: native */).shadows.SHADOW_HIGH;
copyDataProperties(object6, SHADOW_HIGH, undefined);
object6['shadowColor'] = '#000000';
object4.channelPreviewCardContainer = object6;
const env0_7 = Reflect.apply(createStyles, value, [object4]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/components/SettingsAppearanceChannelList.tsx');
exports.default = ChannelListPreview;
}
function ChannelListPreview({themes, themeIndex, animatedStyles, data, useGradientBackground, isNitroLocked}) { // fn#104964, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13950:595, offset: 0x022a7a72, size: 530 bytes, params: 2, frame: 29
const styles = useStyles();
const value2 = env0_3.useCallback(_fun104965, [animatedStyles]);
const View2 = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View;
const items2 = [styles.channelPreviewCardContainer];
items2[1] = animatedStyles.borderNormal;
items2[2] = !useGradientBackground && animatedStyles.bgSurfaceHigh;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const iGxm3x = (require(1244) /* metro dependency 1244: indexNative */).t.iGxm3x;
const r5 = useGradientBackground ? <View style={styles.channelPreviewGradient}>{((Component) => <Component themes={themes} themeIndex={themeIndex} isDimmed={false} backgroundToken={(importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOW} />)(importDefault(13762) /* metro dependency 13762: SettingsAppearanceGradientBackground */)}</View> : null;
const FlashList = (require(8416) /* metro dependency 8416: flashList */).FlashList;
const PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
return (
<View2
style={items2}
accessible
accessibilityRole="image"
accessibilityLabel={Reflect.apply(string, intl, [iGxm3x])}
>
{r5}
<FlashList
contentContainerStyle={{paddingVertical: PX_16}}
data={data}
renderItem={value2}
keyExtractor={function(a0) {
return a0.id;
}}
estimatedItemSize={64}
showsVerticalScrollIndicator={false}
importantForAccessibility="no-hide-descendants"
/>
{((Component) => <Component visible={isNitroLocked} theme={themes[themeIndex]} />)(importDefault(13765) /* metro dependency 13765: SettingsAppearanceChannelListPreviewNitroUpsell */)}
</View2>
);
}
function _fun104965({item}) { // fn#104965, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13950:739, offset: 0x022a7c84, size: 245 bytes, params: 2, frame: 16
var value;
const kind = item.kind;
if (kind === 'channel-row') {
value = environment.__proto__;
value = importDefault(13754) /* metro dependency 13754: SettingsAppearanceChannelRowItem */;
return ((Component) => <Component {...item} {...{['animatedStyles']: animatedStyles}} />)(value);
}
if (kind === 'messages-header') {
value = environment.__proto__;
value = importDefault(13755) /* metro dependency 13755: SettingsAppearanceMessagesHeaderItem */;
return ((Component) => <Component {...item} {...{['animatedStyles']: animatedStyles}} />)(value);
}
if (kind === 'activity-cards') {
value = environment.__proto__;
value = importDefault(13756) /* metro dependency 13756: SettingsAppearanceActivityCardsItem */;
return ((Component) => <Component {...item} {...{['animatedStyles']: animatedStyles}} />)(value);
}
return null;
}
@@ -0,0 +1,184 @@
/* Metro module 13765; source: modules/user_settings/appearance/native/components/SettingsAppearanceChannelListPreviewNitroUpsell.tsx; dependencies: [31, 27, 4502, 661, 33, 4017, 4589, 4577, 4581, 4501, 697, 6771, 6789, 5080, 7028, 1962, 7940, 4578, 1244, 1305, 566, 8549, 2] */
function _fun105018(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#105018, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13962:6, offset: 0x022aaea3, size: 669 bytes, params: 8, frame: 25
var object4;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const value2 = require(27) /* metro dependency 27 */;
const StyleSheet = value2.StyleSheet;
const env0_5 = value2.View;
const accessibilityStore = importDefault(4502) /* metro dependency 4502: AccessibilityStore */;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_7 = constantsModule.AnalyticsPages;
const env0_8 = constantsModule.AnalyticsSections;
const env0_9 = constantsModule.ThemeTypes;
const value4 = require(33) /* metro dependency 33 */;
const env0_10 = value4.jsx;
const env0_11 = value4.jsxs;
const env0_12 = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).createAnimatedComponent(importDefault(4589) /* metro dependency 4589 */);
const env0_13 = ['rgba(0, 0, 0, 0)', 'rgba(0, 0, 0, 1)'];
object4 = {code: 'function animationEntering_SettingsAppearanceChannelListPreviewNitroUpsellTsx1(visible){const{withSpring,springStandard}=this.__closure;return{opacity:withSpring(visible,springStandard)};}'};
const env0_15 = _fun105022();
object4 = {code: "function animationExiting_SettingsAppearanceChannelListPreviewNitroUpsellTsx2(visible,cleanUp){const{withSpring,springStandard}=this.__closure;return{opacity:withSpring(visible,springStandard,'respect-motion-settings',function(finished){cleanUp===null||cleanUp===void 0||cleanUp(finished);})};}"};
object4 = {code: 'function SettingsAppearanceChannelListPreviewNitroUpsellTsx3(finished){const{cleanUp}=this.__closure;var _cleanUp;(_cleanUp=cleanUp)===null||_cleanUp===void 0||_cleanUp(finished);}'};
const env0_18 = _fun105024();
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object4 = {};
const object5 = {};
copyDataProperties(object5, StyleSheet.absoluteFillObject, undefined);
object5['borderBottomStartRadius'] = (importDefault(697) /* metro dependency 697: native */).radii.xl;
object5['borderBottomEndRadius'] = (importDefault(697) /* metro dependency 697: native */).radii.xl;
const PX_96 = (importDefault(697) /* metro dependency 697: native */).space.PX_96;
object5['height'] = 2 * PX_96;
const PX_24 = (importDefault(697) /* metro dependency 697: native */).space.PX_24;
object5['padding'] = PX_24;
object5['justifyContent'] = 'flex-end';
object5['top'] = undefined;
object5['overflow'] = 'hidden';
object4.nitroUpsell = object5;
const object6 = {};
let PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object6.height = PX_16;
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object6.width = PX_16;
object4.nitroWheelIcon = object6;
const env0_19 = Reflect.apply(createStyles, createStylesModule, [object4]);
object4 = {code: 'function SettingsAppearanceChannelListPreviewNitroUpsellTsx4(){const{theme,ThemeTypes,StyleSheet,withSpring,springStandard}=this.__closure;const opacity=theme.theme===ThemeTypes.LIGHT?0.5:1;return{...StyleSheet.absoluteFillObject,opacity:withSpring(opacity,springStandard)};}'};
value = value.memo(SettingsAppearanceChannelListPreviewNitroUpsell);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/components/SettingsAppearanceChannelListPreviewNitroUpsell.tsx');
exports.default = value;
}
function SettingsAppearanceChannelListPreviewNitroUpsellComponent({theme}) { // fn#105019, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13962:2400, offset: 0x022ab140, size: 473 bytes, params: 2, frame: 25
const styles = useStyles();
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
const closure = SettingsAppearanceChannelListPreviewNitroUpsellComponentL;
const object2 = {theme: theme};
object2.ThemeTypes = ThemeTypes;
object2.StyleSheet = StyleSheet;
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.springStandard = (require(4581) /* metro dependency 4581: springPresets */).springStandard;
closure.__closure = object2;
closure.__workletHash = 16911565077998;
closure.__initData = env0_20;
const value2 = Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
const defaultImport = importDefault(6771) /* metro dependency 6771: useAnalyticsLocations */;
const CLIENT_THEMES_EDITOR = (importDefault(6789) /* metro dependency 6789: AnalyticsLocation */).CLIENT_THEMES_EDITOR;
const value3 = env0_3.useCallback(_fun105021, [defaultImport(CLIENT_THEMES_EDITOR).analyticsLocations]);
const env0_122 = ((Component) => <Component style={value2} importantForAccessibility="no-hide-descendants" colors={env0_13} />)(env0_12);
const Button = (require(4578) /* metro dependency 4578: ButtonNative */).Button;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const pj0XBN = (require(1244) /* metro dependency 1244: indexNative */).t.pj0XBN;
const NitroWheel = (require(1305) /* metro dependency 1305: native */).NitroWheel;
return (
<View style={styles.nitroUpsell}>
{env0_122}
<Button
text={Reflect.apply(string, intl, [pj0XBN])}
icon={<NitroWheel style={styles.nitroWheelIcon} />}
variant="active"
onPress={value3}
size="md"
/>
</View>
);
}
function _fun105022() { // fn#105022, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13962:530, offset: 0x022ab42d, size: 102 bytes, params: 1, frame: 15
const closure = animationEntering;
const object2 = {};
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.springStandard = (require(4581) /* metro dependency 4581: springPresets */).springStandard;
closure.__closure = object2;
closure.__workletHash = 2168112734281;
closure.__initData = env0_14;
return closure;
}
function _fun105024() { // fn#105024, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13962:1340, offset: 0x022ab4d4, size: 102 bytes, params: 1, frame: 15
const closure = animationExiting;
const object2 = {};
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.springStandard = (require(4581) /* metro dependency 4581: springPresets */).springStandard;
closure.__closure = object2;
closure.__workletHash = 12271101023923;
closure.__initData = env0_16;
return closure;
}
function SettingsAppearanceChannelListPreviewNitroUpsell(a0) { // fn#105027, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13962:3399, offset: 0x022ab5bc, size: 162 bytes, params: 2, frame: 18
const value = a0;
const value3 = undefined;
const useReducedMotion = (require(566) /* metro dependency 566: flux */).useStateFromStores([AccessibilityStore],
function() {
return AccessibilityStore.useReducedMotion;
});
return ((Component) => <Component useReducedMotion={useReducedMotion} item={value.visible ? value : value3} entering={env0_15} exiting={env0_18} renderItem={env0_3.useCallback(_fun105029,
[])} />)(importDefault(8549) /* metro dependency 8549: AnimatedEnterExitItem */);
}
function SettingsAppearanceChannelListPreviewNitroUpsellComponentL() { // fn#105020, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13962:2520, owner: SettingsAppearanceChannelListPreviewNitroUpsellComponent.l, offset: 0x022ab319, size: 123 bytes, params: 1, frame: 17
const theme2 = theme.theme;
let value = environment.__proto__;
const LIGHT = ThemeTypes.LIGHT;
const r4 = theme2 !== LIGHT ? 1 : 0.5;
const object2 = {};
copyDataProperties(object2, StyleSheet.absoluteFillObject, undefined);
value = Reflect.apply((require(4577) /* metro dependency 4577: spring */).withSpring, value, [r4,
(require(4581) /* metro dependency 4581: springPresets */).springStandard]);
object2['opacity'] = value;
return object2;
}
function _fun105021() { // fn#105021, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13962:2888, offset: 0x022ab394, size: 153 bytes, params: 1, frame: 18
const defaultImport = importDefault(dependencyMap[13]);
const pushLazy = defaultImport.pushLazy;
const value2 = require(dependencyMap[15])(dependencyMap[14], dependencyMap.paths);
const PremiumFeatureCardOrder = require(dependencyMap[16]).PremiumFeatureCardOrder;
const TIER_2_LEADING = PremiumFeatureCardOrder.TIER_2_LEADING;
const USER_SETTINGS = AnalyticsPages.USER_SETTINGS;
const SETTINGS_CLIENT_THEMES = AnalyticsSections.SETTINGS_CLIENT_THEMES;
Reflect.apply(pushLazy, defaultImport, [value2, {premiumFeatureCardOrder: TIER_2_LEADING,
analyticsLocation: {page: USER_SETTINGS, section: SETTINGS_CLIENT_THEMES},
analyticsLocations: analyticsLocations}]);
}
function animationEntering(a0) { // fn#105023, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13962:563, offset: 0x022ab493, size: 65 bytes, params: 2, frame: 16
const object2 = {};
let value = environment.__proto__;
value = require(4577) /* metro dependency 4577: spring */;
object2.opacity = value.withSpring(a0, (require(4581) /* metro dependency 4581: springPresets */).springStandard);
return object2;
}
function animationExiting(a0, a1) { // fn#105025, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13962:1372, offset: 0x022ab53a, size: 130 bytes, params: 3, frame: 21
const env0_0 = a1;
const springModule = require(4577) /* metro dependency 4577: spring */;
const withSpring = springModule.withSpring;
const springStandard = (require(4581) /* metro dependency 4581: springPresets */).springStandard;
const closure = function(a0) {
if (require != null) {
require(a0);
}
};
closure.__closure = {cleanUp: a1};
closure.__workletHash = 15025873527064;
closure.__initData = env1_17;
return {opacity: Reflect.apply(withSpring, springModule, [a0, springStandard, 'respect-motion-settings', closure])};
}
function _fun105029(a0, a1) { // fn#105029, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13962:3540, offset: 0x022ab65e, size: 104 bytes, params: 3, frame: 18
const value = environment.__proto__;
const View = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View;
const value2 = null;
return (
<View style={a1} pointerEvents="box-none">
{value2 != a0 ? <SettingsAppearanceChannelListPreviewNitroUpsellComponent {...a0} /> : value2}
</View>
);
}
@@ -0,0 +1,76 @@
/* Metro module 13754; source: modules/user_settings/appearance/native/components/SettingsAppearanceChannelRowItem.tsx; dependencies: [31, 27, 661, 33, 4501, 697, 1305, 9719, 4573, 2] */
function _fun104967(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#104967, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13951:6, offset: 0x022a7d79, size: 705 bytes, params: 8, frame: 25
var object4;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const value = 0;
importAll(dependencyMap[value]);
const env0_2 = (require(27) /* metro dependency 27 */).View;
const env0_3 = (require(661) /* metro dependency 661: Constants */).StatusTypes;
const value2 = require(33) /* metro dependency 33 */;
const env0_4 = value2.jsx;
const env0_5 = value2.jsxs;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object4 = {};
const object5 = {flexDirection: 'row'};
let PX_4 = (importDefault(697) /* metro dependency 697: native */).space.PX_4;
object5.gap = PX_4;
object5.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
let PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object5.paddingVertical = PX_8;
const PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object5.paddingRight = PX_16;
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object5.paddingLeft = PX_8;
object4.channelItemContainer = object5;
object4.channelItemLeft = {'alignItems': 'center', 'justifyContent': 'center'};
const object6 = {'backgroundColor': null, 'height': 8, 'width': 8};
const BACKGROUND_BRAND = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BRAND;
object6.backgroundColor = BACKGROUND_BRAND;
object6.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object6.margin = PX_8;
object4.channelItemUnreadIndicator = object6;
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object4.channelItemAvatar = {'marginRight': null, 'justifyContent': 'center', 'alignItems': 'center',
marginRight: PX_8};
object4.channelItemContent = {'flexDirection': 'column', 'flex': 1, 'justifyContent': 'center'};
PX_4 = (importDefault(697) /* metro dependency 697: native */).space.PX_4;
object4.channelItemTop = {'flexDirection': 'row', 'gap': null, 'justifyContent': 'space-between',
'alignItems': 'center', gap: PX_4};
const env0_6 = Reflect.apply(createStyles, createStylesModule, [object4]);
object4 = {};
const CutoutDirection = (require(1305) /* metro dependency 1305: native */).CutoutDirection;
const BOTTOM_RIGHT = CutoutDirection.BOTTOM_RIGHT;
object4.direction = BOTTOM_RIGHT;
const nativeModule = require(1305) /* metro dependency 1305: native */;
const getStatusSize = nativeModule.getStatusSize;
const AvatarSizes = nativeModule.AvatarSizes;
const LARGE_48 = AvatarSizes.LARGE_48;
object4.radius = (Reflect.apply(getStatusSize, nativeModule, [LARGE_48]) ?? value) / 2 + 4;
const CutoutType = nativeModule.CutoutType;
const CIRCULAR = CutoutType.CIRCULAR;
object4.imageType = CIRCULAR;
object4.inset = -4;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/components/SettingsAppearanceChannelRowItem.tsx');
exports.default = ChannelRowItem;
}
function ChannelRowItem({animatedStyles, title, timestamp, preview, avatar1, avatar2, status = StatusTypes.ONLINE, isUnread}) { // fn#104968, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13951:1199, offset: 0x022a803a, size: 700 bytes, params: 2, frame: 34
isUnread = !(isUnread === undefined) && isUnread;
const styles = useStyles();
const items2 = [<View style={styles.channelItemLeft}><View style={[styles.channelItemUnreadIndicator,
{opacity: isUnread ? 1 : 0}]} /></View>];
items2[1] = <View style={styles.channelItemAvatar}>{avatar2 != null ? ((FacepileGroupDMAvatar) => <FacepileGroupDMAvatar sources={[avatar1,
avatar2]} size={(require(1305) /* metro dependency 1305: native */).AvatarSizes.LARGE_48} />)((require(9719) /* metro dependency 9719: GroupDMAvatar */).FacepileGroupDMAvatar) : ((Avatar) => <Avatar status={status} source={avatar1} cutout={env0_7} size={(require(1305) /* metro dependency 1305: native */).AvatarSizes.LARGE_48} />)((require(1305) /* metro dependency 1305: native */).Avatar)}</View>;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
items2[2] = <View style={styles.channelItemContent}><View style={styles.channelItemTop}><Text animated style={isUnread ? animatedStyles.textNormal : animatedStyles.textMuted} variant="redesign/channel-title/semibold">{title}</Text><Text animated style={animatedStyles.textMuted} variant="text-xs/medium">{timestamp}</Text></View>{preview != null ? <Text animated style={isUnread ? animatedStyles.textNormal : animatedStyles.textMuted} variant="redesign/message-preview/medium" lineClamp={1}>{preview}</Text> : null}</View>;
return (
<View style={styles.channelItemContainer}>
{items2}
</View>
);
}
@@ -0,0 +1,151 @@
/* Metro module 13762; source: modules/user_settings/appearance/native/components/SettingsAppearanceGradientBackground.tsx; dependencies: [31, 27, 13735, 33, 4017, 4589, 13763, 4504, 4507, 697, 1357, 13764, 2] */
function _fun104987(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#104987, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13959:6, offset: 0x022a98e3, size: 350 bytes, params: 8, frame: 22
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = 0;
const moduleValue = importAll(dependencyMap[value]);
const env0_4 = (require(27) /* metro dependency 27 */).StyleSheet;
const settingsAppearanceConstants = importDefault(13735) /* metro dependency 13735: SettingsAppearanceConstants */;
const env0_6 = (require(33) /* metro dependency 33 */).jsx;
const r8 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).processColor('rgba(0, 0, 0, 0)') ?? value;
value = importDefault(4017) /* metro dependency 4017: ReanimatedRexport */;
const createAnimatedComponent = value.createAnimatedComponent;
const LinearGradientNativeComponent = (require(4589) /* metro dependency 4589 */).LinearGradientNativeComponent;
const env0_7 = Reflect.apply(createAnimatedComponent, value, [LinearGradientNativeComponent]);
object2 = {};
object2.colors = [r8, r8];
object2.locations = [];
object2.startPoint = {'x': 0, 'y': 0};
object2.endPoint = {'x': 0, 'y': 0};
object2 = {code: 'function SettingsAppearanceGradientBackgroundTsx1(){const{gradientSize,animatedLinearGradientLoadingProps,themeState,interpolate,tweener,getGradientStartPoint,processColor,interpolateColor}=this.__closure;const{width:width,height:height}=gradientSize.get();if(width===0||height===0){return animatedLinearGradientLoadingProps;}const{themePrev:{colors:colorsPrev,angle:anglePrev},themeCurrent:{colors:colorsCurrent,angle:angleCurrent}}=themeState.get();const angle=90-interpolate(tweener.get(),[0,1],[anglePrev,angleCurrent]);const originPoint=getGradientStartPoint(angle,width,height);return{colors:colorsPrev.map(function(_,i){var _processColor;return(_processColor=processColor(interpolateColor(tweener.get(),[0,1],[colorsPrev[i].hex,colorsCurrent[i].hex])))!==null&&_processColor!==void 0?_processColor:0;}),locations:colorsPrev.map(function(_,i){return interpolate(tweener.get(),[0,1],[colorsPrev[i].stop/100,colorsCurrent[i].stop/100]);}),startPoint:{x:(width/2+originPoint[0])/width,y:(height/2-originPoint[1])/height},endPoint:{x:(width/2-originPoint[0])/width,y:(height/2+originPoint[1])/height}};}'};
value = moduleValue.memo(SettingsAppearanceGradientBackground);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/components/SettingsAppearanceGradientBackground.tsx');
exports.default = value;
}
function SettingsAppearanceGradientBackground({isDimmed, themes, themeIndex, backgroundToken = importDefault(dependencyMap[9]).colors.BACKGROUND_SURFACE_HIGH}) { // fn#104988, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13959:1495, offset: 0x022a9a41, size: 543 bytes, params: 2, frame: 23
var object2;
const env0_3 = backgroundToken;
const value2 = (importDefault(1357) /* metro dependency 1357: MobileVisualRefreshExperiment */)('SettingsAppearanceGradientBackground');
const binding = env0_3;
let useMemo = binding.useMemo;
const value3 = Reflect.apply(useMemo, binding, [_fun104989, [value2]]);
useMemo = binding.useMemo;
const {themeState, tweener} = useThemeStateTracker(Reflect.apply(useMemo, binding, [_fun104992, [themes, themeIndex,
isDimmed, value3, backgroundToken]]));
const env0_7 = tweener;
const value6 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue({'width': 0,
'height': 0});
const env0_8 = value6;
const value7 = binding.useCallback(_fun104993, [value6]);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedProps = reanimatedRexportModule.useAnimatedProps;
const closure = SettingsAppearanceGradientBackgroundP;
object2 = {gradientSize: value6};
object2.animatedLinearGradientLoadingProps = env0_8;
object2.themeState = themeState;
object2.interpolate = reanimatedRexportModule.interpolate;
object2.tweener = tweener;
object2.getGradientStartPoint = importDefault(13764) /* metro dependency 13764: getGradientStartPont */;
object2.processColor = reanimatedRexportModule.processColor;
object2.interpolateColor = reanimatedRexportModule.interpolateColor;
closure.__closure = object2;
closure.__workletHash = 5151435414824;
closure.__initData = env0_9;
return ((Component) => <Component style={StyleSheet.absoluteFill} onLayout={value7} {...env0_8} {...{['animatedProps']: Reflect.apply(useAnimatedProps,
reanimatedRexportModule, [closure])}} />)(env0_7);
}
function _fun104989() { // fn#104989, offset: 0x022a9c60, size: 26 bytes, params: 1, frame: 2
return env0_4 ? ['mobile-visual-refresh'] : [];
}
function useThemeStateTracker(a0) { // fn#104990, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13959:1749, owner: SettingsAppearanceGradientBackground.useThemeStateTracker, offset: 0x022a9c7a, size: 190 bytes, params: 2, frame: 21
let value = a0;
const value3 = (require(13763) /* metro dependency 13763: SettingsAppearancePickerUtils */).useLaunchWelcomeSystemTheme();
const r7 = value.theme !== 'system' ? value : value3;
const useSharedValue = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue;
value = Reflect.apply(useSharedValue, value, [{themePrev: r7, themeCurrent: r7}]);
const value4 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(0);
env1_3.useEffect(_fun104991, [r7, value, value4, value3]);
return {themeState: value, tweener: value4};
}
function _fun104992() { // fn#104992, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13959:2125, offset: 0x022a9dc5, size: 110 bytes, params: 1, frame: 20
const value = environment.__proto__;
const value2 = undefined;
const settingsAppearancePickerUtilsModule = require(13763) /* metro dependency 13763: SettingsAppearancePickerUtils */;
const convertThemesToAnimatedThemes = settingsAppearancePickerUtilsModule.convertThemesToAnimatedThemes;
const themesBinding = themes;
const BACKGROUND_GRADIENT_DARK_OPACITY = isDimmed ? SettingsAppearanceConstants.BACKGROUND_GRADIENT_DARK_OPACITY : value2;
const BACKGROUND_GRADIENT_LIGHT_OPACITY = isDimmed ? SettingsAppearanceConstants.BACKGROUND_GRADIENT_LIGHT_OPACITY : value2;
return Reflect.apply(convertThemesToAnimatedThemes, settingsAppearancePickerUtilsModule, [themesBinding,
BACKGROUND_GRADIENT_DARK_OPACITY, BACKGROUND_GRADIENT_LIGHT_OPACITY, env0_5, env0_3])[themeIndex];
}
function _fun104993({nativeEvent}) { // fn#104993, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13959:2370, offset: 0x022a9e33, size: 62 bytes, params: 2, frame: 13
env0_8.set({width: nativeEvent.layout.width, height: nativeEvent.layout.height});
}
function SettingsAppearanceGradientBackgroundP() { // fn#104994, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13959:2481, owner: SettingsAppearanceGradientBackground.P, offset: 0x022a9e71, size: 358 bytes, params: 1, frame: 24
var object2;
var environment;
var value;
const {width, height} = env0_8.get();
if (width === 0) {
value = environment.__proto__;
return env1_8;
}
if (height === 0) {
value = environment.__proto__;
return env1_8;
}
const value3 = themeState.get();
const {colors, angle} = value3.themePrev;
const themeCurrent = value3.themeCurrent;
const env0_1 = themeCurrent.colors;
const angle2 = themeCurrent.angle;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const interpolate = reanimatedRexportModule.interpolate;
value = tweener.get();
value = Reflect.apply(interpolate, reanimatedRexportModule, [value, [0, 1], [angle, angle2]]);
value = 90 - value;
value = (importDefault(13764) /* metro dependency 13764: getGradientStartPont */)(value, width, height);
object2 = {colors: colors.map(_fun104995), locations: colors.map(_fun104996)};
object2.startPoint = {x: (width / 2 + value[0]) / width, y: (height / 2 - value[1]) / height};
object2.endPoint = {x: (width / 2 - value[0]) / width, y: (height / 2 + value[1]) / height};
return object2;
}
function _fun104991() { // fn#104991, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13959:1954, offset: 0x022a9d38, size: 141 bytes, params: 1, frame: 17
let binding = env0_1;
let set = binding.set;
const binding2 = env0_1;
const get = binding2.get;
Reflect.apply(set, binding, [{themePrev: Reflect.apply(get, binding2, []).themeCurrent, themeCurrent: env0_0}]);
env0_2.set(0);
binding = env0_2;
set = binding.set;
let value = environment.__proto__.__proto__;
value = require(4504) /* metro dependency 4504: timing */;
Reflect.apply(set, binding, [value.withTiming(1,
(require(4507) /* metro dependency 4507: timingPresets */).timingStandard)]);
}
function _fun104995(a0, a1) { // fn#104995, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13959:2725, offset: 0x022a9fd7, size: 146 bytes, params: 3, frame: 19
let value = environment.__proto__.__proto__;
const processColor = (require(4017) /* metro dependency 4017: ReanimatedRexport */).processColor;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value = Reflect.apply(processColor, value, [reanimatedRexportModule.interpolateColor(tweener.get(), [0, 1],
[colors[a1].hex, colors[a1].hex])]);
return value ?? 0;
}
function _fun104996(a0, a1) { // fn#104996, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13959:2862, offset: 0x022aa069, size: 123 bytes, params: 3, frame: 18
let value = environment.__proto__.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
return value.interpolate(tweener.get(), [0, 1], [colors[a1].stop / 100, colors[a1].stop / 100]);
}
@@ -0,0 +1,40 @@
/* Metro module 13755; source: modules/user_settings/appearance/native/components/SettingsAppearanceMessagesHeaderItem.tsx; dependencies: [31, 27, 33, 4501, 697, 4573, 1244, 2] */
function _fun104969(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#104969, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13952:6, offset: 0x022a82f6, size: 256 bytes, params: 8, frame: 22
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
importAll(31) /* metro dependency 31 */;
const env0_2 = (require(27) /* metro dependency 27 */).View;
const env0_3 = (require(33) /* metro dependency 33 */).jsx;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
const object = {'flexDirection': 'row', 'gap': null, 'alignItems': 'center'};
const PX_12 = (importDefault(697) /* metro dependency 697: native */).space.PX_12;
object.gap = PX_12;
const PX_24 = (importDefault(697) /* metro dependency 697: native */).space.PX_24;
object.marginHorizontal = PX_24;
const env0_4 = Reflect.apply(createStyles, createStylesModule, [{messagesHeaderContainer: object}]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/components/SettingsAppearanceMessagesHeaderItem.tsx');
exports.default = MessagesHeaderItem;
}
function MessagesHeaderItem({animatedStyles}) { // fn#104970, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13952:421, offset: 0x022a83f6, size: 162 bytes, params: 2, frame: 20
const styles = useStyles();
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const textNormal = animatedStyles.textNormal;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const OIgYlQ = (require(1244) /* metro dependency 1244: indexNative */).t.OIgYlQ;
return (
<View style={styles.messagesHeaderContainer}>
<Text
animated
style={textNormal}
variant="text-lg/bold"
>
{Reflect.apply(string, intl, [OIgYlQ])}
</Text>
</View>
);
}
@@ -0,0 +1,262 @@
/* Metro module 13734; source: modules/user_settings/appearance/native/components/SettingsAppearanceThemeCarousel.tsx; dependencies: [31, 27, 13735, 33, 4017, 1305, 4501, 697, 4559, 22, 13736, 4504, 4507, 3966, 7938, 4573, 1581, 10397, 4081, 1244, 13739, 2] */
function _fun104922(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#104922, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13931:6, offset: 0x022a5328, size: 718 bytes, params: 8, frame: 27
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
let value = require(27) /* metro dependency 27 */;
const env0_4 = value.View;
const env0_5 = value.ScrollView;
value = importDefault(13735) /* metro dependency 13735: SettingsAppearanceConstants */;
const value2 = require(33) /* metro dependency 33 */;
const env0_7 = value2.jsx;
const env0_8 = value2.jsxs;
const env0_9 = value2.Fragment;
const reanimatedRexport = importDefault(4017) /* metro dependency 4017: ReanimatedRexport */;
const createAnimatedComponent = reanimatedRexport.createAnimatedComponent;
const Icon = (require(1305) /* metro dependency 1305: native */).Icon;
const env0_10 = Reflect.apply(createAnimatedComponent, reanimatedRexport, [Icon]);
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {};
let PX_24 = (importDefault(697) /* metro dependency 697: native */).space.PX_24;
object2.container = {gap: PX_24, alignItems: 'center'};
object2.textCentered = {textAlign: 'center'};
let PX_4 = (importDefault(697) /* metro dependency 697: native */).space.PX_4;
object2.titleContainer = {'minHeight': 20, 'marginTop': null, 'flexDirection': 'row', 'justifyContent': 'center',
'alignItems': 'center', marginTop: PX_4};
PX_24 = (importDefault(697) /* metro dependency 697: native */).space.PX_24;
object2.floatingNuxContainer = {position: 'absolute', left: PX_24};
const object3 = {'borderRadius': null, 'flexDirection': 'row', 'alignItems': 'center'};
object3.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.lg;
PX_4 = (importDefault(697) /* metro dependency 697: native */).space.PX_4;
object3.padding = PX_4;
const PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object3.paddingRight = PX_8;
const SHADOW_LOW = (importDefault(697) /* metro dependency 697: native */).shadows.SHADOW_LOW;
copyDataProperties(object3, SHADOW_LOW, undefined);
object3['shadowColor'] = '#000000';
object2.floatingNux = object3;
object2.arrowLeft = {transform: [{rotate: '90deg'}]};
const object4 = {'position': 'absolute', 'alignSelf': 'center'};
const THEME_ITEM_WIDTH = value.THEME_ITEM_WIDTH;
object4.width = THEME_ITEM_WIDTH;
const THEME_ITEM_HEIGHT = value.THEME_ITEM_HEIGHT;
object4.height = THEME_ITEM_HEIGHT;
object4.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.md;
const MOBILE_LEGACY_BUTTON_SECONDARY_BORDER_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.MOBILE_LEGACY_BUTTON_SECONDARY_BORDER_DEFAULT;
object4.borderColor = MOBILE_LEGACY_BUTTON_SECONDARY_BORDER_DEFAULT;
object4.borderWidth = 2;
object2.selectionBorder = object4;
object2.a11yThemeList = {flexDirection: 'row'};
object2.a11yThemeListScroll = {flexGrow: 0};
const env0_11 = Reflect.apply(createStyles, createStylesModule, [object2]);
object2 = {code: "function SettingsAppearanceThemeCarouselTsx1(){const{withTiming,isMidnightNuxVisible,timingStandard}=this.__closure;return{opacity:withTiming(isMidnightNuxVisible.get()?1:0,timingStandard),pointerEvents:isMidnightNuxVisible.get()?'auto':'none'};}"};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/components/SettingsAppearanceThemeCarousel.tsx');
exports.default = SettingsAppearanceThemeCarousel;
}
function SettingsAppearanceThemeCarousel({themes, currentThemeIndex, isPreview, defaultIndex, deviceWidth, isSynced, animatedStyles, hasMidnightNux, onThemeSelected}) { // fn#104923, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13931:1465, offset: 0x022a55f6, size: 1667 bytes, params: 2, frame: 44
var r19;
var jsxRuntimeEnv0_9Binding2;
var items3;
var defaultImport;
var object;
var THEME_ITEM_HORIZONTAL_MARGIN;
var THEME_ITEM_WIDTH;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const env0_3 = deviceWidth;
const styles = useStyles();
const value2 = (require(4559) /* metro dependency 4559: useIsScreenReaderEnabledNative */).useIsScreenReaderEnabled();
let binding = env0_3;
const value4 = binding.useRef(null);
const env0_7 = binding.useRef(defaultIndex);
const env0_8 = binding.useMemo(_fun104926, [themes]);
const value5 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(false);
const value6 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(false);
const env0_10 = value6;
binding.useEffect(function() {
var env0_0 = global.setTimeout(_fun104929, 5500);
return _fun104930;
}, [value5, value6]);
const env0_11 = binding.useMemo(_fun104931, [onThemeSelected]);
const value7 = binding.useCallback(_fun104932, [isPreview, onThemeSelected, currentThemeIndex]);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
const closure = SettingsAppearanceThemeCarouselL;
closure.__closure = {withTiming: (require(4504) /* metro dependency 4504: timing */).withTiming,
isMidnightNuxVisible: value5,
timingStandard: (require(4507) /* metro dependency 4507: timingPresets */).timingStandard};
closure.__workletHash = 3854555745742;
closure.__initData = env0_12;
const value8 = Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
const jsxRuntimeEnv0_9Binding = jsxRuntimeEnv0_9;
const type = themes[currentThemeIndex].type;
const ClientThemeType = (require(3966) /* metro dependency 3966: ClientThemesTypes */).ClientThemeType;
const STANDARD_BACKGROUND_THEME = ClientThemeType.STANDARD_BACKGROUND_THEME;
const r8 = type === STANDARD_BACKGROUND_THEME ? null : ((Component) => <Component source={importDefault(7938) /* metro dependency 7938 */} style={animatedStyles.iconHeaderSecondary} size={(require(1305) /* metro dependency 1305: native */).IconSizes.SMALL_20} />)(env0_10);
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const items2 = [<View style={styles.titleContainer}>{r8}<Text animated style={animatedStyles.headerSecondary} variant="heading-sm/semibold">{themes[currentThemeIndex].getName()}</Text></View>];
if (value2) {
r19 = <ScrollView horizontal style={styles.a11yThemeListScroll} contentContainerStyle={styles.a11yThemeList}>{themes.map(_fun104935)}</ScrollView>;
} else if ((require(1581) /* metro dependency 1581: MetaQuestUtilsAndroid */).isThumbstickScrollDevice) {
r19 = <ScrollView horizontal style={styles.a11yThemeListScroll} contentContainerStyle={styles.a11yThemeList}>{themes.map(_fun104935)}</ScrollView>;
} else {
jsxRuntimeEnv0_9Binding2 = jsxRuntimeEnv0_9;
items3 = [<View pointerEvents="none" style={styles.selectionBorder} />];
defaultImport = importDefault(10397) /* metro dependency 10397 */;
object = {ref: value4, data: themes, renderItem: value7};
THEME_ITEM_HORIZONTAL_MARGIN = SettingsAppearanceConstants.THEME_ITEM_HORIZONTAL_MARGIN;
object.style = {'width': null, 'justifyContent': 'center', 'alignItems': 'center', width: deviceWidth,
marginLeft: THEME_ITEM_HORIZONTAL_MARGIN};
THEME_ITEM_WIDTH = SettingsAppearanceConstants.THEME_ITEM_WIDTH;
THEME_ITEM_HORIZONTAL_MARGIN = SettingsAppearanceConstants.THEME_ITEM_HORIZONTAL_MARGIN;
object.width = THEME_ITEM_WIDTH + THEME_ITEM_HORIZONTAL_MARGIN;
object.height = SettingsAppearanceConstants.THEME_ITEM_HEIGHT;
object.loop = false;
object.pagingEnabled = true;
object.defaultIndex = defaultIndex;
object.onSnapToItem = onThemeSelected;
object.scrollAnimationDuration = 200;
object.onProgressChange = onProgressChange;
items3[1] = ((Component) => <Component {...object} />)(defaultImport);
r19 = <>{items3}</>;
}
items2[1] = <View>{r19}</View>;
items2[2] = <Text animated style={[animatedStyles.headerSecondary,
styles.textCentered]} variant="text-sm/medium">{isPreview && themes[currentThemeIndex].type !== (require(3966) /* metro dependency 3966: ClientThemesTypes */).ClientThemeType.STANDARD_BACKGROUND_THEME ? intl.string((require(1244) /* metro dependency 1244: indexNative */).t.VqGKm0) : isSynced ? intl.string(t.lhV0Y2) : intl.string(t.d5Gu9A)}</Text>;
const fragment = <>{items2}</>;
const View2 = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View;
const items5 = [styles.floatingNux, value8];
items5[2] = animatedStyles.bgSurfaceOverlay;
items5[3] = animatedStyles.borderFaint;
binding = env0_10;
const bindingProps = {style: [styles.arrowLeft, animatedStyles.iconInteractive],
source: importDefault(13739) /* metro dependency 13739 */};
const IconSizes = (require(1305) /* metro dependency 1305: native */).IconSizes;
const REFRESH_SMALL_16 = IconSizes.REFRESH_SMALL_16;
bindingProps.size = REFRESH_SMALL_16;
let value = ((Component) => <Component {...bindingProps} />)(binding);
value = <View style={styles.floatingNuxContainer}><View2 style={items5}>{value}<Text animated style={animatedStyles.textNormal} variant="eyebrow" maxFontSizeMultiplier={1.5}>{intl.string((require(1244) /* metro dependency 1244: indexNative */).t.y2b7CA)}</Text></View2></View>;
return (
<View style={styles.container}>
{value}
{fragment}
</View>
);
}
function renderA11yThemeItem({item, index}) { // fn#104924, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13931:2019, owner: SettingsAppearanceThemeCarousel.renderA11yThemeItem, offset: 0x022a5c79, size: 99 bytes, params: 2, frame: 17
var environment;
const value = environment.__proto__;
return ((Component) => <Component themePreset={item} isPreview={isPreview} isSelected={index === currentThemeIndex} onPress={function() {
return onThemeSelected(index);
}} />)(importDefault(13736) /* metro dependency 13736: SettingsAppearanceThemeSelectorItem */);
}
function _fun104926() { // fn#104926, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13931:1733, offset: 0x022a5cdc, size: 41 bytes, params: 1, frame: 11
const index = themes.findIndex(function(a0) {
return a0.theme === 'midnight';
});
const value2 = 0;
return index >= value2 ? index : value2;
}
function _fun104928() { // fn#104928, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13931:1877, offset: 0x022a5d18, size: 44 bytes, params: 1, frame: 14
const env0_0 = global.setTimeout(_fun104929, 5500);
return _fun104930;
}
function _fun104931() { // fn#104931, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13931:1985, offset: 0x022a5d6b, size: 49 bytes, params: 1, frame: 13
let value = environment.__proto__;
value = importDefault(22) /* metro dependency 22 */;
return value.debounce(onThemeSelected, 180);
}
function _fun104932({item, index}) { // fn#104932, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13931:2170, offset: 0x022a5d9c, size: 106 bytes, params: 2, frame: 17
var environment;
const value = environment.__proto__;
return ((Component) => <Component themePreset={item} isPreview={isPreview} isSelected={index === currentThemeIndex} onPress={onPress_104933} isNew={false} />)(importDefault(13736) /* metro dependency 13736: SettingsAppearanceThemeSelectorItem */);
}
function SettingsAppearanceThemeCarouselL() { // fn#104934, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13931:2542, owner: SettingsAppearanceThemeCarousel.L, offset: 0x022a5ecc, size: 123 bytes, params: 1, frame: 18
const object2 = {};
const value = environment.__proto__;
const timingModule = require(4504) /* metro dependency 4504: timing */;
object2.opacity = timingModule.withTiming(env0_9.get() ? 1 : 0,
(require(4507) /* metro dependency 4507: timingPresets */).timingStandard);
object2.pointerEvents = env0_9.get() ? 'auto' : 'none';
return object2;
}
function _fun104935(a0, a1) { // fn#104935, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13931:3288, offset: 0x022a5f47, size: 80 bytes, params: 3, frame: 17
return (
<View key={'theme-' + a1}>
{renderA11yThemeItem({item: a0, index: a1})}
</View>
);
}
function onProgressChange(a0, a1) { // fn#104936, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13931:3756, owner: SettingsAppearanceThemeCarousel.onProgressChange, offset: 0x022a5f97, size: 249 bytes, params: 3, frame: 18
var value3;
var moduleValue;
var binding;
let Math = global.Math;
let value = Math.round(a1);
if (value !== env0_7.current) {
value3 = environment.__proto__;
moduleValue = require(4081) /* metro dependency 4081: HapticUtilsNative */;
moduleValue.triggerHapticFeedback((require(4081) /* metro dependency 4081: HapticUtilsNative */).HapticFeedbackTypes.IMPACT_LIGHT);
env0_7.current = value;
env0_11(value);
}
if (hasMidnightNux) {
value = environment.__proto__;
value = SettingsAppearanceConstants.THEME_ITEM_WIDTH + SettingsAppearanceConstants.THEME_ITEM_HORIZONTAL_MARGIN;
Math = global.Math;
value = Math.ceil(deviceWidth / value);
binding = env0_8;
value = a1 < binding + value / 2;
if (value) {
env0_10.set(true);
}
binding = env0_9;
binding.set(!env0_10.get() && !value);
}
}
function _fun104929() { // fn#104929, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13931:1900, offset: 0x022a5d44, size: 39 bytes, params: 1, frame: 12
env1_9.set(false);
env1_10.set(true);
}
function onPress_104933() { // fn#104933, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13931:2253, offset: 0x022a5e06, size: 198 bytes, params: 1, frame: 15
let current = env1_6.current;
if (current != null) {
current = env1_6.current;
var currentIndex = current.getCurrentIndex();
if (currentIndex === index) {
return onThemeSelected(index);
}
if (currentIndex === index) {
current = env1_6.current;
if (current != null) {
current.scrollTo({index: index, animated: true});
}
return undefined;
}
if (currentIndex === 0) {
current = env1_6.current;
return current.next({count: index});
}
current = env1_6.current;
current.scrollTo({index: index, animated: true});
current = env1_6.current;
if (current != null) {
current.scrollTo({index: index, animated: true});
}
}
}
@@ -0,0 +1,171 @@
/* Metro module 13736; source: modules/user_settings/appearance/native/components/SettingsAppearanceThemeSelectorItem.tsx; dependencies: [31, 27, 1310, 13735, 482, 33, 4501, 697, 4001, 3866, 7704, 1305, 13737, 632, 3860, 13738, 3966, 3874, 5278, 1244, 2] */
function _fun104938(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#104938, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13933:6, offset: 0x022a60ec, size: 589 bytes, params: 8, frame: 26
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
importAll(31) /* metro dependency 31 */;
const env0_3 = (require(27) /* metro dependency 27 */).View;
const themeStore = importDefault(1310) /* metro dependency 1310: ThemeStore */;
let value = importDefault(13735) /* metro dependency 13735: SettingsAppearanceConstants */;
const env0_5 = (require(482) /* metro dependency 482: Constants */).ThemeTypes;
const value2 = require(33) /* metro dependency 33 */;
const env0_6 = value2.jsx;
const env0_7 = value2.jsxs;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {};
const TRANSPARENT = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.TRANSPARENT;
object2.rippleColor = {color: TRANSPARENT};
const THEME_ITEM_WIDTH = value.THEME_ITEM_WIDTH;
const THEME_ITEM_HEIGHT = value.THEME_ITEM_HEIGHT;
object2.themeSelectorItemContainer = {width: THEME_ITEM_WIDTH, height: THEME_ITEM_HEIGHT};
const object3 = {};
object3.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
const THEME_ITEM_PADDING = value.THEME_ITEM_PADDING;
object3.padding = THEME_ITEM_PADDING;
object2.themeSelectorItem = object3;
const object6 = {'backgroundColor': null, 'width': 12, 'height': 12, 'borderRadius': null, 'position': 'absolute',
'top': 0, 'right': 0};
const RED_430 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.RED_430;
object6.backgroundColor = RED_430;
object6.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
object2.newRedCircle = object6;
const env0_8 = Reflect.apply(createStyles, createStylesModule, [object2]);
const env0_9 = createStylesModule.createStyles(_fun104939);
value = importDefault(4001) /* metro dependency 4001: Color */;
value = new value(0, 0, 0, 0.2);
value = importDefault(4001) /* metro dependency 4001: Color */;
value = new value(255, 255, 255, 0.5);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/components/SettingsAppearanceThemeSelectorItem.tsx');
exports.default = ThemeSelectorItem;
}
function _fun104939(a0) { // fn#104939, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13933:601, offset: 0x022a6339, size: 159 bytes, params: 2, frame: 20
const internal = (importDefault(697) /* metro dependency 697: native */).internal;
const resolveSemanticColor = internal.resolveSemanticColor;
return {themeSelectorGradientBackground: {'justifyContent': 'center', 'width': '100%', 'height': '100%'},
lock: {'position': 'absolute', 'alignSelf': 'center', 'opacity': 0.6,
tintColor: a0 ? Reflect.apply(resolveSemanticColor, internal, [ThemeTypes.DARKER,
(importDefault(697) /* metro dependency 697: native */).colors.INTERACTIVE_TEXT_DEFAULT]) : Reflect.apply(resolveSemanticColor,
internal, [ThemeTypes.LIGHT,
(importDefault(697) /* metro dependency 697: native */).colors.INTERACTIVE_TEXT_DEFAULT])}};
}
function GradientThemeBackground({item, isThemeLocked}) { // fn#104940, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13933:1019, offset: 0x022a63d8, size: 312 bytes, params: 2, frame: 25
const themesModule = require(3866) /* metro dependency 3866: themes */;
const isThemeDark2 = themesModule.isThemeDark(item.theme);
const styles = useStyles(isThemeDark2);
const items2 = [styles.themeSelectorGradientBackground];
items2[1] = isThemeLocked && ({opacity: 0.5});
const ThemedGradient = importDefault(7704) /* metro dependency 7704: ThemedGradient */;
const object = {};
object.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
return (
<View style={items2}>
<ThemedGradient
componentStyles={object}
gradientOverride={item}
mix
mixColorOverride={isThemeDark2 ? env0_10 : env0_11}
/>
{isThemeLocked && ((Icon) => <Icon source={importDefault(13737) /* metro dependency 13737 */} style={styles.lock} />)((require(1305) /* metro dependency 1305: native */).Icon)}
</View>
);
}
function DefaultThemeBackground({item}) { // fn#104941, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13933:1359, offset: 0x022a6510, size: 404 bytes, params: 2, frame: 23
var r4;
var value;
const useStateFromStoresModule = require(632) /* metro dependency 632: useStateFromStores */;
const useStateFromStores = useStateFromStoresModule.useStateFromStores;
const r5 = item.theme === 'system' ? ThemeStore.themePreferenceForSystemTheme(Reflect.apply(useStateFromStores,
useStateFromStoresModule, [[ThemeStore], function() {
return ThemeStore.systemTheme;
}])) : item.theme;
const useTokenModule = require(3860) /* metro dependency 3860: useToken */;
let useToken = useTokenModule.useToken;
const BACKGROUND_BASE_LOWER = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOWER;
const value3 = Reflect.apply(useToken, useTokenModule, [BACKGROUND_BASE_LOWER, r5]);
const moduleValue3 = useTokenModule;
useToken = moduleValue3.useToken;
const BORDER_STRONG = (importDefault(697) /* metro dependency 697: native */).colors.BORDER_STRONG;
const value4 = Reflect.apply(useToken, moduleValue3, [BORDER_STRONG, r5]);
const moduleValue4 = useTokenModule;
useToken = moduleValue4.useToken;
const ICON_STRONG = (importDefault(697) /* metro dependency 697: native */).colors.ICON_STRONG;
const value5 = Reflect.apply(useToken, moduleValue4, [ICON_STRONG, r5]);
const object = {'width': '100%', 'height': '100%', 'backgroundColor': null, 'borderColor': null, 'borderWidth': 1};
object.backgroundColor = value3;
object.borderColor = value4;
object.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
if (item.theme !== 'system') {
r4 = null;
} else {
value = importDefault(13738) /* metro dependency 13738: SynchronizeIconNative */;
value = <View style={{'alignSelf': 'center', 'justifyContent': 'center',
'flex': 1}}>{((Component) => <Component fill={value5} />)(value)}</View>;
r4 = value;
}
return (
<View style={object}>
{r4}
</View>
);
}
function CustomThemeBackground({item, isThemeLocked}) { // fn#104943, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13933:1933, offset: 0x022a66b3, size: 322 bytes, params: 2, frame: 25
const themesModule = require(3866) /* metro dependency 3866: themes */;
const isThemeDark2 = themesModule.isThemeDark(item.theme);
const styles = useStyles(isThemeDark2);
const items2 = [styles.themeSelectorGradientBackground];
items2[1] = isThemeLocked && ({opacity: 0.5});
const CustomThemedGradient = (require(7704) /* metro dependency 7704: ThemedGradient */).CustomThemedGradient;
const object = {};
object.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
return (
<View style={items2}>
<CustomThemedGradient
componentStyles={object}
mix
mixColorOverride={isThemeDark2 ? env0_10 : env0_11}
customTheme={item}
/>
{isThemeLocked && ((Icon) => <Icon source={importDefault(13737) /* metro dependency 13737 */} style={styles.lock} />)((require(1305) /* metro dependency 1305: native */).Icon)}
</View>
);
}
function ThemeSelectorItem({themePreset, isPreview, isSelected, onPress, isNew}) { // fn#104944, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13933:2401, offset: 0x022a67f5, size: 521 bytes, params: 2, frame: 24
var r4;
var intl;
const styles = useStyles();
const r5 = isPreview && themePreset.type !== (require(3966) /* metro dependency 3966: ClientThemesTypes */).ClientThemeType.STANDARD_BACKGROUND_THEME;
const type = themePreset.type;
const ClientThemeType = (require(3966) /* metro dependency 3966: ClientThemesTypes */).ClientThemeType;
const STANDARD_BACKGROUND_THEME = ClientThemeType.STANDARD_BACKGROUND_THEME;
const r11 = type === STANDARD_BACKGROUND_THEME ? <DefaultThemeBackground item={themePreset} /> : themePreset.type === (require(3966) /* metro dependency 3966: ClientThemesTypes */).ClientThemeType.CUSTOM_BACKGROUND_GRADIENT ? <CustomThemeBackground item={themePreset} isThemeLocked={r5} /> : <GradientThemeBackground isThemeLocked={r5} item={themePreset} />;
const {accessibilityRole,
accessibilityState} = (require(3874) /* metro dependency 3874: useA11yRolesNative */).useRadioA11yNative({selected: isSelected,
disabled: r5});
const PressableOpacity = (require(5278) /* metro dependency 5278: Pressables */).PressableOpacity;
const object2 = {style: styles.themeSelectorItemContainer, androidRippleConfig: styles.rippleColor,
onPress: onPress, accessibilityRole: accessibilityRole, accessibilityLabel: themePreset.getName(),
accessibilityState: accessibilityState};
if (r5) {
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
r4 = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.VqGKm0);
} else {
r4 = undefined;
}
object2.accessibilityHint = r4;
return (
<PressableOpacity {...object2}>
<View style={styles.themeSelectorItem}>
{r11}
{isNew && !isSelected && <View style={styles.newRedCircle} />}
</View>
</PressableOpacity>
);
}
@@ -0,0 +1,74 @@
/* Metro module 13764; source: modules/user_settings/appearance/native/hooks/getGradientStartPont.tsx; dependencies: [2] */
function _fun105012(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#105012, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13961:6, offset: 0x022aabd4, size: 205 bytes, params: 8, frame: 17
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
object = {code: 'function getHorizontalOrVerticalStartPoint_getGradientStartPontTsx1(angle,width,height){switch(angle){case 0:return[-width/2,0];case 90:return[0,-height/2];case 180:return[width/2,0];default:return[0,height/2];}}'};
const value = _fun105013();
object = {code: 'function getStartCornerToIntersect_getGradientStartPontTsx2(angle,width,height){const w=width/2;const h=height/2;if(angle<90){return[-w,-h];}else if(angle<180){return[w,-h];}else if(angle<270){return[w,h];}else{return[-w,h];}}'};
const value2 = _fun105015();
const closure = t_105017;
closure.__closure = {getHorizontalOrVerticalStartPoint: value, getStartCornerToIntersect: value2};
closure.__workletHash = 11244204401624;
closure.__initData = {code: 'function getGradientStartPoint_getGradientStartPontTsx3(angle,width,height){const{getHorizontalOrVerticalStartPoint,getStartCornerToIntersect}=this.__closure;angle=angle%360;if(angle<0){angle+=360;}if(angle%90===0){return getHorizontalOrVerticalStartPoint(angle,width,height);}const slope=Math.tan(angle*Math.PI/180);const perpendicularSlope=-1/slope;const startCorner=getStartCornerToIntersect(angle,width,height);const b=startCorner[1]-perpendicularSlope*startCorner[0];const startX=b/(slope-perpendicularSlope);const startY=slope*startX;return[startX,startY];}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_settings/appearance/native/hooks/getGradientStartPont.tsx');
exports.default = closure;
}
function _fun105013() { // fn#105013, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13961:324, offset: 0x022aaca1, size: 48 bytes, params: 1, frame: 2
const closure = function(a0, a1, a2) {
var value;
if (a0 === 0) {
return [-a1 / 2, 0];
}
if (a0 === 90) {
value = -a2 / 2;
} else {
if (a0 === 180) {
return [a1 / 2, 0];
}
value = a2 / 2;
}
return [0, value];
};
closure.__closure = {};
closure.__workletHash = 16439230263550;
closure.__initData = env0_0;
return closure;
}
function _fun105015() { // fn#105015, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13961:931, offset: 0x022aad4c, size: 48 bytes, params: 1, frame: 2
const closure = function(a0, a1, a2) {
var value = a1 / 2;
var value2 = a2 / 2;
return a0 < 90 ? [-value, -value2] : a0 < 180 ? [value, -value2] : a0 < 270 ? [value, value2] : [-value,
value2];
};
closure.__closure = {};
closure.__workletHash = 2348332324573;
closure.__initData = env0_2;
return closure;
}
function t_105017(a0, a1, a2) { // fn#105017, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13961:1806, offset: 0x022aadf5, size: 174 bytes, params: 4, frame: 18
var r2;
let value = a0 % 360;
if (value < 0) {
value += 360;
r2 = value;
} else {
r2 = value;
}
if (r2 % 90 === 0) {
return env0_1(r2, a1, a2);
}
const Math = global.Math;
const tan = Math.tan;
const Math2 = global.Math;
const PI = Math2.PI;
value = Reflect.apply(tan, Math, [r2 * PI / 180]);
const value2 = -1 / value;
const value4 = env0_3(r2, a1, a2);
const value6 = (value4[1] - value2 * value4[0]) / (value - value2);
return [value6, value * value6];
}