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,67 @@
/* Metro module 11795; source: modules/voice_panel/VoicePanelConstants.tsx; dependencies: [477, 2] */
function _fun90330(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#90330, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11981:6, offset: 0x02034d13, size: 630 bytes, params: 8, frame: 29
let Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const object = {'mass': 0.5, 'damping': 80, 'stiffness': 200};
const object6 = {};
copyDataProperties(object6, object, undefined);
object6['overshootClamping'] = true;
const object9 = {};
copyDataProperties(object9, object, undefined);
object9['overshootClamping'] = true;
const object10 = {};
copyDataProperties(object10, object, undefined);
object10['mass'] = 0.3;
const object11 = {NO_VIDEO_PARTICIPANTS: 'no_video_participants', CALLER_DISCONNECTED: 'caller_disconnected'};
const object12 = {};
const NO_VIDEO_PARTICIPANTS = object11.NO_VIDEO_PARTICIPANTS;
object12[NO_VIDEO_PARTICIPANTS] = {'width': 2, 'height': 1};
const Set = global.Set;
Object = global.Object;
const set = new Set(Object.keys(object12));
const isAndroid2 = (require(477) /* metro dependency 477: PlatformUtils */).isAndroid();
const isIOS2 = (require(477) /* metro dependency 477: PlatformUtils */).isIOS();
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/VoicePanelConstants.tsx');
exports.VoicePanelModes = {DISMISSED: 'dismissed', PIP: 'pip', PANEL: 'panel'};
exports.getAnalyticsNameForVoicePanelMode = getAnalyticsNameForVoicePanelMode;
exports.VOICE_PANEL_CHUNK_DIVISOR = 3;
exports.DEFAULT_BORDER_RADIUS = 24;
exports.DEFAULT_BORDER_RADIUS_PIP = 24;
exports.DRAWER_SPRING_PHYSICS = {'mass': 0.2, 'damping': 10, 'stiffness': 200};
exports.LAYOUT_PHYSICS = {'mass': 0.3, 'damping': 25, 'stiffness': 150};
exports.UI_SHOW_HIDE_PHYSICS = {'mass': 0.4, 'damping': 60, 'stiffness': 150};
exports.MODE_CHANGE_PHYSICS = object;
exports.MODE_CHANGE_PHYSICS_CLAMPED = object6;
exports.BORDER_RADIUS_PHYSICS = object9;
exports.PANEL_CONTROLS_HEIGHT_PHYSICS = object10;
exports.SPEAKING_PHYSICS = {'mass': 0.32, 'damping': 10, 'stiffness': 300, 'restDisplacementThreshold': 0.001,
'restSpeedThreshold': 0.001, 'overshootClamping': true};
exports.PUSH_TO_TALK_PIP_PHYSICS = {'damping': 20, 'mass': 0.1, 'stiffness': 100};
exports.DRAWER_SPRING_PHYSICS_GESTURE_ACTIVE = {'mass': 0.1, 'damping': 20, 'stiffness': 500};
exports.GridItemTypes = {USER: 'USER', STREAM: 'STREAM', ACTIVITY: 'ACTIVIY'};
exports.BASE_TARGET_CARD_SIZE = 165;
exports.VoicePanelCTACard = object11;
exports.VoicePanelCTACardDimensions = object12;
exports.VoicePanelCTACardDimensionKeys = set;
exports.VoicePanelCardItemType = {PARTICIPANT: 'participant', CTA: 'cta'};
exports.IS_ANDROID = isAndroid2;
exports.IS_IOS = isIOS2;
exports.SECONDARY_PIP_TOP_MARGIN = 8;
exports.VOICE_PANEL_DRAWER_MAX_WIDTH = 540;
}
function getAnalyticsNameForVoicePanelMode(a0) { // fn#90331, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11981:811, offset: 0x02034f89, size: 70 bytes, params: 2, frame: 3
const DISMISSED = env0_0.DISMISSED;
if (DISMISSED === a0) {
return 'dismissed';
}
const PIP = env0_0.PIP;
if (PIP === a0) {
return 'pip';
}
const PANEL = env0_0.PANEL;
if (PANEL === a0) {
return 'grid';
}
}
@@ -0,0 +1,94 @@
/* Metro module 16137; source: modules/voice_panel/VoicePanelManager.native.tsx; dependencies: [7, 6, 15, 17, 18, 4294, 7710, 4860, 2] */
function _fun124601(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#124601, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16345:6, offset: 0x025bee33, size: 261 bytes, params: 8, frame: 18
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_0 = importDefault(7) /* metro dependency 7 */;
const env0_1 = importDefault(6) /* metro dependency 6 */;
const env0_2 = importDefault(15) /* metro dependency 15 */;
const env0_3 = importDefault(17) /* metro dependency 17 */;
const env0_4 = importDefault(18) /* metro dependency 18 */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const voicePanelStore = importDefault(7710) /* metro dependency 7710: VoicePanelStore */;
let value = importDefault(4860) /* metro dependency 4860: AutomaticLifecycleManager */;
value = _fun124606(value);
value = new value();
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/VoicePanelManager.native.tsx');
exports.default = value;
}
function _isNativeReflectConstruct_124602() { // fn#124602, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16345:168, offset: 0x025bef38, size: 98 bytes, params: 1, frame: 18
var Boolean;
var prototype;
var valueOf;
var call;
var Reflect;
var construct;
var closure;
var value;
var error;
try {
Boolean = global.Boolean;
prototype = Boolean.prototype;
valueOf = prototype.valueOf;
call = valueOf.call;
Reflect = global.Reflect;
construct = Reflect.construct;
Boolean = global.Boolean;
closure = function() {
};
value = Reflect.apply(construct, Reflect, [Boolean, [], closure]);
value = Reflect.apply(call, valueOf, [value]);
var result = !value;
} catch (error) {
}
return (_isNativeReflectConstruct_124602_isNativeReflectConstruct = function() {
return !!result;
})();
}
function checkChannelOpened() { // fn#124605, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16345:361, offset: 0x025bef9a, size: 71 bytes, params: 1, frame: 12
var channels;
var state;
const channelId = RTCConnectionStore.getChannelId();
if (channelId != null) {
state = VoicePanelStore.getState();
channels = state.channels;
if (!channels.has(channelId)) {
state.openChannel(channelId);
}
}
}
function _fun124606(a0) { // fn#124606, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16345:492, offset: 0x025befe1, size: 42 bytes, params: 2, frame: 14
const closure = VoicePanelManager;
env0_4(closure, a0);
return env0_0(closure);
}
function VoicePanelManager(a0) { // fn#124607, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16345:504, offset: 0x025bf00b, size: 160 bytes, params: 2, frame: 20
var r0;
var Reflect;
let value = copyRestArgs(0, undefined);
let binding = env1_1;
binding(this, VoicePanelManager);
const items = [];
arraySpread(items, value, 0, items);
value = env1_3(VoicePanelManager);
binding = env1_2;
if (_isNativeReflectConstruct_124602()) {
Reflect = global.Reflect;
value = Reflect.construct(value, items, env1_3(this).constructor);
r0 = value;
} else {
value = value.apply(this, items);
r0 = value;
}
value = binding(this, r0);
value.actions = {VOICE_CHANNEL_SELECT: function() {
checkChannelOpened();
}, RTC_CONNECTION_STATE: function() {
checkChannelOpened();
}};
return value;
}
@@ -0,0 +1,382 @@
/* Metro module 7710; source: modules/voice_panel/VoicePanelStore.tsx; dependencies: [1379, 685, 7711, 690, 2] */
function _fun61612(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#61612, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:6, offset: 0x01b4667d, size: 135 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
let value = require(685) /* metro dependency 685 */;
value = value.createWithEqualityFn(_fun61613);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/VoicePanelStore.tsx');
exports.default = value;
}
function _fun61613(a0, a1) { // fn#61613, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:138, offset: 0x01b46704, size: 253 bytes, params: 3, frame: 12
const env0_0 = a0;
const env0_1 = a1;
const object2 = {};
let Set = global.Set;
object2.channels = new Set();
object2.isActivityFocused = false;
object2.isVoicePanelFullscreen = function() {
return require().voicePanelsFullscreen.size > 0;
};
object2.isAnyVoicePanelOpen = function() {
return require().voicePanelsOpened.size > 0;
};
Set = global.Set;
object2.voicePanelsFullscreen = new Set();
Set = global.Set;
object2.voicePanelsOpened = new Set();
Set = global.Set;
object2.voicePanelsPIP = new Set();
object2.openChannel = openChannel_61616;
object2.closeChannel = closeChannel;
object2.isMounted = function(a0) {
return require().channels.has(a0);
};
object2.setIsActivityFocused = setIsActivityFocused;
object2.setChannelPanelFullscreen = setChannelPanelFullscreen;
object2.setChannelPanelOpen = setChannelPanelOpen;
object2.isChannelOpen = function(a0) {
return require().voicePanelsOpened.has(a0);
};
object2.setChannelPanelPIP = setChannelPanelPIP;
return object2;
}
function openChannel_61616(a0) { // fn#61616, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:377, offset: 0x01b46841, size: 166 bytes, params: 2, frame: 16
var environment;
var r3;
var channel;
var channels;
const env0_0 = a0;
const value = environment.__proto__;
const value2 = undefined;
const isStageVoicePanelEnabled2 = (require(7711) /* metro dependency 7711: StageVoicePanelExperiment */).isStageVoicePanelEnabled('voice_panel_store');
if (isStageVoicePanelEnabled2) {
r3 = isStageVoicePanelEnabled2;
} else {
channel = ChannelStore.getChannel(a0);
r3 = (channel == null ? value2 : channel.isGuildStageVoice()) !== true;
}
if (r3) {
channels = require().channels;
if (!channels.has(a0)) {
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun61617);
}
}
return value2;
}
function closeChannel(a0) { // fn#61619, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:703, offset: 0x01b469b4, size: 52 bytes, params: 2, frame: 12
var environment;
const env0_0 = a0;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun61620);
}
function setIsActivityFocused(a0) { // fn#61623, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:1065, offset: 0x01b46b6a, size: 52 bytes, params: 2, frame: 12
var environment;
const env0_0 = a0;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun61624);
}
function setChannelPanelFullscreen(a0, a1) { // fn#61626, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:1181, offset: 0x01b46bea, size: 59 bytes, params: 3, frame: 12
var environment;
const env0_0 = a0;
const env0_1 = a1;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun61627);
}
function setChannelPanelOpen(a0, a1) { // fn#61629, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:1404, offset: 0x01b46cb8, size: 59 bytes, params: 3, frame: 12
var environment;
const env0_0 = a0;
const env0_1 = a1;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun61630);
}
function setChannelPanelPIP(a0, a1) { // fn#61633, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:1690, offset: 0x01b46dc1, size: 59 bytes, params: 3, frame: 12
var environment;
const env0_0 = a0;
const env0_1 = a1;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun61634);
}
function _fun61617() { // fn#61617, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:562, offset: 0x01b468e7, size: 23 bytes, params: 1, frame: 11
env1_0(_fun61618);
}
function _fun61620() { // fn#61620, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:741, offset: 0x01b469e8, size: 23 bytes, params: 1, frame: 11
env1_0(_fun61621);
}
function _fun61624() { // fn#61624, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:1111, offset: 0x01b46b9e, size: 23 bytes, params: 1, frame: 11
env1_0(_fun61625);
}
function _fun61627() { // fn#61627, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:1234, offset: 0x01b46c25, size: 23 bytes, params: 1, frame: 11
env1_0(_fun61628);
}
function _fun61630() { // fn#61630, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:1451, offset: 0x01b46cf3, size: 23 bytes, params: 1, frame: 11
env1_0(_fun61631);
}
function _fun61634() { // fn#61634, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:1736, offset: 0x01b46dfc, size: 23 bytes, params: 1, frame: 11
env1_0(_fun61635);
}
function _fun61618(a0) { // fn#61618, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:570, offset: 0x01b468fe, size: 182 bytes, params: 2, frame: 19
const object2 = {};
copyDataProperties(object2, a0, undefined);
let Set = global.Set;
const value = environment.__proto__;
const binding = env1_0;
const items3 = [binding];
const Array = global.Array;
arraySpread(items3, Array.from(a0.channels), 1, Array);
object2['channels'] = new Set(items3);
Set = global.Set;
const items2 = [binding];
const Array2 = global.Array;
arraySpread(items2, Array2.from(a0.voicePanelsOpened), 1, Array);
object2['voicePanelsOpened'] = new Set(items2);
return object2;
}
function _fun61621(a0) { // fn#61621, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:749, offset: 0x01b469ff, size: 329 bytes, params: 2, frame: 18
var r5;
var r4;
var r3;
var r0;
var set;
var object2;
const value = a0;
const channels = value.channels;
const voicePanelsFullscreen = value.voicePanelsFullscreen;
const voicePanelsOpened = value.voicePanelsOpened;
let has = channels.has;
if (Reflect.apply(has, channels, [env1_0])) {
has = channels.has;
if (Reflect.apply(has, channels, [env1_0])) {
set = new global.Set(channels);
set.delete(env1_0);
r5 = set;
} else {
r5 = channels;
}
has = voicePanelsFullscreen.has;
if (Reflect.apply(has, voicePanelsFullscreen, [env1_0])) {
set = new global.Set(voicePanelsFullscreen);
set.delete(env1_0);
r4 = set;
} else {
r4 = voicePanelsFullscreen;
}
has = voicePanelsOpened.has;
if (Reflect.apply(has, voicePanelsOpened, [env1_0])) {
set = new global.Set(voicePanelsOpened);
set.delete(env1_0);
r3 = set;
} else {
r3 = voicePanelsOpened;
}
object2 = {};
copyDataProperties(object2, value, voicePanelsOpened);
object2['channels'] = r5;
object2['voicePanelsFullscreen'] = r4;
object2['voicePanelsOpened'] = r3;
r0 = object2;
} else {
has = voicePanelsFullscreen.has;
if (Reflect.apply(has, voicePanelsFullscreen, [env1_0])) {
has = channels.has;
if (Reflect.apply(has, channels, [env1_0])) {
set = new global.Set(channels);
set.delete(env1_0);
r5 = set;
} else {
r5 = channels;
}
has = voicePanelsFullscreen.has;
if (Reflect.apply(has, voicePanelsFullscreen, [env1_0])) {
set = new global.Set(voicePanelsFullscreen);
set.delete(env1_0);
r4 = set;
} else {
r4 = voicePanelsFullscreen;
}
has = voicePanelsOpened.has;
if (Reflect.apply(has, voicePanelsOpened, [env1_0])) {
set = new global.Set(voicePanelsOpened);
set.delete(env1_0);
r3 = set;
} else {
r3 = voicePanelsOpened;
}
object2 = {};
copyDataProperties(object2, value, voicePanelsOpened);
object2['channels'] = r5;
object2['voicePanelsFullscreen'] = r4;
object2['voicePanelsOpened'] = r3;
r0 = object2;
} else {
has = voicePanelsOpened.has;
if (Reflect.apply(has, voicePanelsOpened, [env1_0])) {
has = channels.has;
if (Reflect.apply(has, channels, [env1_0])) {
set = new global.Set(channels);
set.delete(env1_0);
r5 = set;
} else {
r5 = channels;
}
has = voicePanelsFullscreen.has;
if (Reflect.apply(has, voicePanelsFullscreen, [env1_0])) {
set = new global.Set(voicePanelsFullscreen);
set.delete(env1_0);
r4 = set;
} else {
r4 = voicePanelsFullscreen;
}
has = voicePanelsOpened.has;
if (Reflect.apply(has, voicePanelsOpened, [env1_0])) {
set = new global.Set(voicePanelsOpened);
set.delete(env1_0);
r3 = set;
} else {
r3 = voicePanelsOpened;
}
object2 = {};
copyDataProperties(object2, value, voicePanelsOpened);
object2['channels'] = r5;
object2['voicePanelsFullscreen'] = r4;
object2['voicePanelsOpened'] = r3;
r0 = object2;
} else {
r0 = value;
}
}
}
return r0;
}
function _fun61625(a0) { // fn#61625, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:1119, offset: 0x01b46bb5, size: 53 bytes, params: 2, frame: 14
var r0;
var object2;
const value = a0;
const isActivityFocused = value.isActivityFocused;
if (isActivityFocused === env1_0) {
r0 = value;
} else {
object2 = {};
copyDataProperties(object2, value, isActivityFocused);
object2['isActivityFocused'] = env1_0;
r0 = object2;
}
return r0;
}
function _fun61628(a0) { // fn#61628, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:1242, offset: 0x01b46c3c, size: 124 bytes, params: 2, frame: 15
var r5;
var property;
var object2;
const Set = global.Set;
const set = new Set(a0.voicePanelsFullscreen);
const value3 = set.has(env1_0);
if (require) {
if (value3) {
return a0;
}
set.add(env1_0);
r5 = has;
object2 = {};
copyDataProperties(object2, a0, r5);
object2['voicePanelsFullscreen'] = set;
return object2;
}
if (value3) {
property = set.delete;
Reflect.apply(property, set, [env1_0]);
r5 = property;
object2 = {};
copyDataProperties(object2, a0, r5);
object2['voicePanelsFullscreen'] = set;
return object2;
}
return a0;
}
function _fun61631(a0) { // fn#61631, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:1459, offset: 0x01b46d0a, size: 149 bytes, params: 2, frame: 15
var r5;
var Set;
var voicePanelsOpened;
var set;
var value4;
var property;
var object2;
const channels = a0.channels;
const has = channels.has;
if (Reflect.apply(has, channels, [env1_0])) {
Set = global.Set;
voicePanelsOpened = a0.voicePanelsOpened;
set = new Set();
value4 = set.has(env1_0);
if (require) {
if (value4) {
return a0;
}
set.add(env1_0);
r5 = has;
object2 = {};
copyDataProperties(object2, a0, r5);
object2['voicePanelsOpened'] = set;
return object2;
}
if (value4) {
property = set.delete;
Reflect.apply(property, set, [env1_0]);
r5 = property;
object2 = {};
copyDataProperties(object2, a0, r5);
object2['voicePanelsOpened'] = set;
return object2;
}
}
return a0;
}
function _fun61635(a0) { // fn#61635, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7888:1744, offset: 0x01b46e13, size: 124 bytes, params: 2, frame: 15
var r5;
var property;
var object2;
const Set = global.Set;
const set = new Set(a0.voicePanelsPIP);
const value3 = set.has(env1_0);
if (require) {
if (value3) {
return a0;
}
set.add(env1_0);
r5 = has;
object2 = {};
copyDataProperties(object2, a0, r5);
object2['voicePanelsPIP'] = set;
return object2;
}
if (value3) {
property = set.delete;
Reflect.apply(property, set, [env1_0]);
r5 = property;
object2 = {};
copyDataProperties(object2, a0, r5);
object2['voicePanelsPIP'] = set;
return object2;
}
return a0;
}
@@ -0,0 +1,110 @@
/* Metro module 7713; source: modules/voice_panel/VoicePanelUtils.native.tsx; dependencies: [1379, 4294, 7710, 7711, 632, 2] */
function _fun61652(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#61652, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7891:6, offset: 0x01b473f5, size: 201 bytes, params: 8, frame: 19
let env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const voicePanelStore = importDefault(7710) /* metro dependency 7710: VoicePanelStore */;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/VoicePanelUtils.native.tsx');
exports.isVoicePanelEnabled = isVoicePanelEnabled;
exports.useIsVoicePanelShowing = function() {
return require(dependencyMap[4]).useStateFromStores([ChannelStore, RTCConnectionStore], _fun61655);
};
exports.useIsVoicePanelFullscreen = function() {
return VoicePanelStore(_fun61657);
};
exports.useIsVoicePanelOpen = function(a0) {
var env0_0 = a0;
return VoicePanelStore(_fun61659);
};
exports.useIsAnyVoicePanelOpen = function() {
return VoicePanelStore(_fun61661);
};
exports.useIsVoicePanelMounted = function(a0) {
var env0_0 = a0;
return VoicePanelStore(_fun61663);
};
}
function isVoicePanelEnabled(a0) { // fn#61653, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7891:228, offset: 0x01b474be, size: 92 bytes, params: 2, frame: 14
var r2;
var r0;
var r1;
let value = undefined;
const isStageVoicePanelEnabled2 = (require(7711) /* metro dependency 7711: StageVoicePanelExperiment */).isStageVoicePanelEnabled('voice_panel_utils');
if (isStageVoicePanelEnabled2) {
r0 = !isStageVoicePanelEnabled2;
r1 = value;
} else {
r2 = a0 == null ? value : a0.isGuildStageVoice();
value = r2 != null;
r0 = value;
r1 = r2;
}
r0 = r0 && r1;
return !r0;
}
function useIsVoicePanelShowing() { // fn#61654, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7891:407, offset: 0x01b4751a, size: 65 bytes, params: 1, frame: 14
return (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([ChannelStore,
RTCConnectionStore], _fun61655);
}
function useIsVoicePanelFullscreen() { // fn#61656, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7891:703, offset: 0x01b475cf, size: 23 bytes, params: 1, frame: 11
return VoicePanelStore(function(a0) {
return a0.isVoicePanelFullscreen();
});
}
function useIsVoicePanelOpen(a0) { // fn#61658, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7891:805, offset: 0x01b475f5, size: 30 bytes, params: 2, frame: 11
const env0_0 = a0;
return VoicePanelStore(_fun61659);
}
function useIsAnyVoicePanelOpen() { // fn#61660, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7891:897, offset: 0x01b4762a, size: 23 bytes, params: 1, frame: 11
return VoicePanelStore(function(a0) {
return a0.isAnyVoicePanelOpen();
});
}
function useIsVoicePanelMounted(a0) { // fn#61662, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7891:996, offset: 0x01b47650, size: 30 bytes, params: 2, frame: 11
const env0_0 = a0;
return VoicePanelStore(_fun61663);
}
function _fun61655() { // fn#61655, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7891:482, offset: 0x01b4755b, size: 116 bytes, params: 1, frame: 14
var r1;
var r0;
var isGuildStageVoice2;
let value = environment.__proto__;
const ChannelStore2 = ChannelStore !== undefined ? ChannelStore : ChannelStore;
const RTCConnectionStore2 = RTCConnectionStore !== undefined ? RTCConnectionStore : RTCConnectionStore;
const getChannel = ChannelStore2.getChannel;
const getChannelId = RTCConnectionStore2.getChannelId;
const value2 = Reflect.apply(getChannel, ChannelStore2, [Reflect.apply(getChannelId, RTCConnectionStore2, [])]);
const value3 = value2 != null;
if (value3) {
isGuildStageVoice2 = value2.isGuildStageVoice();
if (isGuildStageVoice2) {
value = require(7711) /* metro dependency 7711: StageVoicePanelExperiment */;
value = value.isStageVoicePanelEnabled('voice_panel_utils');
r1 = value;
} else {
r1 = !isGuildStageVoice2;
}
r0 = r1;
} else {
r0 = value3;
}
return r0;
}
function _fun61659(a0) { // fn#61659, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7891:847, offset: 0x01b47613, size: 23 bytes, params: 2, frame: 11
return a0.isChannelOpen(env0_0);
}
function _fun61663(a0) { // fn#61663, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7891:1041, offset: 0x01b4766e, size: 23 bytes, params: 2, frame: 11
return a0.isMounted(env0_0);
}
@@ -0,0 +1,163 @@
/* Metro module 7727; source: modules/voice_panel/native/HomeIndicator.tsx; dependencies: [6, 7, 15, 17, 18, 31, 27, 629, 690, 477, 1597, 2] */
function _fun61804(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#61804, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7905:6, offset: 0x01b4b0da, size: 321 bytes, params: 8, frame: 19
const env0_0 = require;
const createStackEntry_61808 = function(a0) {
return {prefersHidden: a0.prefersHidden, prefersDeferringSystemGestures: a0.prefersDeferringSystemGestures};
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(6) /* metro dependency 6 */;
const env0_4 = importDefault(7) /* metro dependency 7 */;
const env0_5 = importDefault(15) /* metro dependency 15 */;
const env0_6 = importDefault(17) /* metro dependency 17 */;
const env0_7 = importDefault(18) /* metro dependency 18 */;
let value = importAll(31) /* metro dependency 31 */;
const env0_8 = (require(27) /* metro dependency 27 */).NativeModules;
const value3 = (require(629) /* metro dependency 629 */).create(function() {
return {autoHideHomeIndicator: false};
});
const Component = value.Component;
value = _fun61810(Component);
value.defaultProps = {'prefersHidden': false, 'prefersDeferringSystemGestures': false};
value._propsStack = [];
value._updateImmediate = null;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/HomeIndicator.tsx');
exports.default = value;
exports.useHomeIndicatorStore = value3;
}
function _isNativeReflectConstruct_61805() { // fn#61805, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7905:182, offset: 0x01b4b21b, size: 94 bytes, params: 1, frame: 18
var Boolean;
var prototype;
var valueOf;
var call;
var Reflect;
var construct;
var closure;
var value;
var error;
try {
Boolean = global.Boolean;
prototype = Boolean.prototype;
valueOf = prototype.valueOf;
call = valueOf.call;
Reflect = global.Reflect;
construct = Reflect.construct;
Boolean = global.Boolean;
closure = function() {
};
value = Reflect.apply(construct, Reflect, [Boolean, [], closure]);
value = Reflect.apply(call, valueOf, [value]);
var result = !value;
} catch (error) {
}
return (_isNativeReflectConstruct_61805_isNativeReflectConstruct = function() {
return !!result;
})();
}
function _fun61810(a0) { // fn#61810, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7905:569, offset: 0x01b4b2a1, size: 234 bytes, params: 2, frame: 18
const closure = HomeIndicator;
env0_7(closure, a0);
return env0_4(closure, [{key: 'componentDidMount', value: function() {
this._stackEntry = HomeIndicator.pushStackEntry(this.props);
}}, {key: 'componentDidUpdate', value: function() {
this._stackEntry = HomeIndicator.replaceStackEntry(this._stackEntry, this.props);
}}, {key: 'componentWillUnmount', value: function() {
HomeIndicator.popStackEntry(this._stackEntry);
this._stackEntry = null;
}}, {key: 'render', value: function() {
return null;
}}], [{key: 'pushStackEntry', value: value_61816}, {key: 'popStackEntry', value: value_61817},
{key: 'replaceStackEntry', value: value_61818}, {key: '_updatePropsStack', value: function() {
global.clearImmediate(HomeIndicator._updateImmediate);
HomeIndicator._updateImmediate = global.setImmediate(_fun61820);
}}]);
}
function HomeIndicator(a0) { // fn#61811, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7905:581, offset: 0x01b4b38b, size: 134 bytes, params: 2, frame: 19
var r0;
var Reflect;
let value = copyRestArgs(0, undefined);
let binding = env1_3;
binding(this, HomeIndicator);
const items2 = [];
arraySpread(items2, value, 0, items2);
value = env1_6(HomeIndicator);
binding = env1_5;
if (_isNativeReflectConstruct_61805()) {
Reflect = global.Reflect;
value = Reflect.construct(value, items2, env1_6(this).constructor);
r0 = value;
} else {
value = value.apply(this, items2);
r0 = value;
}
value = binding(this, r0);
value._stackEntry = null;
return value;
}
function value_61816(a0) { // fn#61816, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7905:1285, offset: 0x01b4b463, size: 52 bytes, params: 2, frame: 12
let value = environment.__proto__;
value = createStackEntry_61808(a0);
HomeIndicator._propsStack.push(value);
HomeIndicator._updatePropsStack();
return value;
}
function value_61817(a0) { // fn#61817, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7905:1429, offset: 0x01b4b497, size: 91 bytes, params: 2, frame: 14
const value = -1;
const r4 = a0 != null ? HomeIndicator._propsStack.indexOf(a0) : value;
if (value !== r4) {
HomeIndicator._propsStack.splice(r4, 1);
HomeIndicator._updatePropsStack();
}
}
function value_61818(a0, a1) { // fn#61818, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7905:1610, offset: 0x01b4b4f2, size: 102 bytes, params: 3, frame: 14
let value = environment.__proto__;
value = createStackEntry_61808(a1);
const value2 = -1;
const r2 = a0 != null ? HomeIndicator._propsStack.indexOf(a0) : value2;
if (value2 !== r2) {
HomeIndicator._propsStack[r2] = value;
}
HomeIndicator._updatePropsStack();
return value;
}
function value_61819() { // fn#61819, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7905:1816, offset: 0x01b4b558, size: 54 bytes, params: 1, frame: 13
global.clearImmediate(HomeIndicator._updateImmediate);
HomeIndicator._updateImmediate = global.setImmediate(_fun61820);
}
function _fun61820() { // fn#61820, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7905:1919, offset: 0x01b4b58e, size: 242 bytes, params: 1, frame: 17
var environment;
var DCDHomeIndicator;
let value = environment.__proto__;
const r2 = HomeIndicator._propsStack[HomeIndicator._propsStack.length - 1] ?? ({});
const prefersHidden = r2.prefersHidden;
const r1 = prefersHidden !== undefined && prefersHidden;
const prefersDeferringSystemGestures = r2.prefersDeferringSystemGestures;
const r5 = prefersDeferringSystemGestures !== undefined && prefersDeferringSystemGestures;
value = environment.__proto__.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun61821);
const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */;
if (platformUtilsModule.isAndroid()) {
(importDefault(1597) /* metro dependency 1597: NativeSafeAreaInsetsModule */).setNavigationBarVisible(!r1);
} else {
DCDHomeIndicator = NativeModules.DCDHomeIndicator;
if (DCDHomeIndicator) {
DCDHomeIndicator = NativeModules.DCDHomeIndicator;
DCDHomeIndicator.setPrefersAutoHidden(r1);
DCDHomeIndicator = NativeModules.DCDHomeIndicator;
DCDHomeIndicator.setPrefersDeferringSystemGestures(r5);
}
}
}
function _fun61821() { // fn#61821, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7905:2116, offset: 0x01b4b680, size: 34 bytes, params: 1, frame: 12
return env3_9.setState({autoHideHomeIndicator: env0_0});
}
@@ -0,0 +1,29 @@
/* Metro module 15449; source: modules/voice_panel/native/VoicePanelAccessibilityView.tsx; dependencies: [31, 15440, 33, 4556, 15444, 2] */
function _fun118251(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118251, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15646:6, offset: 0x024d2ec6, size: 185 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const value = importAll(31) /* metro dependency 31 */;
const env0_2 = (require(15440) /* metro dependency 15440: VoicePanelPIPConstants */).VoicePanelPIPModes;
const env0_3 = (require(33) /* metro dependency 33 */).jsx;
const memo = value.memo;
const AccessibilityViewAnimated = (require(4556) /* metro dependency 4556: AccessibilityViewNative */).AccessibilityViewAnimated;
const env0_4 = Reflect.apply(memo, value, [AccessibilityViewAnimated]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/VoicePanelAccessibilityView.tsx');
exports.default = VoicePanelAccessibilityView;
}
function VoicePanelAccessibilityView(a0) { // fn#118252, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15646:199, offset: 0x024d2f7f, size: 186 bytes, params: 2, frame: 22
const style = a0.style;
let pointerEvents = a0.pointerEvents;
pointerEvents = pointerEvents === undefined ? 'box-none' : pointerEvents;
const nativeID = a0.nativeID;
const accessibilityViewIsModal = a0.accessibilityViewIsModal;
const onAccessibilityEscape = a0.onAccessibilityEscape;
const object2 = {'style': 0, 'pointerEvents': 0, 'nativeID': 0, 'accessibilityViewIsModal': 0,
'onAccessibilityEscape': 0};
silentSetPrototypeOf(object2, null, undefined);
return ((Component) => <Component style={style} pointerEvents={pointerEvents} nativeID={nativeID} accessibilityViewIsModal={accessibilityViewIsModal && (require(15444) /* metro dependency 15444: VoicePanelPIPStateContext */).usePIPState().mode !== VoicePanelPIPModes.IN_APP} onAccessibilityEscape={onAccessibilityEscape} {...copyDataProperties({},
a0, object2, style)} />)(env0_4);
}
@@ -0,0 +1,60 @@
/* Metro module 15404; source: modules/voice_panel/native/VoicePanelContainer.tsx; dependencies: [31, 1379, 7710, 33, 566, 15405, 15445, 3769, 4508, 2] */
function _fun117721(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#117721, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15601:6, offset: 0x024bef64, size: 217 bytes, params: 8, frame: 19
const env0_0 = require;
const getChannelKey = function(a0) {
return a0;
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const voicePanelStore = importDefault(7710) /* metro dependency 7710: VoicePanelStore */;
const env0_6 = (require(33) /* metro dependency 33 */).jsx;
value = value.memo(VoicePanelContainer);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/VoicePanelContainer.tsx');
exports.default = value;
}
function VoicePanel(a0) { // fn#117722, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15601:140, offset: 0x024bf03d, size: 148 bytes, params: 2, frame: 18
const env0_0 = a0;
return ((Component) => <Component {...a0} {...{['guildId']: (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelStore],
_fun117723)}}>{env0_3.useMemo(_fun117724,
[])}</Component>)(importDefault(15405) /* metro dependency 15405: VoicePanelController */);
}
function renderVoicePanel(a0, a1, a2, a3) { // fn#117726, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15601:389, offset: 0x024bf127, size: 47 bytes, params: 5, frame: 15
return (
<VoicePanel
channelId={a1}
transitionState={a2}
transitionCleanUp={a3}
key={a1}
/>
);
}
function VoicePanelContainer() { // fn#117727, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15601:513, offset: 0x024bf156, size: 105 bytes, params: 1, frame: 16
const value2 = VoicePanelStore(function({channels}) {
var Array = global.Array;
return Array.from(channels);
}, (require(3769) /* metro dependency 3769 */).shallow);
const TransitionGroup = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionGroup;
return (
<TransitionGroup
items={value2}
getItemKey={getChannelKey}
renderItem={renderVoicePanel}
/>
);
}
function _fun117723() { // fn#117723, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15601:201, offset: 0x024bf0d1, size: 47 bytes, params: 1, frame: 11
const value = environment.__proto__;
return ChannelStore.getChannel(env0_0.channelId)?.guild_id;
}
function _fun117724() { // fn#117724, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15601:329, offset: 0x024bf100, size: 39 bytes, params: 1, frame: 13
const value = environment.__proto__;
return ((Component) => <Component />)(importDefault(15445) /* metro dependency 15445: VoicePanelUI */);
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,104 @@
/* Metro module 11794; source: modules/voice_panel/native/VoicePanelStateContext.tsx; dependencies: [31, 11795, 11793, 11796, 8142, 11797, 1587, 2] */
function _fun90320(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#90320, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11980:6, offset: 0x02034822, size: 977 bytes, params: 8, frame: 29
var object2;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const VoicePanelModes = (require(11795) /* metro dependency 11795: VoicePanelConstants */).VoicePanelModes;
const {CONTROLS_HEIGHT,
VoicePanelControlsModes} = require(11793) /* metro dependency 11793: VoicePanelControlsConstants */;
const MorphablePanelModes = (require(11796) /* metro dependency 11796: MorphablePanelConstants */).MorphablePanelModes;
const createContext = value.createContext;
object2 = {channelId: 'context-not-initialized', channelType: undefined};
const reanimatedHelperTypesModule = require(8142) /* metro dependency 8142: ReanimatedHelperTypes */;
let createFakeSharedValue = reanimatedHelperTypesModule.createFakeSharedValue;
object2.connected = Reflect.apply(createFakeSharedValue, reanimatedHelperTypesModule, [false]);
object2.contentDimensions = reanimatedHelperTypesModule.createFakeSharedValue({'width': 0, 'height': 0});
const value5 = reanimatedHelperTypesModule;
createFakeSharedValue = value5.createFakeSharedValue;
const FLOATING_DEFAULT = VoicePanelControlsModes.FLOATING_DEFAULT;
object2.controlsSpecs = Reflect.apply(createFakeSharedValue, value5, [{mode: FLOATING_DEFAULT, locked: false,
height: CONTROLS_HEIGHT, pushToTalk: false}]);
object2.dismissPanel = function() {
var Error = global.Error;
throw new Error('VoicePanelContextType.Provider.dismissDrawer: not called within a context provider');
};
object2.dismissToPIPGestureRef = {current: undefined};
object2.dragScrolling = reanimatedHelperTypesModule.createFakeSharedValue(false);
object2.focused = reanimatedHelperTypesModule.createFakeSharedValue(null);
object2.generateStateLocker = function() {
var Error = global.Error;
throw new Error('VoicePanelContextType.Provider.generateStateLocker: not called within a context provider');
};
object2.guildId = undefined;
object2.hideControls = function() {
var Error = global.Error;
throw new Error('VoicePanelContextType.Provider.hideControls: not called within a context provider');
};
object2.isCall = false;
object2.isFocusedVideoZoomed = reanimatedHelperTypesModule.createFakeSharedValue(false);
const voicePanelCardLayoutManager = importDefault(11797) /* metro dependency 11797: VoicePanelCardLayoutManager */;
const value10 = Object.create(voicePanelCardLayoutManager.prototype,
{constructor: {value: voicePanelCardLayoutManager}});
const voicePanelCardLayoutManager2 = new voicePanelCardLayoutManager('invalid');
object2.layoutManager = voicePanelCardLayoutManager2 instanceof Object ? voicePanelCardLayoutManager2 : value10;
const value13 = reanimatedHelperTypesModule;
createFakeSharedValue = value13.createFakeSharedValue;
let PANEL = VoicePanelModes.PANEL;
object2.mode = Reflect.apply(createFakeSharedValue, value13, [PANEL]);
const value14 = reanimatedHelperTypesModule;
createFakeSharedValue = value14.createFakeSharedValue;
PANEL = MorphablePanelModes.PANEL;
object2.morphablePanelMode = Reflect.apply(createFakeSharedValue, value14, [PANEL]);
const Set = global.Set;
const value15 = Object.create(Set.prototype, {constructor: {value: Set}});
const set = new Set();
object2.mountedCards = set instanceof Object ? set : value15;
object2.pipAvoidanceSpecs = reanimatedHelperTypesModule.createFakeSharedValue({'top': 0, 'bottom': 0});
object2.preJoinContentSize = reanimatedHelperTypesModule.createFakeSharedValue(0);
const value19 = reanimatedHelperTypesModule;
createFakeSharedValue = value19.createFakeSharedValue;
const EMPTY_SAFE_AREA_INSETS = (require(1587) /* metro dependency 1587: SafeAreaConstantsNative */).EMPTY_SAFE_AREA_INSETS;
object2.safeArea = Reflect.apply(createFakeSharedValue, value19, [EMPTY_SAFE_AREA_INSETS]);
object2.scrollPosition = reanimatedHelperTypesModule.createFakeSharedValue(0);
object2.setControlsMode = function() {
var Error = global.Error;
throw new Error('VoicePanelContextType.Provider.setControlsMode: not called within a context provider');
};
object2.setFocused = function() {
var Error = global.Error;
throw new Error('VoicePanelContextType.Provider.setFocused: not called within a context provider');
};
object2.setIsFocusedVideoZoomed = function() {
var Error = global.Error;
throw new Error('VoicePanelContextType.Provider.showControls: not called within a context provider');
};
object2.setMode = function() {
var Error = global.Error;
throw new Error('VoicePanelContextType.Provider.setMode: not called within a context provider');
};
object2.setShowFloatingCTA = function() {
var Error = global.Error;
throw new Error('VoicePanelContextType.Provider.showFloatingCTA: not called within a context provider');
};
object2.showControls = function() {
var Error = global.Error;
throw new Error('VoicePanelContextType.Provider.showControls: not called within a context provider');
};
object2.showFloatingCTA = reanimatedHelperTypesModule.createFakeSharedValue(null);
object2.streamOutputSinkStack = {};
object2.windowDimensions = reanimatedHelperTypesModule.createFakeSharedValue({'width': 0, 'height': 0,
'landscape': false});
const value23 = reanimatedHelperTypesModule;
createFakeSharedValue = value23.createFakeSharedValue;
PANEL = VoicePanelModes.PANEL;
object2.wrapperDimensions = Reflect.apply(createFakeSharedValue, value23, [{'drawerWidth': 0, 'drawerHeight': 0,
'drawerX': 0, 'drawerY': 0, 'pipX': 0, 'pipY': 0, 'animated': true, mode: PANEL}]);
object2.useReducedMotion = reanimatedHelperTypesModule.createFakeSharedValue(false);
object2.wrapperOffset = reanimatedHelperTypesModule.createFakeSharedValue({'gestureActive': false, 'x': 0, 'y': 0});
object2.panelCardStillInPIP = reanimatedHelperTypesModule.createFakeSharedValue(false);
value = Reflect.apply(createContext, value, [object2]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/VoicePanelStateContext.tsx');
exports.default = value;
}
@@ -0,0 +1,151 @@
/* Metro module 15448; source: modules/voice_panel/native/VoicePanelSystemUIManager.tsx; dependencies: [57, 31, 4606, 11795, 11793, 4299, 33, 11794, 690, 477, 6949, 4017, 7739, 7725, 7727, 2] */
function _fun118240(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118240, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15645:6, offset: 0x024d2865, size: 301 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
let value = importAll(31) /* metro dependency 31 */;
const channelRTCStore = importDefault(4606) /* metro dependency 4606: ChannelRTCStore */;
const env0_6 = (require(11795) /* metro dependency 11795: VoicePanelConstants */).VoicePanelModes;
const env0_7 = (require(11793) /* metro dependency 11793: VoicePanelControlsConstants */).VoicePanelControlsModes;
const env0_8 = (require(4299) /* metro dependency 4299: CallConstants */).ParticipantTypes;
const value2 = require(33) /* metro dependency 33 */;
const env0_9 = value2.jsx;
const env0_10 = value2.Fragment;
const env0_11 = value2.jsxs;
object = {code: 'function VoicePanelSystemUIManagerTsx1(){const{focused,mode,controlsSpecs,windowDimensions}=this.__closure;var _focused$get;return{focusedId:(_focused$get=focused.get())===null||_focused$get===void 0?void 0:_focused$get.id,mode:mode.get(),controlsMode:controlsSpecs.get().mode,landscape:windowDimensions.get().landscape};}'};
object = {code: 'function VoicePanelSystemUIManagerTsx2(props,previous){const{cheapWorkletShallowEqual,runOnJS,handleStateChange}=this.__closure;if(cheapWorkletShallowEqual(props,previous!==null&&previous!==void 0?previous:undefined))return;runOnJS(handleStateChange)(props);}'};
value = value.memo(VoicePanelSystemUIManager);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/VoicePanelSystemUIManager.tsx');
exports.default = value;
}
function VoicePanelSystemUIManager() { // fn#118241, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15645:872, offset: 0x024d2992, size: 597 bytes, params: 1, frame: 28
const binding = env0_4;
const value2 = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const focused = value2.focused;
const channelId = value2.channelId;
const mode = value2.mode;
const controlsSpecs = value2.controlsSpecs;
const env0_3 = controlsSpecs;
const windowDimensions = value2.windowDimensions;
let useState = binding.useState;
const value3 = Reflect.apply(useState, binding, [true]);
const binding2 = env0_3;
const value4 = binding2(value3, 2);
const property = value4[0];
const env0_5 = value4[1];
useState = binding.useState;
const value5 = binding2(Reflect.apply(useState, binding, [true]), 2);
const property2 = value5[0];
const env0_6 = value5[1];
useState = binding.useState;
const value6 = binding2(Reflect.apply(useState, binding, [false]), 2);
const property3 = value6[0];
const env0_7 = value6[1];
useState = binding.useState;
const value7 = binding2(Reflect.apply(useState, binding, [false]), 2);
const property4 = value7[0];
const env0_8 = value7[1];
const {cancelPendingDebounce, handleStateChange} = binding.useMemo(_fun118242, [channelId]);
binding.useEffect(function() {
return _fun118248;
}, [cancelPendingDebounce]);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
const closure = function() {
var object = {};
object.focusedId = focused.get()?.id;
object.mode = mode.get();
object.controlsMode = controlsSpecs.get().mode;
object.landscape = windowDimensions.get().landscape;
return object;
};
closure.__closure = {focused: focused, mode: mode, controlsSpecs: controlsSpecs, windowDimensions: windowDimensions};
closure.__workletHash = 2478376475717;
closure.__initData = env0_12;
const closure2 = VoicePanelSystemUIManagerU;
closure2.__closure = {cheapWorkletShallowEqual: (require(7739) /* metro dependency 7739: cheapWorkletShallowEqual */).cheapWorkletShallowEqual,
runOnJS: reanimatedRexportModule.runOnJS, handleStateChange: handleStateChange};
closure2.__workletHash = 3592680244658;
closure2.__initData = env0_13;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
return (
<>
{property2 ? ((Component) => <Component hidden={!property} barStyle="light-content" />)(importDefault(7725) /* metro dependency 7725: StatusBarAndroid */) : null}
{((Component) => <Component prefersHidden={property3} prefersDeferringSystemGestures={property4} />)(importDefault(7727) /* metro dependency 7727: HomeIndicator */)}
</>
);
}
function _fun118242() { // fn#118242, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15645:1188, offset: 0x024d2be7, size: 100 bytes, params: 1, frame: 16
var environment;
const closure = updateState_118243;
const value = environment.__proto__;
const env0_1 = (importDefault(6949) /* metro dependency 6949 */)(closure, 500, {maxWait: 2000});
return {cancelPendingDebounce: cancelPendingDebounce, handleStateChange: handleStateChange_118246};
}
function _fun118247() { // fn#118247, offset: 0x024d2dea, size: 11 bytes, params: 1, frame: 1
return function() {
return cancelPendingDebounce();
};
}
function VoicePanelSystemUIManagerU(a0, a1) { // fn#118250, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15645:2021, owner: VoicePanelSystemUIManager.u, offset: 0x024d2e5e, size: 104 bytes, params: 3, frame: 17
let value = a1;
const value3 = undefined;
const cheapWorkletShallowEqualModule = require(7739) /* metro dependency 7739: cheapWorkletShallowEqual */;
if (!cheapWorkletShallowEqualModule.cheapWorkletShallowEqual(a0, value ?? value3)) {
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value.runOnJS(handleStateChange)(a0);
}
return value3;
}
function updateState_118243({focusedId, mode, controlsMode, landscape}) { // fn#118243, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15645:1209, offset: 0x024d2c4b, size: 89 bytes, params: 2, frame: 12
var environment;
const value = environment.__proto__.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun118244);
}
function cancelPendingDebounce() { // fn#118245, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15645:1527, offset: 0x024d2d8d, size: 21 bytes, params: 1, frame: 9
env0_1.cancel();
}
function handleStateChange_118246(a0) { // fn#118246, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15645:1563, offset: 0x024d2da2, size: 72 bytes, params: 2, frame: 12
const binding = env0_2;
let focusedId = a0.focusedId;
if (binding !== focusedId) {
focusedId = a0.focusedId;
env0_1(a0);
} else {
env0_1.cancel();
updateState_118243(a0);
}
}
function _fun118244() { // fn#118244, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15645:1283, offset: 0x024d2ca4, size: 233 bytes, params: 1, frame: 19
const value = environment.__proto__.__proto__;
const binding = env2_6;
const modeBinding = mode;
const PIP = VoicePanelModes.PIP;
const value4 = undefined;
binding(modeBinding !== PIP);
const controlsModeBinding = controlsMode;
const HIDDEN = VoicePanelControlsModes.HIDDEN;
const value5 = controlsModeBinding !== HIDDEN;
let r2 = !(focusedId != null) && !landscape;
r2 = !r2 ? value5 : r2;
env2_5(r2);
const r22 = focusedId != null ? ChannelRTCStore.getParticipant(channelId, focusedId) : value4;
const type = r22 == null ? value4 : r22.type;
const ACTIVITY = ParticipantTypes.ACTIVITY;
const value10 = type === ACTIVITY;
const isIOS2 = (require(477) /* metro dependency 477: PlatformUtils */).isIOS();
const r3 = isIOS2 ? value10 : !!isIOS2;
env2_8(r3);
env2_7(!r2 && !r3);
return value4;
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,34 @@
/* Metro module 15531; source: modules/voice_panel/native/alerts/VoicePanelLockedIcon.tsx; dependencies: [31, 33, 4501, 697, 6821, 1305, 15532, 2] */
function _fun118926(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118926, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15728:6, offset: 0x024f4ffb, size: 240 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_3 = (require(33) /* metro dependency 33 */).jsx;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
const object = {'alignItems': 'center', 'justifyContent': 'center', 'alignSelf': 'center', 'width': 64,
'height': 64};
const BACKGROUND_SURFACE_HIGH = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_SURFACE_HIGH;
object.backgroundColor = BACKGROUND_SURFACE_HIGH;
object.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
const env0_4 = Reflect.apply(createStyles, createStylesModule, [{container: object, icon: {}}]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/alerts/VoicePanelLockedIcon.tsx');
exports.default = VoicePanelLockedIcon;
}
function VoicePanelLockedIcon() { // fn#118927, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15728:436, offset: 0x024f50eb, size: 139 bytes, params: 1, frame: 20
const styles = useStyles();
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const Icon = (require(1305) /* metro dependency 1305: native */).Icon;
const iconProps = {style: styles.icon, source: importDefault(15532) /* metro dependency 15532 */};
const IconSizes = (require(1305) /* metro dependency 1305: native */).IconSizes;
const LARGE = IconSizes.LARGE;
iconProps.size = LARGE;
return (
<NativeView style={styles.container}>
<Icon {...iconProps} />
</NativeView>
);
}
@@ -0,0 +1,35 @@
/* Metro module 15533; source: modules/voice_panel/native/alerts/VoicePanelMaxCapacityAlert.tsx; dependencies: [31, 1379, 33, 632, 4500, 4500, 15531, 1244, 2] */
function _fun118929(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118929, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15730:6, offset: 0x024f51bc, size: 166 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
importAll(31) /* metro dependency 31 */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const env0_4 = (require(33) /* metro dependency 33 */).jsx;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/alerts/VoicePanelMaxCapacityAlert.tsx');
exports.default = VoicePanelMaxCapacityAlert;
exports.VOICE_PANEL_MAX_CAPACITY_KEY = 'voice-panel-max-capacity';
}
function VoicePanelMaxCapacityAlert({channelId}) { // fn#118930, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15730:236, offset: 0x024f5262, size: 358 bytes, params: 2, frame: 24
var object2;
const value2 = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([ChannelStore],
_fun118931, [channelId]);
const value3 = (require(4500) /* metro dependency 4500: AlertModalNative */).useDismissModalCallback();
const AlertModal = (require(4500) /* metro dependency 4500: AlertModalNative */).AlertModal;
object2 = {header: ((Component) => <Component />)(importDefault(15531) /* metro dependency 15531: VoicePanelLockedIcon */)};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.title = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.hHbsQj);
object2.content = intl.formatToPlainString((require(1244) /* metro dependency 1244: indexNative */).t['387SQH'],
{count: value2});
const AlertActionButton = (require(4500) /* metro dependency 4500: AlertModalNative */).AlertActionButton;
object2.actions = <AlertActionButton variant="secondary" text={intl.string((require(1244) /* metro dependency 1244: indexNative */).t['NX+WJN'])} onPress={value3} />;
return <AlertModal {...object2} />;
}
function _fun118931() { // fn#118931, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15730:325, offset: 0x024f53c8, size: 55 bytes, params: 1, frame: 12
const value = environment.__proto__;
const userLimit = ChannelStore.getChannel(channelId)?.userLimit;
return userLimit ?? 0;
}
@@ -0,0 +1,24 @@
/* Metro module 15530; source: modules/voice_panel/native/alerts/VoicePanelNoJoinPermissionsAlert.tsx; dependencies: [31, 33, 4500, 4500, 15531, 1244, 2] */
function _fun118924(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118924, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15727:6, offset: 0x024f4e47, size: 150 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/voice_panel/native/alerts/VoicePanelNoJoinPermissionsAlert.tsx');
exports.default = VoicePanelNoJoinPermissionsAlert;
exports.VOICE_PANEL_NO_JOIN_PERMS_KEY = 'voice-panel-no-join-perms';
}
function VoicePanelNoJoinPermissionsAlert() { // fn#118925, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15727:232, offset: 0x024f4edd, size: 286 bytes, params: 1, frame: 21
const value2 = (require(4500) /* metro dependency 4500: AlertModalNative */).useDismissModalCallback();
const AlertModal = (require(4500) /* metro dependency 4500: AlertModalNative */).AlertModal;
const alertModalProps = {header: ((Component) => <Component />)(importDefault(15531) /* metro dependency 15531: VoicePanelLockedIcon */)};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
alertModalProps.title = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['7/2/3M']);
alertModalProps.content = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.xsenup);
const AlertActionButton = (require(4500) /* metro dependency 4500: AlertModalNative */).AlertActionButton;
alertModalProps.actions = <AlertActionButton variant="secondary" text={intl.string((require(1244) /* metro dependency 1244: indexNative */).t['NX+WJN'])} onPress={value2} />;
return <AlertModal {...alertModalProps} />;
}
@@ -0,0 +1,26 @@
/* Metro module 15540; source: modules/voice_panel/native/alerts/VoicePanelNoVideoPermissionsAlert.tsx; dependencies: [31, 33, 4500, 4500, 1244, 2] */
function _fun118961(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118961, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15737:6, offset: 0x024f6bb1, size: 143 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_2 = (require(33) /* metro dependency 33 */).jsx;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/alerts/VoicePanelNoVideoPermissionsAlert.tsx');
exports.default = VoicePanelNoVideoPermissionsAlert;
exports.VOICE_PANEL_NO_VIDEO_PERMS_KEY = 'voice-panel-no-video-perms';
}
function VoicePanelNoVideoPermissionsAlert() { // fn#118962, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15737:233, offset: 0x024f6c40, size: 254 bytes, params: 1, frame: 21
const value2 = (require(4500) /* metro dependency 4500: AlertModalNative */).useDismissModalCallback();
const AlertModal = (require(4500) /* metro dependency 4500: AlertModalNative */).AlertModal;
const object2 = {};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const OYzPcW = (require(1244) /* metro dependency 1244: indexNative */).t.OYzPcW;
object2.title = Reflect.apply(string, intl, [OYzPcW]);
object2.content = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.oBH7Y2);
const AlertActionButton = (require(4500) /* metro dependency 4500: AlertModalNative */).AlertActionButton;
object2.actions = <AlertActionButton variant="secondary" text={intl.string((require(1244) /* metro dependency 1244: indexNative */).t['NX+WJN'])} onPress={value2} />;
return <AlertModal {...object2} />;
}
@@ -0,0 +1,56 @@
/* Metro module 15534; source: modules/voice_panel/native/alerts/VoicePanelNsfwAlert.tsx; dependencies: [31, 1422, 1867, 33, 4500, 4500, 1244, 6593, 4796, 2] */
function _fun118932(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118932, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15731:6, offset: 0x024f53ff, size: 197 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
importAll(31) /* metro dependency 31 */;
const env0_3 = (require(1422) /* metro dependency 1422: GuildRecord */).isGuildNSFW;
const guildStore = importDefault(1867) /* metro dependency 1867: GuildStore */;
const value = require(33) /* metro dependency 33 */;
const env0_5 = value.jsx;
const env0_6 = value.jsxs;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/alerts/VoicePanelNsfwAlert.tsx');
exports.default = VoicePanelNsfwAlert;
exports.VOICE_PANEL_NSFW_KEY = 'voice-panel-nsfw';
}
function VoicePanelNsfwAlert({guildId, channelId}) { // fn#118933, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15731:264, offset: 0x024f54c4, size: 517 bytes, params: 2, frame: 28
const env0_2 = (require(4500) /* metro dependency 4500: AlertModalNative */).useDismissModalCallback();
const isGuildNSFWBinding = isGuildNSFW;
const getGuild = GuildStore.getGuild;
const isGuildNSFW2 = isGuildNSFWBinding(Reflect.apply(getGuild, GuildStore, [guildId]));
const AlertModal = (require(4500) /* metro dependency 4500: AlertModalNative */).AlertModal;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
let string = intl.string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const r6 = isGuildNSFW2 ? Reflect.apply(string, intl, [t.xi46lg]) : Reflect.apply(string, intl, [t.ZmwvDc]);
string = intl.string;
const r5 = isGuildNSFW2 ? Reflect.apply(string, intl, [t.ZtuRts]) : Reflect.apply(string, intl, [t.E4Cd5I]);
const AlertActions = (require(4500) /* metro dependency 4500: AlertModalNative */).AlertActions;
const AlertActionButton = (require(4500) /* metro dependency 4500: AlertModalNative */).AlertActionButton;
const alertActionButton = <AlertActionButton variant="primary" onPress={onPress_118934} text={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.wVq7uo)} key="confirm" />;
return (
<AlertModal
title={r6}
content={r5}
actions={<AlertActions>{alertActionButton}<AlertActionButton variant="secondary" onPress={onPress_118935} text={intl.string((require(1244) /* metro dependency 1244: indexNative */).t['/g10LC'])} key="add-profile-picture" /></AlertActions>}
/>
);
}
function VoicePanelNsfwAlertOnPress() { // fn#118934, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15731:673, owner: VoicePanelNsfwAlert.onPress, offset: 0x024f56c9, size: 80 bytes, params: 1, frame: 15
let value = environment.__proto__;
value = importDefault(6593) /* metro dependency 6593: GuildActionCreators */;
value.nsfwAgree(guildId);
value = importDefault(4796) /* metro dependency 4796: SelectedChannelActionCreators */;
value.selectVoiceChannel(channelId);
env0_2();
}
function VoicePanelNsfwAlertOnPress_118935() { // fn#118935, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15731:846, owner: VoicePanelNsfwAlert.onPress, offset: 0x024f5719, size: 53 bytes, params: 1, frame: 13
let value = environment.__proto__;
value = importDefault(6593) /* metro dependency 6593: GuildActionCreators */;
value.nsfwReturnToSafety(guildId);
env0_2();
}
@@ -0,0 +1,104 @@
/* Metro module 8468; source: modules/voice_panel/native/card/DominantColorUtils.tsx; dependencies: [57, 31, 27, 1393, 4000, 697, 628, 2] */
function _fun67250(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67250, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8653:6, offset: 0x01c1b512, size: 296 bytes, params: 8, frame: 23
const env0_0 = require;
const closure = getCachedSourceFromURI;
const closure2 = useDominantRGBFromImage_67252;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
let value = require(27) /* metro dependency 27 */;
const env0_5 = value.NativeModules;
const env0_6 = value.Image;
value = importDefault(1393) /* metro dependency 1393 */;
value = new value({max: 1000});
value = importDefault(1393) /* metro dependency 1393 */;
value = new value({max: 1000});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/card/DominantColorUtils.tsx');
exports.getCachedSourceFromURI = closure;
exports.useDominantRGBFromImage = closure2;
exports.useDominantColorFromImage = useDominantColorFromImage_67259;
}
function getCachedSourceFromURI(a0) { // fn#67251, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8653:209, offset: 0x01c1b63a, size: 101 bytes, params: 2, frame: 17
const value = a0;
const value3 = env0_8.get(value);
const value4 = null;
const r0 = value4 != value3 ? value3 : typeof value === 'number' ? value : value4 == value || value.trim() === '' ? value4 : {uri: value};
env0_8.set(value, r0);
return r0;
}
function useDominantRGBFromImage_67252(a0) { // fn#67252, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8653:387, offset: 0x01c1b69f, size: 223 bytes, params: 2, frame: 21
var moduleValue;
const env0_0 = a0;
let binding = env0_4;
const env0_1 = binding.useRef(true);
env0_4.useEffect(function() {
return _fun67254;
}, []);
binding = env0_4;
const useState = binding.useState;
let r0 = a0 != null ? env0_7.get(a0) : undefined;
if (r0 == null) {
moduleValue = require(4000) /* metro dependency 4000: ColorUtils */;
r0 = moduleValue.hexToRgb((importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.PRIMARY_800);
}
const value6 = env0_3(Reflect.apply(useState, binding, [r0]), 2);
const property = value6[0];
const env0_2 = value6[1];
env0_4.useEffect(_fun67255, [a0]);
return property;
}
function useDominantColorFromImage_67259(a0) { // fn#67259, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8653:1244, offset: 0x01c1b926, size: 76 bytes, params: 2, frame: 20
const value = useDominantRGBFromImage_67252(a0);
return 'rgb(' + value.r + ', ' + value.g + ', ' + value.b + ')';
}
function _fun67253() { // fn#67253, offset: 0x01c1b77e, size: 11 bytes, params: 1, frame: 1
return _fun67254;
}
function _fun67255() { // fn#67255, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8653:638, offset: 0x01c1b79c, size: 225 bytes, params: 1, frame: 16
var environment;
var value5;
var value;
const value2 = undefined;
const r2 = env0_0 != null ? env1_7.get(env0_0) : value2;
var env0_0 = r2;
if (env0_0 != null) {
if (r2 == null) {
value5 = environment.__proto__;
value = getCachedSourceFromURI(env0_0);
if (value != null) {
value = (typeof value === 'number' ? NativeModules.ImageManager.getDominantColorsLocalAsset(Image.resolveAssetSource(value)) : NativeModules.ImageManager.getDominantColors(Image.resolveAssetSource(value))).then(_fun67256);
value.catch(function() {
});
}
} else {
env0_2(_fun67258);
}
}
return value2;
}
function _fun67254() { // fn#67254, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8653:461, offset: 0x01c1b789, size: 19 bytes, params: 1, frame: 2
env1_1.current = false;
}
function _fun67256(a0) { // fn#67256, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8653:892, offset: 0x01c1b87d, size: 105 bytes, params: 2, frame: 15
const value2 = env2_3(a0[0], 3);
const object2 = {r: value2[0], g: value2[1], b: value2[2]};
env2_7.set(env1_0, object2);
if (env1_1.current) {
env1_2(object2);
}
}
function _fun67258(a0) { // fn#67258, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8653:991, offset: 0x01c1b8e6, size: 64 bytes, params: 2, frame: 15
const value = a0;
return env0_0 === value || (importDefault(628) /* metro dependency 628: shallowEqual */)(env0_0,
value) ? value : env0_0;
}
@@ -0,0 +1,399 @@
/* Metro module 15496; source: modules/voice_panel/native/card/VoicePanelAnimatedActivityCard.tsx; dependencies: [57, 31, 1378, 7730, 1379, 11795, 11793, 661, 4237, 33, 4501, 697, 11794, 15319, 566, 15497, 7860, 6777, 10701, 6771, 6789, 8620, 12711, 4017, 4610, 5321, 1478, 10703, 8141, 10704, 15498, 15499, 15503, 3868, 2] */
function _fun118643(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118643, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:6, offset: 0x024e6309, size: 544 bytes, params: 8, frame: 22
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
let value = importAll(31) /* metro dependency 31 */;
const embeddedActivitiesStore = importDefault(1378) /* metro dependency 1378: EmbeddedActivitiesStore */;
const channelCallLifecycleStore = importDefault(7730) /* metro dependency 7730: ChannelCallLifecycleStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const voicePanelConstantsModule = require(11795) /* metro dependency 11795: VoicePanelConstants */;
const env0_8 = voicePanelConstantsModule.IS_IOS;
const env0_9 = voicePanelConstantsModule.VoicePanelModes;
const env0_10 = (require(11793) /* metro dependency 11793: VoicePanelControlsConstants */).VoicePanelControlsModes;
const env0_11 = (require(661) /* metro dependency 661: Constants */).ThemeTypes;
const constantsModule = require(4237) /* metro dependency 4237: Constants */;
const env0_12 = constantsModule.ACTIVITY_PORTRAIT_ASPECT_RATIO;
const env0_13 = constantsModule.ActivityLayoutMode;
const env0_14 = constantsModule.OrientationLockState;
const value4 = require(33) /* metro dependency 33 */;
const env0_15 = value4.jsx;
const env0_16 = value4.jsxs;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
const BACKGROUND_SURFACE_HIGH = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_SURFACE_HIGH;
const env0_17 = Reflect.apply(createStyles, createStylesModule,
[{activityContainerBackground: {backgroundColor: BACKGROUND_SURFACE_HIGH}}]);
object = {code: 'function VoicePanelAnimatedActivityCardTsx1(){const{sharedVisible,mode}=this.__closure;return{visible:sharedVisible.get(),mode:mode.get()};}'};
object = {code: 'function VoicePanelAnimatedActivityCardTsx2({visible:visible,mode:mode},prev){const{VoicePanelModes,runOnJS,incrementActivityKey}=this.__closure;if(visible===1&&prev!=null&&prev.visible===0||mode!==VoicePanelModes.PIP&&(prev===null||prev===void 0?void 0:prev.mode)===VoicePanelModes.PIP){runOnJS(incrementActivityKey)();}}'};
object = {code: 'function VoicePanelAnimatedActivityCardTsx3(){const{activityParticipantId,focused,mode,VoicePanelModes}=this.__closure;var _focused$get;return activityParticipantId!=null&&((_focused$get=focused.get())===null||_focused$get===void 0?void 0:_focused$get.id)===activityParticipantId&&mode.get()===VoicePanelModes.PANEL;}'};
object = {code: 'function VoicePanelAnimatedActivityCardTsx4(isActivityFocused,wasActivityFocused){const{runOnJS,setIsActivityFocused}=this.__closure;if(isActivityFocused!==wasActivityFocused){runOnJS(setIsActivityFocused)(isActivityFocused);}}'};
object = {code: 'function VoicePanelAnimatedActivityCardTsx5(){const{windowDimensions}=this.__closure;return windowDimensions.get();}'};
object = {code: 'function VoicePanelAnimatedActivityCardTsx6(windowDimensionsValue,prevWindowDimensionsValue){const{runOnJS,handleTargetAspectRatioParams,gridOrientationLockState,hasJoined,updateNotJoinedActivityDimensions}=this.__closure;if(windowDimensionsValue.landscape!==(prevWindowDimensionsValue===null||prevWindowDimensionsValue===void 0?void 0:prevWindowDimensionsValue.landscape)){runOnJS(handleTargetAspectRatioParams)(windowDimensionsValue.landscape,gridOrientationLockState,hasJoined);}runOnJS(updateNotJoinedActivityDimensions)();}'};
object = {code: "function VoicePanelAnimatedActivityCardTsx7(){const{IS_IOS,animatedKeyboardHeight,windowDimensions,isTabletActivitySurface,focusedOrientationLockState,OrientationLockState,ACTIVITY_PORTRAIT_ASPECT_RATIO,isActivityFocused,backgroundColor}=this.__closure;const keyboardHeight=IS_IOS?animatedKeyboardHeight.get():0;const isScreenLandscape=windowDimensions.get().landscape;const screenWidth=windowDimensions.get().width;const screenHeight=windowDimensions.get().height;const shouldLetterBox=isTabletActivitySurface&&focusedOrientationLockState===OrientationLockState.LANDSCAPE&&!isScreenLandscape;const shouldPillarBox=isTabletActivitySurface&&focusedOrientationLockState===OrientationLockState.PORTRAIT&&isScreenLandscape;let containerPaddingVertical=0;let containerPaddingHorizontal=0;if(shouldLetterBox){containerPaddingVertical=(screenHeight-screenWidth*ACTIVITY_PORTRAIT_ASPECT_RATIO)/2;}else if(shouldPillarBox){containerPaddingHorizontal=(screenWidth-screenHeight*ACTIVITY_PORTRAIT_ASPECT_RATIO)/2;}return{flex:isActivityFocused?0:1,backgroundColor:backgroundColor,paddingVertical:containerPaddingVertical,paddingHorizontal:containerPaddingHorizontal,width:isActivityFocused?screenWidth:'auto',height:isActivityFocused?screenHeight-keyboardHeight:'auto',maxHeight:'100%',maxWidth:'100%'};}"};
object = {code: 'function VoicePanelAnimatedActivityCardTsx8(event,manager){const{controlsSpecs,VoicePanelControlsModes,runOnJS,hideControls}=this.__closure;manager.fail();if(controlsSpecs.get().mode!==VoicePanelControlsModes.HIDDEN){runOnJS(hideControls)({debounce:true});}}'};
value = value.memo(VoicePanelAnimatedActivityCard);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/card/VoicePanelAnimatedActivityCard.tsx');
exports.default = value;
}
function VoicePanelAnimatedActivityCardInner({applicationId, sharedVisible, layout}) { // fn#118644, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:3773, offset: 0x024e6529, size: 2256 bytes, params: 2, frame: 50
var object4;
var r13;
const GestureDetector = (require(5321) /* metro dependency 5321 */).GestureDetector;
var ReanimatedNativeView;
var object2;
var items2;
const env0_18 = undefined;
const env0_19 = undefined;
const env0_21 = undefined;
const styles = useStyles();
let binding = env0_4;
let useState = binding.useState;
const value4 = env0_3(Reflect.apply(useState, binding, [0]), 2);
const property = value4[0];
const env0_2 = value4[1];
const value5 = env0_4.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
var env0_3 = value5.channelId;
const focused = value5.focused;
var env0_4 = focused;
const layoutManager = value5.layoutManager;
const mode = value5.mode;
const windowDimensions = value5.windowDimensions;
const hideControls = value5.hideControls;
const controlsSpecs = value5.controlsSpecs;
const value6 = (importDefault(15319) /* metro dependency 15319: useAnimatedKeyboardHeight */)();
const channel = (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelStore], function() {
return ChannelStore.getChannel(channelId);
});
const value7 = env0_4.useMemo(function() {
return {channel: channel, type: 'channel'};
}, [channel]);
const guild_id = channel?.guild_id;
const useActivityShelfItemDataModule = require(15497) /* metro dependency 15497: useActivityShelfItemData */;
const useActivityShelfItemData = useActivityShelfItemDataModule.useActivityShelfItemData;
let r5 = channel?.guild_id ?? null;
const value9 = Reflect.apply(useActivityShelfItemData, useActivityShelfItemDataModule, [r5, applicationId]);
env0_4.useEffect(_fun118647, [guild_id]);
const property2 = env0_3((importDefault(6777) /* metro dependency 6777: useGetOrFetchApplications */)([applicationId]),
1)[0];
const {gridOrientationLockState,
focusedOrientationLockState} = (require(566) /* metro dependency 566: flux */).useStateFromStoresObject([EmbeddedActivitiesStore],
function() {
var object = {};
var applicationIdBinding = applicationId;
object.gridOrientationLockState = EmbeddedActivitiesStore.getGridOrientationLockStateForApp(applicationIdBinding);
object.focusedOrientationLockState = EmbeddedActivitiesStore.getOrientationLockStateForApp(applicationIdBinding);
return object;
}, [applicationId]);
const value12 = (importDefault(10701) /* metro dependency 10701: useCurrentEmbeddedApplication */)();
const value13 = (require(566) /* metro dependency 566: flux */).useStateFromStores([EmbeddedActivitiesStore],
_fun118649);
const defaultImport2 = importDefault(6771) /* metro dependency 6771: useAnalyticsLocations */;
const ACTIVITY_TILE = (importDefault(6789) /* metro dependency 6789: AnalyticsLocation */).ACTIVITY_TILE;
const analyticsLocations = defaultImport2(ACTIVITY_TILE).analyticsLocations;
const value14 = (require(8620) /* metro dependency 8620: analytics */).useAnalyticsContext();
let r2 = value12 != null && value12.id === property2?.id;
r2 = !r2 ? (value13 == null || value13.participants == null ? undefined : value13.participants.find(_fun118652)) != null : r2;
const value19 = env0_4.useCallback(_fun118653, [r2]);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
let useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
let closure = function() {
var object = {};
object.visible = sharedVisible.get();
object.mode = mode.get();
return object;
};
closure.__closure = {sharedVisible: sharedVisible, mode: mode};
closure.__workletHash = 2072430391020;
closure.__initData = env0_18;
const closure2 = VoicePanelAnimatedActivityCardInnerQ;
closure2.__closure = {VoicePanelModes: VoicePanelModes, runOnJS: reanimatedRexportModule.runOnJS,
incrementActivityKey: value19};
closure2.__workletHash = 9732208421749;
closure2.__initData = env0_19;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
const [property3, property4] = env0_3(env0_4.useState(false), 2);
const r39 = value13 != null ? (require(4610) /* metro dependency 4610: ChannelRTCParticipants */).getEmbeddedActivityParticipantId({applicationId: value13.applicationId,
instanceId: value13.compositeInstanceId}) : null;
const env0_20 = r39;
const moduleValue8 = reanimatedRexportModule;
useAnimatedReaction = moduleValue8.useAnimatedReaction;
closure = VoicePanelAnimatedActivityCardInnerUe;
object4 = {activityParticipantId: r39, focused: focused, mode: mode};
object4.VoicePanelModes = VoicePanelModes;
closure.__closure = object4;
closure.__workletHash = 2833167890519;
closure.__initData = env0_20;
const closure3 = VoicePanelAnimatedActivityCardInnerLe;
closure3.__closure = {runOnJS: reanimatedRexportModule.runOnJS, setIsActivityFocused: property4};
closure3.__workletHash = 12291590020155;
closure3.__initData = env0_21;
Reflect.apply(useAnimatedReaction, moduleValue8, [closure, closure3]);
const value23 = env0_4.useMemo(function() {
var Gesture = require(dependencyMap[25]).Gesture;
return Gesture.Tap();
}, []);
const value24 = env0_4.useCallback(_fun118660, [layoutManager, applicationId]);
env0_4.useLayoutEffect(_fun118661, [value24, windowDimensions, gridOrientationLockState, r2]);
binding = env0_4;
useState = binding.useState;
const getDefaultTargetDimensions = layoutManager.getDefaultTargetDimensions;
const value26 = env0_3(Reflect.apply(useState, binding, [Reflect.apply(getDefaultTargetDimensions, layoutManager,
[])]), 2);
const property5 = value26[0];
const property6 = value26[1];
const env0_22 = property6;
const value27 = env0_4.useCallback(_fun118662, [layoutManager, property6]);
const env0_23 = value27;
const moduleValue9 = reanimatedRexportModule;
useAnimatedReaction = moduleValue9.useAnimatedReaction;
closure = function() {
return windowDimensions.get();
};
closure.__closure = {windowDimensions: windowDimensions};
closure.__workletHash = 12220613662042;
closure.__initData = env0_22;
const closure4 = VoicePanelAnimatedActivityCardInnerPe;
closure4.__closure = {runOnJS: reanimatedRexportModule.runOnJS, handleTargetAspectRatioParams: value24,
gridOrientationLockState: gridOrientationLockState, hasJoined: r2, updateNotJoinedActivityDimensions: value27};
closure4.__workletHash = 13125606009235;
closure4.__initData = env0_23;
Reflect.apply(useAnimatedReaction, moduleValue9, [closure, closure4]);
const isTabletActivitySurface = (require(10703) /* metro dependency 10703: getDefaultOrientationLockState */).getIsTabletActivitySurface();
const env0_24 = isTabletActivitySurface;
const backgroundColor = styles.activityContainerBackground.backgroundColor;
const moduleValue11 = reanimatedRexportModule;
const useAnimatedStyle = moduleValue11.useAnimatedStyle;
closure = Ce;
closure.__closure = {IS_IOS: IS_IOS, animatedKeyboardHeight: value6, windowDimensions: windowDimensions,
isTabletActivitySurface: isTabletActivitySurface, focusedOrientationLockState: focusedOrientationLockState,
OrientationLockState: OrientationLockState, ACTIVITY_PORTRAIT_ASPECT_RATIO: ACTIVITY_PORTRAIT_ASPECT_RATIO,
isActivityFocused: property3, backgroundColor: backgroundColor};
closure.__workletHash = 13392050824169;
closure.__initData = env0_24;
const value29 = Reflect.apply(useAnimatedStyle, moduleValue11, [closure]);
const showActivitiesDebugOverlay = (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelCallLifecycleStore],
function() {
return ChannelCallLifecycleStore.getShowActivitiesDebugOverlay();
});
const value30 = env0_4.useMemo(_fun118667, [controlsSpecs, property3, hideControls]);
if (channel == null) {
return null;
}
if (r2) {
object4 = {gesture: value30};
ReanimatedNativeView = importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */;
object2 = {layout: layout};
r13 = property3 ? 'auto' : 'none';
object2.pointerEvents = r13;
object2.style = value29;
items2 = [((Component) => <Component channel={channel} layoutMode={property3 ? ActivityLayoutMode.FOCUSED : ActivityLayoutMode.GRID} key={property} />)(importDefault(10704) /* metro dependency 10704: EmbeddedActivityView */)];
r13 = showActivitiesDebugOverlay ? ((Component) => <Component />)(importDefault(15498) /* metro dependency 15498: ActivitiesDebugOverlay */) : null;
items2[1] = r13;
r5 = <GestureDetector {...object4}><ReanimatedNativeView {...object2}>{items2}</ReanimatedNativeView></GestureDetector>;
} else {
r5 = value9 == null ? ((Component) => <Component activity={value13} application={property2} />)(importDefault(15499) /* metro dependency 15499: ActivityItemMissingCard */) : <GestureDetector gesture={value23}>{((Component) => <Component context={value7} guildId={channel.guild_id} activityItem={value9} locationObject={value14.location} itemDimensions={property5} disableBadges />)(importDefault(15503) /* metro dependency 15503: ActivityShelfItem */)}</GestureDetector>;
}
const AnalyticsLocationProvider = (require(6771) /* metro dependency 6771: useAnalyticsLocations */).AnalyticsLocationProvider;
return (
<AnalyticsLocationProvider value={analyticsLocations}>
{r5}
</AnalyticsLocationProvider>
);
}
function VoicePanelAnimatedActivityCard(a0) { // fn#118669, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:8950, offset: 0x024e74b6, size: 89 bytes, params: 2, frame: 17
const ThemeContextProvider = (require(3868) /* metro dependency 3868: native */).ThemeContextProvider;
const DARK = ThemeTypes.DARK;
return (
<ThemeContextProvider theme={DARK}>
<VoicePanelAnimatedActivityCardInner {...a0} />
</ThemeContextProvider>
);
}
function _fun118647() { // fn#118647, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:4294, offset: 0x024e6e10, size: 51 bytes, params: 1, frame: 13
const value = environment.__proto__;
(require(7860) /* metro dependency 7860: EmbeddedActivitiesActionCreators */).fetchShelf({guildId: guild_id});
}
function _fun118649() { // fn#118649, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:4674, offset: 0x024e6e7b, size: 92 bytes, params: 1, frame: 14
var environment;
var r0;
let value = environment.__proto__;
const getEmbeddedActivitiesForChannel = EmbeddedActivitiesStore.getEmbeddedActivitiesForChannel;
const value4 = Reflect.apply(getEmbeddedActivitiesForChannel, EmbeddedActivitiesStore, [channelId]).find(_fun118650);
if (value4 != null) {
r0 = value4;
} else {
value = EmbeddedActivitiesStore.getEmbeddedActivitiesForStartingChannel(channelId);
value = value.find(_fun118651);
r0 = value;
}
return r0;
}
function _fun118652(a0) { // fn#118652, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:5088, offset: 0x024e6f00, size: 41 bytes, params: 2, frame: 11
const value = environment.__proto__;
return (require(12711) /* metro dependency 12711: isActivityParticipantCurrentUserCurrentSession */).isActivityParticipantCurrentUserCurrentSession(a0);
}
function _fun118653() { // fn#118653, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:5171, offset: 0x024e6f29, size: 34 bytes, params: 1, frame: 11
if (env0_16) {
env0_2(function(a0) {
return typeof a0 === 'bigint' ? a0 + 1n : +a0 + 1;
});
}
}
function VoicePanelAnimatedActivityCardInnerQ({visible, mode}, a1) { // fn#118656, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:5357, owner: VoicePanelAnimatedActivityCardInner.Q, offset: 0x024e6f7d, size: 157 bytes, params: 3, frame: 14
let value = visible === 1;
let r0 = value && a1 != null && a1.visible === 0;
if (!r0) {
value = environment.__proto__;
r0 = mode !== VoicePanelModes.PIP && a1?.mode === VoicePanelModes.PIP;
}
if (r0) {
value = environment.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value.runOnJS(env0_17)();
}
}
function VoicePanelAnimatedActivityCardInnerUe() { // fn#118657, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:5837, owner: VoicePanelAnimatedActivityCardInner.ue, offset: 0x024e701a, size: 86 bytes, params: 1, frame: 12
var value6;
var value;
let r0 = env0_20 != null && focused.get()?.id === env0_20;
if (r0) {
value = mode.get();
value6 = environment.__proto__;
value = value === VoicePanelModes.PANEL;
r0 = value;
}
return r0;
}
function VoicePanelAnimatedActivityCardInnerLe(a0, a1) { // fn#118658, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:6056, owner: VoicePanelAnimatedActivityCardInner.le, offset: 0x024e7070, size: 61 bytes, params: 3, frame: 13
var value;
if (a0 !== a1) {
value = environment.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value.runOnJS(env0_19)(a0);
}
}
function _fun118660(a0, a1, a2) { // fn#118660, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:6286, offset: 0x024e70d8, size: 195 bytes, params: 4, frame: 14
var value;
var layoutManagerBinding;
if (a2) {
value = environment.__proto__;
if (OrientationLockState.LANDSCAPE === a1) {
layoutManagerBinding = layoutManager;
layoutManagerBinding.setTargetAspectRatio(applicationId, 'landscape');
} else if (OrientationLockState.PORTRAIT === a1) {
layoutManagerBinding = layoutManager;
layoutManagerBinding.setTargetAspectRatio(applicationId, 'portrait');
} else if (OrientationLockState.UNLOCKED === a1) {
layoutManagerBinding = layoutManager;
layoutManagerBinding.setTargetAspectRatio(applicationId, a0 ? 'landscape' : 'portrait');
} else if (a1 === null) {
layoutManagerBinding = layoutManager;
layoutManagerBinding.setTargetAspectRatio(applicationId, a0 ? 'landscape' : 'portrait');
}
} else {
layoutManagerBinding = layoutManager;
layoutManagerBinding.setTargetAspectRatio(applicationId, 'square');
}
}
function _fun118661() { // fn#118661, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:6576, offset: 0x024e719b, size: 73 bytes, params: 1, frame: 15
let value = environment.__proto__;
value = require(1478) /* metro dependency 1478: useWindowDimensionsNative */;
value = value.getWindowDimensions();
value = value.width > value.height;
env0_21(value, gridOrientationLockState, env0_16);
}
function _fun118662() { // fn#118662, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:6768, offset: 0x024e71e4, size: 30 bytes, params: 1, frame: 11
env0_22(layoutManager.getDefaultTargetDimensions());
}
function VoicePanelAnimatedActivityCardInnerPe(a0, a1) { // fn#118664, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:6952, owner: VoicePanelAnimatedActivityCardInner.pe, offset: 0x024e7202, size: 142 bytes, params: 3, frame: 16
var value2;
const landscape2 = a0.landscape;
const value = undefined;
if (landscape2 !== (a1 == null ? value : a1.landscape)) {
value2 = environment.__proto__;
(require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS(env0_21)(a0.landscape,
gridOrientationLockState, env0_16);
}
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
reanimatedRexportModule.runOnJS(env0_23)();
return value;
}
function Ce() { // fn#118665, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:7406, owner: VoicePanelAnimatedActivityCardInner.Ce, offset: 0x024e7290, size: 283 bytes, params: 1, frame: 18
var r5;
let value = environment.__proto__;
const value2 = 0;
const r3 = IS_IOS ? env0_10.get() : value2;
const windowDimensionsBinding = windowDimensions;
let get = windowDimensionsBinding.get;
const landscape = Reflect.apply(get, windowDimensionsBinding, []).landscape;
get = windowDimensionsBinding.get;
const width = Reflect.apply(get, windowDimensionsBinding, []).width;
get = windowDimensionsBinding.get;
const height = Reflect.apply(get, windowDimensionsBinding, []).height;
let r1 = env0_24 && focusedOrientationLockState === OrientationLockState.LANDSCAPE && !landscape;
if (r1) {
value = (height - width * ACTIVITY_PORTRAIT_ASPECT_RATIO) / 2;
r1 = value2;
r5 = value;
} else if (env0_24 && focusedOrientationLockState === OrientationLockState.PORTRAIT && landscape) {
r1 = (width - height * ACTIVITY_PORTRAIT_ASPECT_RATIO) / 2;
r5 = value2;
} else {
r1 = value2;
r5 = value2;
}
value = 'auto';
return {flex: env0_18 ? value2 : 1, backgroundColor: backgroundColor, paddingVertical: r5, paddingHorizontal: r1,
width: env0_18 ? width : value, height: env0_18 ? height - r3 : value, maxHeight: '100%', maxWidth: '100%'};
}
function _fun118667() { // fn#118667, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:8092, offset: 0x024e73ab, size: 162 bytes, params: 1, frame: 18
const Gesture = (require(5321) /* metro dependency 5321 */).Gesture;
const value4 = Gesture.Manual().enabled(env0_18);
const onTouchesDown = value4.onTouchesDown;
const closure = t_118668;
const object2 = {};
object2.controlsSpecs = controlsSpecs;
object2.VoicePanelControlsModes = VoicePanelControlsModes;
object2.runOnJS = (require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS;
object2.hideControls = hideControls;
closure.__closure = object2;
closure.__workletHash = 14924492513532;
closure.__initData = env1_25;
return Reflect.apply(onTouchesDown, value4, [closure]);
}
function _fun118650({applicationId}) { // fn#118650, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:4744, offset: 0x024e6ed7, size: 41 bytes, params: 2, frame: 4
return applicationId === env1_13?.id;
}
function t_118668(a0, a1) { // fn#118668, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15693:8160, offset: 0x024e744d, size: 105 bytes, params: 3, frame: 12
var moduleValue;
a1.fail();
const value = environment.__proto__;
const controlsSpecsBinding = controlsSpecs;
const get = controlsSpecsBinding.get;
const mode = Reflect.apply(get, controlsSpecsBinding, []).mode;
const HIDDEN = VoicePanelControlsModes.HIDDEN;
if (mode !== HIDDEN) {
moduleValue = require(4017) /* metro dependency 4017: ReanimatedRexport */;
moduleValue.runOnJS(hideControls)({debounce: true});
}
}
@@ -0,0 +1,104 @@
/* Metro module 15494; source: modules/voice_panel/native/card/VoicePanelCTACardCallerDisconnected.tsx; dependencies: [57, 31, 1226, 1379, 1878, 33, 4501, 697, 11794, 566, 4617, 6821, 5475, 4573, 1244, 2] */
function _fun118635(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118635, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15691:6, offset: 0x024e58e0, size: 445 bytes, params: 8, frame: 24
var object2;
const env0_0 = require;
const getSourceFromURI = function(a0) {
var value = a0;
return typeof value === 'number' ? value : {uri: value};
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
let value = importAll(31) /* metro dependency 31 */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const value2 = require(33) /* metro dependency 33 */;
const env0_8 = value2.jsx;
const env0_9 = value2.jsxs;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {};
const VOICE_VIDEO_VIDEO_TILE_BACKGROUND = (importDefault(697) /* metro dependency 697: native */).colors.VOICE_VIDEO_VIDEO_TILE_BACKGROUND;
object2.container = {'width': '100%', 'height': '100%', 'alignItems': 'center', 'justifyContent': 'center',
backgroundColor: VOICE_VIDEO_VIDEO_TILE_BACKGROUND};
object2.avatarContainer = {'flexDirection': 'row', 'gap': 24};
const object4 = {'width': 80, 'height': 80, 'borderRadius': null, 'overflow': 'hidden'};
object4.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object2.avatarWrapper = object4;
object2.avatar = {'width': 80, 'height': 80};
object2.disconnectedAvatar = {opacity: 0.2};
object2.textContainer = {'position': 'absolute', 'left': 0, 'right': 0, 'bottom': 0, 'padding': 16, 'width': '100%'};
object2.text = {textAlign: 'center'};
const env0_10 = Reflect.apply(createStyles, createStylesModule, [object2]);
value = value.memo(VoicePanelCTACardCallerDisconnected);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/card/VoicePanelCTACardCallerDisconnected.tsx');
exports.default = value;
}
function VoicePanelCTACardCallerDisconnected() { // fn#118637, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15691:726, offset: 0x024e5ab9, size: 819 bytes, params: 1, frame: 31
var r8;
var NativeView;
var FastImage;
let binding = env0_4;
const useContext = binding.useContext;
const value2 = undefined;
const channelId = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).channelId;
const styles = useStyles();
const channel = ChannelStore.getChannel(channelId);
const r2 = (channel == null ? value2 : channel.recipients) ?? [];
binding = env0_3;
let property = binding(r2, 1)[0];
const id = AuthenticationStore.getId();
const fluxModule = require(566) /* metro dependency 566: flux */;
const useStateFromStoresArray = fluxModule.useStateFromStoresArray;
const value7 = binding(Reflect.apply(useStateFromStoresArray, fluxModule, [[UserStore], _fun118638, [channelId, id,
property]]), 3);
property = value7[0];
const property2 = value7[1];
const property3 = value7[2];
const NativeView2 = importDefault(6821) /* metro dependency 6821: NativeView */;
const defaultImport2 = NativeView2;
const items2 = [property != null && <NativeView2 style={styles.avatarWrapper}>{((Component) => <Component source={getSourceFromURI(property)} style={styles.avatar} />)(importDefault(5475) /* metro dependency 5475: FastImage */)}</NativeView2>];
const value10 = property2 != null;
if (value10) {
NativeView = NativeView2;
var defaultImport5Props = {style: styles.avatarWrapper};
FastImage = importDefault(5475) /* metro dependency 5475: FastImage */;
r8 = <NativeView {...defaultImport5Props}><FastImage source={getSourceFromURI(property2)} style={[styles.avatar,
styles.disconnectedAvatar]} /></NativeView>;
} else {
r8 = value10;
}
items2[1] = r8;
const defaultImport22 = ((Component) => <Component style={styles.avatarContainer}>{items2}</Component>)(defaultImport2);
const defaultImport7 = NativeView2;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const WkAgPU = (require(1244) /* metro dependency 1244: indexNative */).t.WkAgPU;
return (
<NativeView2 style={styles.container}>
{defaultImport22}
{((Component) => <Component style={styles.textContainer}><Text style={styles.text} variant="heading-sm/semibold" color="always-white">{Reflect.apply(string,
intl,
[WkAgPU])}</Text>{property3 != null && <Text style={styles.text} variant="text-xs/medium" color="always-white">{intl.format((require(1244) /* metro dependency 1244: indexNative */).t.kXrAqz,
{username: property3})}</Text>}</Component>)(defaultImport7)}
</NativeView2>
);
}
function _fun118638() { // fn#118638, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15691:947, offset: 0x024e5dec, size: 147 bytes, params: 1, frame: 19
let value = environment.__proto__;
const user = UserStore.getUser(env0_2);
const user2 = UserStore.getUser(env0_1);
const value5 = undefined;
const items2 = [user == null ? value5 : user.getAvatarURL(value5, 80)];
items2[1] = user2 == null ? value5 : user2.getAvatarURL(value5, 80);
value = importDefault(4617) /* metro dependency 4617: NicknameUtils */;
const getName = value.getName;
items2[2] = Reflect.apply(getName, value, [value5, channelId, user2]);
return items2;
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,22 @@
/* Metro module 11798; source: modules/voice_panel/native/card/VoicePanelCardConstants.tsx; dependencies: [697, 2] */
function _fun90382(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#90382, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11984:6, offset: 0x020371cd, size: 187 bytes, params: 8, frame: 17
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/card/VoicePanelCardConstants.tsx');
exports.CARD_SIZE = 165;
exports.CALL_TILE_GUTTER = 12;
exports.EDGE_GUTTER = 12;
exports.getCallTileGutter = getCallTileGutter;
exports.getEdgeGutter = getEdgeGutter;
exports.CARD_BACKGROUND_OPACITY_ANDROID = 0.32;
exports.VOICE_PANEL_CONTROLS_OPACITY_ANDROID = 0.54;
exports.VOICE_PANEL_CARD_INNER_PADDING = 8;
}
function getCallTileGutter() { // fn#90383, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11984:260, offset: 0x02037288, size: 72 bytes, params: 1, frame: 13
const value = a0;
const r3 = value !== undefined ? value : [];
const VOICE_PANEL_GUTTER = (importDefault(697) /* metro dependency 697: native */).modules.mobile.VOICE_PANEL_GUTTER;
return VOICE_PANEL_GUTTER.resolve({enabledExperiments: r3});
}
@@ -0,0 +1,697 @@
/* Metro module 15505; source: modules/voice_panel/native/card/VoicePanelCardFloatingControls.tsx; dependencies: [31, 27, 4502, 1378, 4492, 4294, 11795, 11793, 11798, 661, 4299, 33, 4017, 1305, 4501, 697, 1357, 11794, 15460, 15506, 10890, 15507, 15458, 10273, 9244, 6821, 7684, 1244, 9245, 4577, 15456, 8913, 4285, 8092, 15388, 15508, 15509, 566, 15492, 8141, 15510, 3868, 4559, 6771, 8743, 9256, 4635, 8699, 4573, 9299, 9322, 15433, 2] */
function _fun118699(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118699, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:6, offset: 0x024e8f12, size: 890 bytes, params: 8, frame: 22
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 */;
value2.Platform;
const Pressable = value2.Pressable;
const accessibilityStore = importDefault(4502) /* metro dependency 4502: AccessibilityStore */;
const embeddedActivitiesStore = importDefault(1378) /* metro dependency 1378: EmbeddedActivitiesStore */;
const applicationStreamingStore = importDefault(4492) /* metro dependency 4492: ApplicationStreamingStore */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const voicePanelConstantsModule = require(11795) /* metro dependency 11795: VoicePanelConstants */;
const env0_9 = voicePanelConstantsModule.MODE_CHANGE_PHYSICS;
const env0_10 = voicePanelConstantsModule.VoicePanelModes;
const env0_11 = (require(11793) /* metro dependency 11793: VoicePanelControlsConstants */).VoicePanelControlsModes;
const env0_12 = (require(11798) /* metro dependency 11798: VoicePanelCardConstants */).VOICE_PANEL_CARD_INNER_PADDING;
const env0_13 = (require(661) /* metro dependency 661: Constants */).ThemeTypes;
const callConstantsModule = require(4299) /* metro dependency 4299: CallConstants */;
const env0_14 = callConstantsModule.ParticipantTypes;
const env0_15 = callConstantsModule.VoicePlatforms;
const value5 = require(33) /* metro dependency 33 */;
const env0_16 = value5.jsx;
const env0_17 = value5.jsxs;
const env0_18 = value5.Fragment;
const reanimatedRexport = importDefault(4017) /* metro dependency 4017: ReanimatedRexport */;
const createAnimatedComponent = reanimatedRexport.createAnimatedComponent;
const Icon = (require(1305) /* metro dependency 1305: native */).Icon;
const env0_19 = Reflect.apply(createAnimatedComponent, reanimatedRexport, [Icon]);
const env0_20 = reanimatedRexport.createAnimatedComponent(Pressable);
const env0_21 = (require(4501) /* metro dependency 4501: createStyles */).createStyles(_fun118706);
object = {code: 'function VoicePanelCardFloatingControlsTsx1(){const{controlsSpecs,VoicePanelControlsModes,GAP}=this.__closure;const hidden=controlsSpecs.get().mode===VoicePanelControlsModes.HIDDEN;return{marginLeft:hidden?2:GAP,marginRight:hidden?2:0};}'};
object = {code: "function VoicePanelCardFloatingControlsTsx2(){const{controlsHidden,FLOATING_BAR_HEIGHT,VOICE_PANEL_CARD_INNER_PADDING,withSpring,MODE_CHANGE_PHYSICS}=this.__closure;const hidden=controlsHidden.get();return{position:'absolute',top:hidden?-(FLOATING_BAR_HEIGHT+VOICE_PANEL_CARD_INNER_PADDING*2):VOICE_PANEL_CARD_INNER_PADDING,left:VOICE_PANEL_CARD_INNER_PADDING,opacity:withSpring(hidden?0:1,MODE_CHANGE_PHYSICS),zIndex:1};}"};
const env0_24 = value.memo(_fun118707);
object = {code: "function VoicePanelCardFloatingControlsTsx3(){const{controlsHidden,mode,VoicePanelModes,FLOATING_BAR_HEIGHT,VOICE_PANEL_CARD_INNER_PADDING,withSpring,MODE_CHANGE_PHYSICS}=this.__closure;const hidden=controlsHidden.get()||mode.get()===VoicePanelModes.PIP;return{position:'absolute',top:hidden?-(FLOATING_BAR_HEIGHT+VOICE_PANEL_CARD_INNER_PADDING*2):VOICE_PANEL_CARD_INNER_PADDING,right:VOICE_PANEL_CARD_INNER_PADDING,opacity:withSpring(hidden?0:1,MODE_CHANGE_PHYSICS),zIndex:1};}"};
const env0_26 = value.memo(_fun118711);
const env0_27 = {'mass': 0.1, 'stiffness': 400, 'overshootClamping': true};
object = {code: 'function VoicePanelCardFloatingControlsTsx4(){const{flip}=this.__closure;return flip.get();}'};
object = {code: "function VoicePanelCardFloatingControlsTsx5(flipped){const{angle,withSpring,getRandomNumberInRange,RING_PHYSICS,flip}=this.__closure;if(flipped){angle.set(withSpring(getRandomNumberInRange(45-10,45+10),RING_PHYSICS,'respect-motion-settings',function(finished){if(!finished)return;flip.set(!flip.get());}));}else{angle.set(withSpring(getRandomNumberInRange(0-10,0+10),RING_PHYSICS,'respect-motion-settings',function(finished){if(!finished)return;flip.set(!flip.get());}));}}"};
object = {code: 'function VoicePanelCardFloatingControlsTsx6(finished){const{flip}=this.__closure;if(!finished)return;flip.set(!flip.get());}'};
object = {code: 'function VoicePanelCardFloatingControlsTsx7(finished){const{flip}=this.__closure;if(!finished)return;flip.set(!flip.get());}'};
object = {code: 'function VoicePanelCardFloatingControlsTsx8(){const{controlsHidden,FLOATING_BAR_HEIGHT,VOICE_PANEL_CARD_INNER_PADDING}=this.__closure;return{top:controlsHidden.get()?-(FLOATING_BAR_HEIGHT+VOICE_PANEL_CARD_INNER_PADDING*2):0};}'};
object = {code: 'function VoicePanelCardFloatingControlsTsx9(){const{angle}=this.__closure;return{transform:[{rotate:angle.get()+"deg"}]};}'};
const env0_34 = value.memo(_fun118714);
const env0_35 = value.memo(_fun118722);
object = {code: 'function VoicePanelCardFloatingControlsTsx10(){const{hasHiddenVisibleIcon,focused,connected,mode,VoicePanelModes,controlsHidden}=this.__closure;const showIcon=hasHiddenVisibleIcon&&focused.get()==null;return!connected.get()||mode.get()===VoicePanelModes.PIP||!showIcon&&controlsHidden.get();}'};
object = {code: 'function VoicePanelCardFloatingControlsTsx11(){const{isPillHidden}=this.__closure;return isPillHidden.get();}'};
object = {code: 'function VoicePanelCardFloatingControlsTsx12(hidden){const{pillOpacity,withSpring,MODE_CHANGE_PHYSICS}=this.__closure;pillOpacity.set(withSpring(hidden?0:1,MODE_CHANGE_PHYSICS));}'};
object = {code: "function VoicePanelCardFloatingControlsTsx13(){const{pillOpacity,isPillHidden,FLOATING_BAR_HEIGHT,VOICE_PANEL_CARD_INNER_PADDING}=this.__closure;return{opacity:pillOpacity.get(),top:isPillHidden.get()?FLOATING_BAR_HEIGHT+VOICE_PANEL_CARD_INNER_PADDING:0,height:FLOATING_BAR_HEIGHT,pointerEvents:isPillHidden.get()?'none':'auto'};}"};
object = {code: "function VoicePanelCardFloatingControlsTsx14(){const{connected,isScreenReaderEnabled,controlsSpecs,VoicePanelControlsModes,hasIcon,GAP}=this.__closure;const hidden=!connected.get()||!isScreenReaderEnabled&&controlsSpecs.get().mode===VoicePanelControlsModes.HIDDEN&&hasIcon;const shouldCollapseWidth=hidden&&hasIcon;return{width:shouldCollapseWidth?0:'auto',marginRight:hidden?-GAP:0};}"};
const env0_41 = value.memo(_fun118723);
object = {code: 'function VoicePanelCardFloatingControlsTsx15(){const{controlsSpecs,VoicePanelControlsModes,focused,mode,VoicePanelModes}=this.__closure;return controlsSpecs.get().mode===VoicePanelControlsModes.HIDDEN||focused.get()!=null||mode.get()===VoicePanelModes.PIP;}'};
value = value.memo(FloatingControls);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/card/VoicePanelCardFloatingControls.tsx');
exports.default = value;
}
function StreamIcon({voicePlatform}) { // fn#118700, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:2008, offset: 0x024e928c, size: 345 bytes, params: 2, frame: 20
const styles = useStyles((importDefault(1357) /* metro dependency 1357: MobileVisualRefreshExperiment */)('VoicePanelCardFloatingControls'));
const binding = env0_3;
const useContext = binding.useContext;
const controlsSpecs = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).controlsSpecs;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
const closure = StreamIconO;
closure.__closure = {controlsSpecs: controlsSpecs, VoicePanelControlsModes: VoicePanelControlsModes, GAP: 4};
closure.__workletHash = 3270040588948;
closure.__initData = env0_22;
const value3 = Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
const defaultImport2 = importDefault(15460) /* metro dependency 15460 */;
const XBOX = VoicePlatforms.XBOX;
return ((Component) => <Component source={voicePlatform === XBOX ? importDefault(15506) /* metro dependency 15506 */ : voicePlatform === VoicePlatforms.MOBILE ? importDefault(10890) /* metro dependency 10890 */ : voicePlatform !== VoicePlatforms.QUEST ? defaultImport2 : importDefault(15507) /* metro dependency 15507 */} style={[styles.iconWithoutBackground,
value3]} />)(env0_19);
}
function AnimatedLabelIcon({icon}) { // fn#118702, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:2511, offset: 0x024e942a, size: 723 bytes, params: 2, frame: 23
const styles = useStyles((importDefault(1357) /* metro dependency 1357: MobileVisualRefreshExperiment */)('VoicePanelCardFloatingControls'));
const type = icon.type;
const VoicePanelCardUserStateIconType = (require(15458) /* metro dependency 15458: useVoicePanelCardUserStateIcons */).VoicePanelCardUserStateIconType;
const STREAM_ICON = VoicePanelCardUserStateIconType.STREAM_ICON;
if (STREAM_ICON === type) {
return <StreamIcon voicePlatform={icon.voicePlatform} />;
}
const SPEAKER_MUTE_ICON = VoicePanelCardUserStateIconType.SPEAKER_MUTE_ICON;
if (SPEAKER_MUTE_ICON === type) {
return (
<Pressable
style={styles.speakerMuteIcon}
hitSlop={12}
onPress={icon.onPress}
>
{((VoiceXIcon) => <VoiceXIcon style={styles.iconWithoutBackground} />)((require(10273) /* metro dependency 10273: VoiceXIcon */).VoiceXIcon)}
</Pressable>
);
}
const USER_VIDEO_ICON = VoicePanelCardUserStateIconType.USER_VIDEO_ICON;
if (USER_VIDEO_ICON === type) {
return (
<Pressable style={styles.iconContainer} onPress={icon.onPress}>
{((VideoIcon) => <VideoIcon style={styles.icon} state={icon.videoIconState} />)((require(9244) /* metro dependency 9244: VoiceStateIcons */).VideoIcon)}
</Pressable>
);
}
const MUTE_DEAFEN_ICON = VoicePanelCardUserStateIconType.MUTE_DEAFEN_ICON;
if (MUTE_DEAFEN_ICON === type) {
return ((Component) => <Component style={styles.iconContainer}><Pressable onPress={icon.onPress} hitSlop={12}>{((MuteDeafenIcon) => <MuteDeafenIcon style={styles.icon} state={icon.muteDeafenIconState} alwaysWhite />)((require(9244) /* metro dependency 9244: VoiceStateIcons */).MuteDeafenIcon)}</Pressable></Component>)(importDefault(6821) /* metro dependency 6821: NativeView */);
}
const USER_DISCONNECTED_ICON = VoicePanelCardUserStateIconType.USER_DISCONNECTED_ICON;
if (USER_DISCONNECTED_ICON === type) {
return (
<Pressable style={styles.iconContainer} onPress={icon.onPress}>
{((CircleErrorIcon) => <CircleErrorIcon size="xs" color={(importDefault(697) /* metro dependency 697: native */).colors.TEXT_FEEDBACK_WARNING} />)((require(7684) /* metro dependency 7684: CircleErrorIcon */).CircleErrorIcon)}
</Pressable>
);
}
}
function getAccessibilityLabel_118703(a0, a1) { // fn#118703, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:3572, offset: 0x024e96fd, size: 343 bytes, params: 3, frame: 17
var muteDeafenIconState;
const MuteDeafenIconState = (require(9245) /* metro dependency 9245: VoiceStateIconUtils */).MuteDeafenIconState;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
if (a0.find(function({type}) {
return type === require(dependencyMap[22]).VoicePanelCardUserStateIconType.STREAM_ICON;
}) != null) {
return intl.formatToPlainString(t.I0mOAs, {username: a1});
}
value = a0.find(function({type}) {
return type === require(dependencyMap[22]).VoicePanelCardUserStateIconType.MUTE_DEAFEN_ICON;
});
if (value != null) {
muteDeafenIconState = value.muteDeafenIconState;
if (MuteDeafenIconState.DEAFENED === muteDeafenIconState) {
return intl.formatToPlainString(t['9hDjai'], {username: a1});
}
if (MuteDeafenIconState.DEAFENED_SERVER === muteDeafenIconState) {
return intl.formatToPlainString(t['9hDjai'], {username: a1});
}
return intl.formatToPlainString(t.Hd1oVG, {username: a1});
}
return a1;
}
function _fun118706(a0) { // fn#118706, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:543, offset: 0x024e98ba, size: 450 bytes, params: 2, frame: 16
const object3 = {labelPositionContainer: {'position': 'absolute', 'left': 8, 'right': 8, 'bottom': 8,
'justifyContent': 'center', 'alignItems': 'center', 'marginHorizontal': 8}};
const object4 = {'display': 'flex', 'flexDirection': 'row', 'justifyContent': 'flex-start', 'alignItems': 'center',
'borderRadius': null, 'overflow': 'hidden', 'paddingHorizontal': 8, 'backgroundColor': null, 'height': 28,
'gap': 4};
const radii = (importDefault(697) /* metro dependency 697: native */).radii;
object4.borderRadius = a0 ? radii.sm : radii.round;
const CONTROL_OVERLAY_SECONDARY_BACKGROUND_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.CONTROL_OVERLAY_SECONDARY_BACKGROUND_DEFAULT;
object4.backgroundColor = CONTROL_OVERLAY_SECONDARY_BACKGROUND_DEFAULT;
object3.labelOuterContainer = object4;
object3.initialIcons = {'display': 'flex', 'flexDirection': 'row', 'marginStart': -4, 'marginEnd': -4};
let WHITE = (importDefault(697) /* metro dependency 697: native */).colors.WHITE;
object3.icon = {'width': 12, 'height': 12, tintColor: WHITE};
WHITE = (importDefault(697) /* metro dependency 697: native */).colors.WHITE;
object3.iconWithoutBackground = {'width': 16, 'height': 16, tintColor: WHITE};
const object6 = {'width': 20, 'height': 20, 'borderRadius': null, 'alignItems': 'center',
'justifyContent': 'center'};
object6.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object3.iconContainer = object6;
object3.speakerMuteIcon = {marginRight: 4};
object3.floatingContainer = {'flexDirection': 'row', 'alignItems': 'center', 'gap': 4, 'overflow': 'hidden',
'flexShrink': 1};
object3.floatingText = {'overflow': 'hidden', 'paddingStart': 4, 'paddingEnd': 4, 'flexShrink': 1, 'lineHeight': 14};
const object8 = {'position': 'absolute', 'top': 8, 'right': 8, 'padding': 6};
object8.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
const BACKGROUND_SURFACE_HIGH = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_SURFACE_HIGH;
object8.backgroundColor = BACKGROUND_SURFACE_HIGH;
object3.ringingIconContainer = object8;
const STATUS_POSITIVE = (importDefault(697) /* metro dependency 697: native */).colors.STATUS_POSITIVE;
object3.ringingIcon = {tintColor: STATUS_POSITIVE};
object3.secureFramesIcon = {marginEnd: -2};
return object3;
}
function _fun118707({participant, controlsHidden, isSelf, layout}) { // fn#118707, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:4611, offset: 0x024e9a7c, size: 303 bytes, params: 2, frame: 22
var object2;
const binding = env0_3;
const useContext = binding.useContext;
const guildId = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).guildId;
const value2 = useTopLeftButtonStyles(controlsHidden);
const value3 = env0_3.useCallback(_fun118710, [guildId, participant]);
const VoicePanelIconButton = importDefault(15388) /* metro dependency 15388: VoicePanelIconButton */;
object2 = {icon: importDefault(15508) /* metro dependency 15508 */, onPress: value3, style: value2, layout: layout};
const isStableActivityParticipant2 = (require(15456) /* metro dependency 15456: useStableParticipant */).isStableActivityParticipant(participant);
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
object2.accessibilityLabel = isStableActivityParticipant2 ? Reflect.apply(string, intl,
[t['R/FK4A']]) : isSelf ? Reflect.apply(string, intl, [t.S5anIc]) : Reflect.apply(string, intl, [t.q3O3J8]);
return <VoicePanelIconButton {...object2} />;
}
function _fun118711({participantId, controlsHidden, targetName, isActivityParticipant, layout}) { // fn#118711, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:6204, offset: 0x024e9dbe, size: 529 bytes, params: 2, frame: 23
var object2;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const {setFocused,
mode} = env0_3.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
var env0_3 = mode;
const value3 = env0_3.useCallback(function() {
setFocused(participantId);
}, [setFocused, participantId]);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
const closure = __118713;
object2 = {controlsHidden: controlsHidden, mode: mode};
object2.VoicePanelModes = VoicePanelModes;
object2.FLOATING_BAR_HEIGHT = 28;
object2.VOICE_PANEL_CARD_INNER_PADDING = VOICE_PANEL_CARD_INNER_PADDING;
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.MODE_CHANGE_PHYSICS = MODE_CHANGE_PHYSICS;
closure.__closure = object2;
closure.__workletHash = 12421495364262;
closure.__initData = env0_25;
return ((Component) => <Component icon={importDefault(15509) /* metro dependency 15509 */} onPress={value3} style={Reflect.apply(useAnimatedStyle,
reanimatedRexportModule,
[closure])} layout={layout} accessibilityLabel={isActivityParticipant ? intl.string((require(1244) /* metro dependency 1244: indexNative */).t['3ejJer']) : targetName != null ? intl.formatToPlainString((require(1244) /* metro dependency 1244: indexNative */).t.OervdV,
{targetName: targetName}) : intl.string((require(1244) /* metro dependency 1244: indexNative */).t['77cRN4'])} />)(importDefault(15388) /* metro dependency 15388: VoicePanelIconButton */);
}
function _fun118714({controlsHidden}) { // fn#118714, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:8314, offset: 0x024ea071, size: 670 bytes, params: 2, frame: 27
var object2;
const styles = useStyles((importDefault(1357) /* metro dependency 1357: MobileVisualRefreshExperiment */)('VoicePanelCardFloatingControls'));
const value3 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(true);
const value4 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(0);
const useReducedMotion = (require(566) /* metro dependency 566: flux */).useStateFromStores([AccessibilityStore],
function() {
return AccessibilityStore.useReducedMotion;
});
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
let closure = o_118716;
closure.__closure = {flip: value3};
closure.__workletHash = 7663309832237;
closure.__initData = env0_28;
const closure2 = n_118717;
object2 = {angle: value4};
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.getRandomNumberInRange = importDefault(15492) /* metro dependency 15492: getRandomNumberInRange */;
object2.RING_PHYSICS = env0_27;
object2.flip = value3;
closure2.__closure = object2;
closure2.__workletHash = 15646860695268;
closure2.__initData = env0_29;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
const moduleValue5 = reanimatedRexportModule;
let useAnimatedStyle = moduleValue5.useAnimatedStyle;
closure = p_118720;
closure.__closure = {controlsHidden: controlsHidden, FLOATING_BAR_HEIGHT: 28,
VOICE_PANEL_CARD_INNER_PADDING: VOICE_PANEL_CARD_INNER_PADDING};
closure.__workletHash = 726627995932;
closure.__initData = env0_32;
const value5 = Reflect.apply(useAnimatedStyle, moduleValue5, [closure]);
const moduleValue6 = reanimatedRexportModule;
useAnimatedStyle = moduleValue6.useAnimatedStyle;
closure = C_118721;
closure.__closure = {angle: value4};
closure.__workletHash = 791392364030;
closure.__initData = env0_33;
const value6 = Reflect.apply(useAnimatedStyle, moduleValue6, [closure]);
const ReanimatedNativeView = importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */;
const items2 = [value5];
items2[1] = styles.ringingIconContainer;
const defaultImport3 = ReanimatedNativeView;
const r7 = !useReducedMotion && value6;
const Icon = (require(1305) /* metro dependency 1305: native */).Icon;
const iconProps = {source: importDefault(15510) /* metro dependency 15510 */};
const IconSizes = (require(1305) /* metro dependency 1305: native */).IconSizes;
const SMALL_20 = IconSizes.SMALL_20;
iconProps.size = SMALL_20;
iconProps.style = styles.ringingIcon;
return (
<ReanimatedNativeView style={items2}>
{((Component) => <Component style={r7} pointerEvents="none"><Icon {...iconProps} /></Component>)(defaultImport3)}
</ReanimatedNativeView>
);
}
function _fun118722({controlsHidden}) { // fn#118722, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:9740, offset: 0x024ea4a6, size: 93 bytes, params: 2, frame: 17
const ThemeContextProvider = (require(3868) /* metro dependency 3868: native */).ThemeContextProvider;
const LIGHT = ThemeTypes.LIGHT;
return (
<ThemeContextProvider theme={LIGHT}>
{((Component) => <Component controlsHidden={controlsHidden} />)(env0_34)}
</ThemeContextProvider>
);
}
function _fun118723({controlsHidden, label, layout, participant}) { // fn#118723, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:11226, offset: 0x024ea503, size: 1616 bytes, params: 2, frame: 39
var r12;
var ShieldLockIcon;
var intl;
let binding = env0_3;
const value3 = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const guildId = value3.guildId;
const channelId = value3.channelId;
const controlsSpecs = value3.controlsSpecs;
const focused = value3.focused;
var env0_3 = focused;
const connected = value3.connected;
const mode = value3.mode;
const value4 = (require(4559) /* metro dependency 4559: useIsScreenReaderEnabledNative */).useIsScreenReaderEnabled();
const styles = useStyles((importDefault(1357) /* metro dependency 1357: MobileVisualRefreshExperiment */)('VoicePanelCardFloatingControls'));
const useStableParticipantModule = require(15456) /* metro dependency 15456: useStableParticipant */;
const id = useStableParticipantModule.isStableParticipantWithUser(participant) ? participant.user.id : undefined;
const value6 = env0_3.useCallback(_fun118724, [id, channelId,
(importDefault(6771) /* metro dependency 6771: useAnalyticsLocations */)().analyticsLocations]);
const value7 = (require(9256) /* metro dependency 9256: useIsSecureFramesVerified */).useIsUserSecureFramesVerified({userId: id,
channelId: channelId});
const defaultImport2 = importDefault(15458) /* metro dependency 15458: useVoicePanelCardUserStateIcons */;
let type = participant.type;
const moduleValue4 = useStableParticipantModule;
const value8 = defaultImport2(type,
moduleValue4.isStableParticipantWithUser(participant) ? participant.user.id : undefined, guildId, channelId);
const value10 = (require(8699) /* metro dependency 8699: useDisplayNameStylesFont */).useDisplayNameStylesFont({displayNameStyles: (importDefault(4635) /* metro dependency 4635: useDisplayNameStyles */)({userId: id,
guildId: guildId})});
const value12 = value8.length >= 1;
const value13 = value8.filter(function({type}) {
return type !== require(dependencyMap[22]).VoicePanelCardUserStateIconType.STREAM_ICON;
}).length >= 1;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useDerivedValue = reanimatedRexportModule.useDerivedValue;
let closure = c_118726;
closure.__closure = {hasHiddenVisibleIcon: value13, focused: focused, connected: connected, mode: mode,
VoicePanelModes: VoicePanelModes, controlsHidden: controlsHidden};
closure.__workletHash = 14354852732719;
closure.__initData = env0_36;
const value14 = Reflect.apply(useDerivedValue, reanimatedRexportModule, [closure]);
const moduleValue7 = reanimatedRexportModule;
const useSharedValue = moduleValue7.useSharedValue;
const get = value14.get;
const value16 = Reflect.apply(useSharedValue, moduleValue7, [Reflect.apply(get, value14, []) ? 0 : 1]);
const moduleValue8 = reanimatedRexportModule;
const useAnimatedReaction = moduleValue8.useAnimatedReaction;
closure = u_118727;
closure.__closure = {isPillHidden: value14};
closure.__workletHash = 653298163833;
closure.__initData = env0_37;
const closure2 = __118728;
object = {pillOpacity: value16};
object.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object.MODE_CHANGE_PHYSICS = MODE_CHANGE_PHYSICS;
closure2.__closure = object;
closure2.__workletHash = 158794425133;
closure2.__initData = env0_38;
Reflect.apply(useAnimatedReaction, moduleValue8, [closure, closure2]);
const moduleValue9 = reanimatedRexportModule;
let useAnimatedStyle = moduleValue9.useAnimatedStyle;
closure = Q_118729;
closure.__closure = {pillOpacity: value16, isPillHidden: value14, FLOATING_BAR_HEIGHT: 28,
VOICE_PANEL_CARD_INNER_PADDING: VOICE_PANEL_CARD_INNER_PADDING};
closure.__workletHash = 12355778282621;
closure.__initData = env0_39;
const value17 = Reflect.apply(useAnimatedStyle, moduleValue9, [closure]);
const moduleValue10 = reanimatedRexportModule;
useAnimatedStyle = moduleValue10.useAnimatedStyle;
closure = $_118730;
closure.__closure = {connected: connected, isScreenReaderEnabled: value4, controlsSpecs: controlsSpecs,
VoicePanelControlsModes: VoicePanelControlsModes, hasIcon: value12, GAP: 4};
closure.__workletHash = 10013340978870;
closure.__initData = env0_40;
const value18 = Reflect.apply(useAnimatedStyle, moduleValue10, [closure]);
object = [styles.labelPositionContainer];
const ReanimatedNativeView = importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */;
binding = env0_20;
const r7 = id != null ? value6 : undefined;
const items2 = [styles.labelOuterContainer, value17];
const r9 = value8.length > 0 && ((Component) => <Component style={styles.initialIcons}>{value8.map(_fun118731)}</Component>)(importDefault(6821) /* metro dependency 6821: NativeView */);
const defaultImport6 = ReanimatedNativeView;
const items3 = [styles.floatingContainer, value18];
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const text = <Text variant="heading-sm/semibold" color="always-white" lineClamp={1} style={[styles.floatingText,
value10 != null && ({fontFamily: value10})]} ellipsizeMode="tail" accessibilityLabel={getAccessibilityLabel_118703(value8,
label)}>{label}</Text>;
type = participant.type;
const USER = ParticipantTypes.USER;
const r14 = type === USER && ((Component) => <Component userId={participant.user.id} textColor="always-white" />)(importDefault(9299) /* metro dependency 9299: GuildTag */);
if (value7) {
ShieldLockIcon = (require(9322) /* metro dependency 9322: ShieldLockIcon */).ShieldLockIcon;
var shieldLockIconProps = {style: styles.secureFramesIcon, size: 'xs'};
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
shieldLockIconProps.accessibilityLabel = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.mR9cf3);
r12 = <ShieldLockIcon {...shieldLockIconProps} />;
} else {
r12 = value7;
}
return (
<ReanimatedNativeView
style={object}
layout={layout}
pointerEvents="box-none"
>
{((Component) => <Component onPress={r7} style={items2} layout={layout}>{r9}{((Component) => <Component style={items3} layout={layout}>{text}{r14}{r12}</Component>)(defaultImport6)}</Component>)(binding)}
</ReanimatedNativeView>
);
}
function FloatingControls({label, participant, isRinging, layout}) { // fn#118732, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:14258, offset: 0x024ead85, size: 619 bytes, params: 2, frame: 31
var value;
let binding = env0_3;
const {guildId, channelId, controlsSpecs, focused,
mode} = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const value3 = (require(566) /* metro dependency 566: flux */).useStateFromStores([RTCConnectionStore], function() {
return RTCConnectionStore.isConnected();
});
const isStableParticipantWithUser2 = (require(15456) /* metro dependency 15456: useStableParticipant */).isStableParticipantWithUser(participant);
const r18 = isStableParticipantWithUser2 ? participant.isSelf : !!isStableParticipantWithUser2;
const value5 = (require(566) /* metro dependency 566: flux */).useStateFromStores([EmbeddedActivitiesStore,
ApplicationStreamingStore], _fun118734);
const value6 = (importDefault(15433) /* metro dependency 15433: useIsVoicePanelParticipantFocusable */)(guildId,
channelId, participant.id);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useDerivedValue = reanimatedRexportModule.useDerivedValue;
const closure = FloatingControlsI;
closure.__closure = {controlsSpecs: controlsSpecs, VoicePanelControlsModes: VoicePanelControlsModes,
focused: focused, mode: mode, VoicePanelModes: VoicePanelModes};
closure.__workletHash = 8765031976276;
closure.__initData = env0_42;
const value7 = Reflect.apply(useDerivedValue, reanimatedRexportModule, [closure]);
const r5 = label != null && ((Component) => <Component controlsHidden={value7} label={label} layout={layout} participant={participant} />)(env0_41);
const jsxRuntimeEnv0_18Binding = jsxRuntimeEnv0_18;
const items2 = [isRinging && ((Component) => <Component controlsHidden={value7} />)(env0_35)];
items2[1] = value3 && value5 && ((Component) => <Component controlsHidden={value7} participant={participant} isSelf={r18} layout={layout} />)(env0_24);
let r6 = value3 && value6;
if (r6) {
binding = env0_26;
var bindingProps = {controlsHidden: value7, participantId: participant.id, targetName: label};
value = require(15456) /* metro dependency 15456: useStableParticipant */;
bindingProps.isActivityParticipant = value.isStableActivityParticipant(participant);
bindingProps.layout = layout;
value = ((Component) => <Component {...bindingProps} />)(binding);
r6 = value;
}
items2[2] = r6;
items2[3] = r5;
return (
<>
{items2}
</>
);
}
function StreamIconO() { // fn#118701, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:2176, owner: StreamIcon.o, offset: 0x024e93e5, size: 69 bytes, params: 1, frame: 11
const controlsSpecsBinding = controlsSpecs;
const get = controlsSpecsBinding.get;
const mode = Reflect.apply(get, controlsSpecsBinding, []).mode;
let value = environment.__proto__;
const HIDDEN = VoicePanelControlsModes.HIDDEN;
value = mode === HIDDEN;
return {marginLeft: value ? 2 : 4, marginRight: value ? 2 : 0};
}
function useTopLeftButtonStyles(a0) { // fn#118708, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:4711, offset: 0x024e9bab, size: 140 bytes, params: 2, frame: 17
const env0_0 = a0;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
const closure = useTopLeftButtonStylesN;
const object2 = {controlsHidden: a0, FLOATING_BAR_HEIGHT: 28};
object2.VOICE_PANEL_CARD_INNER_PADDING = VOICE_PANEL_CARD_INNER_PADDING;
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.MODE_CHANGE_PHYSICS = MODE_CHANGE_PHYSICS;
closure.__closure = object2;
closure.__workletHash = 4080439075039;
closure.__initData = env1_23;
return Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
}
function _fun118710() { // fn#118710, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:5121, offset: 0x024e9cb8, size: 262 bytes, params: 1, frame: 19
var value4;
var moduleValue2;
var stopStream;
var moduleValue3;
var currentEmbeddedActivity;
const value = environment.__proto__;
const value2 = undefined;
const useStableParticipantModule = require(15456) /* metro dependency 15456: useStableParticipant */;
if (useStableParticipantModule.isStableStreamParticipant(participant)) {
value4 = ApplicationStreamingStore.getStreamForUser(participant.user.id, guildId);
if (value4 == null) {
return value2;
}
moduleValue2 = require(8913) /* metro dependency 8913: StreamActionCreators */;
stopStream = moduleValue2.stopStream;
moduleValue3 = require(4285) /* metro dependency 4285: StreamKeyUtils */;
Reflect.apply(stopStream, moduleValue2, [moduleValue3.encodeStreamKey(value4)]);
}
const moduleValue4 = useStableParticipantModule;
if (moduleValue4.isStableActivityParticipant(participant)) {
currentEmbeddedActivity = EmbeddedActivitiesStore.getCurrentEmbeddedActivity();
(importDefault(8092) /* metro dependency 8092: EmbeddedActivitiesNativeManager */).leaveActivity({location: currentEmbeddedActivity == null ? value2 : currentEmbeddedActivity.location,
applicationId: participant.applicationId});
}
return value2;
}
function __118713() { // fn#118713, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:6418, offset: 0x024e9fcf, size: 162 bytes, params: 1, frame: 16
var r6;
var value3;
var value;
const value2 = controlsHidden.get();
if (value2) {
r6 = value2;
} else {
value = mode.get();
value3 = environment.__proto__;
value = value === VoicePanelModes.PIP;
r6 = value;
}
const object2 = {position: 'absolute'};
value = environment.__proto__;
object2.top = r6 ? -(28 + 2 * VOICE_PANEL_CARD_INNER_PADDING) : VOICE_PANEL_CARD_INNER_PADDING;
object2.right = VOICE_PANEL_CARD_INNER_PADDING;
const springModule = require(4577) /* metro dependency 4577: spring */;
const value5 = 1;
object2.opacity = springModule.withSpring(r6 ? 0 : value5, MODE_CHANGE_PHYSICS);
object2.zIndex = value5;
return object2;
}
function n_118717(a0) { // fn#118717, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:8639, offset: 0x024ea30f, size: 247 bytes, params: 2, frame: 25
var value3;
var binding2;
var closure;
var value4;
var binding3;
const binding = env0_2;
const set = binding.set;
const springModule = require(4577) /* metro dependency 4577: spring */;
const withSpring = springModule.withSpring;
const defaultImport = importDefault(15492) /* metro dependency 15492: getRandomNumberInRange */;
if (a0) {
value4 = defaultImport(35, 55);
binding3 = env1_27;
closure = n_118717O;
closure.__closure = {flip: env0_1};
closure.__workletHash = 17264907521028;
closure.__initData = env1_30;
Reflect.apply(set, binding, [Reflect.apply(withSpring, springModule, [value4, binding3,
'respect-motion-settings',
closure])]);
} else {
value3 = defaultImport(-10, 10);
binding2 = env1_27;
closure = n_118717N;
closure.__closure = {flip: env0_1};
closure.__workletHash = 1799436949573;
closure.__initData = env1_31;
Reflect.apply(set, binding, [Reflect.apply(withSpring, springModule, [value3, binding2,
'respect-motion-settings',
closure])]);
}
}
function p_118720() { // fn#118720, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:9210, offset: 0x024ea42d, size: 53 bytes, params: 1, frame: 11
var r1;
let value = controlsHidden.get();
if (value) {
value = environment.__proto__;
value = -(28 + 2 * VOICE_PANEL_CARD_INNER_PADDING);
r1 = value;
} else {
r1 = 0;
}
return {top: r1};
}
function C_118721() { // fn#118721, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:9406, offset: 0x024ea462, size: 68 bytes, params: 1, frame: 15
const object = {};
object.rotate = '' + env0_2.get() + 'deg';
return {transform: [object]};
}
function _fun118724() { // fn#118724, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:11598, offset: 0x024eab53, size: 81 bytes, params: 1, frame: 13
var value2;
if (id != null) {
value2 = environment.__proto__;
(importDefault(8743) /* metro dependency 8743: showUserProfileActionSheet */)({userId: id, channelId: channelId,
isVoiceContext: true, sourceAnalyticsLocations: analyticsLocations});
}
}
function c_118726() { // fn#118726, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:12072, offset: 0x024eabd7, size: 105 bytes, params: 1, frame: 12
var r0;
var value6;
var value7;
const r3 = env0_10 && focused.get() == null;
const value4 = connected.get();
if (value4) {
value6 = mode.get();
value7 = environment.__proto__;
r0 = value6 === VoicePanelModes.PIP;
} else {
r0 = !value4;
}
r0 = !r0 ? !r3 && controlsHidden.get() : r0;
return r0;
}
function __118728(a0) { // fn#118728, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:12464, offset: 0x024eac40, size: 70 bytes, params: 2, frame: 17
const binding = env0_12;
const set = binding.set;
const springModule = require(4577) /* metro dependency 4577: spring */;
Reflect.apply(set, binding, [springModule.withSpring(a0 ? 0 : 1, MODE_CHANGE_PHYSICS)]);
}
function Q_118729() { // fn#118729, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:12681, offset: 0x024eac86, size: 96 bytes, params: 1, frame: 12
const object2 = {};
object2.opacity = env0_12.get();
object2.top = env0_11.get() ? 28 + VOICE_PANEL_CARD_INNER_PADDING : 0;
object2.height = 28;
object2.pointerEvents = env0_11.get() ? 'none' : 'auto';
return object2;
}
function $_118730() { // fn#118730, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:12947, offset: 0x024eace6, size: 123 bytes, params: 1, frame: 13
var r0;
var r2;
const value2 = connected.get();
if (value2) {
r0 = !env0_6 && controlsSpecs.get().mode === VoicePanelControlsModes.HIDDEN;
r0 = r0 && env0_9;
r2 = r0;
} else {
r2 = !value2;
}
return {width: r2 && env0_9 ? 0 : 'auto', marginRight: r2 ? -4 : 0};
}
function _fun118731(a0) { // fn#118731, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:13452, offset: 0x024ead61, size: 36 bytes, params: 2, frame: 15
return <AnimatedLabelIcon icon={a0} key={a0.type} />;
}
function _fun118734() { // fn#118734, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:14574, offset: 0x024eb003, size: 174 bytes, params: 1, frame: 17
var r3;
let value = environment.__proto__;
const value2 = undefined;
const useStableParticipantModule = require(15456) /* metro dependency 15456: useStableParticipant */;
if (useStableParticipantModule.isStableActivityParticipant(participant)) {
value = EmbeddedActivitiesStore.getCurrentEmbeddedActivity();
return participant.applicationId === (value == null ? value2 : value.applicationId);
}
const moduleValue2 = useStableParticipantModule;
const isStableStreamParticipant2 = moduleValue2.isStableStreamParticipant(participant);
if (isStableStreamParticipant2) {
value = ApplicationStreamingStore.getActiveStreamForUser(participant.user.id, guildId);
value = value != null;
r3 = value;
} else {
r3 = !!isStableStreamParticipant2;
}
return r3;
}
function FloatingControlsI() { // fn#118735, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:14864, owner: FloatingControls.I, offset: 0x024eb0b1, size: 92 bytes, params: 1, frame: 12
var value;
const controlsSpecsBinding = controlsSpecs;
const get = controlsSpecsBinding.get;
const mode2 = Reflect.apply(get, controlsSpecsBinding, []).mode;
const HIDDEN = VoicePanelControlsModes.HIDDEN;
let r0 = mode2 === HIDDEN || focused.get() != null;
if (!r0) {
value = mode.get();
value = value === VoicePanelModes.PIP;
r0 = value;
}
return r0;
}
function useTopLeftButtonStylesN() { // fn#118709, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:4783, owner: useTopLeftButtonStyles.n, offset: 0x024e9c37, size: 129 bytes, params: 1, frame: 16
const value = env0_0.get();
const object2 = {position: 'absolute'};
object2.top = value ? -(28 + 2 * VOICE_PANEL_CARD_INNER_PADDING) : VOICE_PANEL_CARD_INNER_PADDING;
object2.left = VOICE_PANEL_CARD_INNER_PADDING;
const springModule = require(4577) /* metro dependency 4577: spring */;
const value4 = 1;
object2.opacity = springModule.withSpring(value ? 0 : value4, MODE_CHANGE_PHYSICS);
object2.zIndex = value4;
return object2;
}
function n_118717O(a0) { // fn#118718, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15702:8735, owner: n_118717.o, offset: 0x024ea406, size: 39 bytes, params: 2, frame: 11
var value;
var binding;
if (a0) {
value = environment.__proto__;
binding = env1_1;
binding.set(!binding.get());
}
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,374 @@
/* Metro module 15483; source: modules/voice_panel/native/card/VoicePanelCardView.tsx; dependencies: [57, 31, 27, 4606, 11795, 11793, 15440, 11798, 4299, 33, 15484, 4017, 7739, 1357, 11794, 3860, 697, 11799, 11624, 4577, 15444, 6619, 8141, 4521, 15435, 566, 22, 3869, 1244, 4508, 2] */
function _fun118477(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118477, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:6, offset: 0x024dccee, size: 483 bytes, params: 8, frame: 22
var object2;
const env0_0 = require;
const getCardKey = function({type, id}) {
return '' + type + '-' + id;
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
let value = importAll(31) /* metro dependency 31 */;
const value2 = require(27) /* metro dependency 27 */;
const env0_5 = value2.StyleSheet;
const env0_6 = value2.View;
const channelRTCStore = importDefault(4606) /* metro dependency 4606: ChannelRTCStore */;
const voicePanelConstantsModule = require(11795) /* metro dependency 11795: VoicePanelConstants */;
const UI_SHOW_HIDE_PHYSICS = voicePanelConstantsModule.UI_SHOW_HIDE_PHYSICS;
const VOICE_PANEL_CHUNK_DIVISOR = voicePanelConstantsModule.VOICE_PANEL_CHUNK_DIVISOR;
const env0_8 = voicePanelConstantsModule.LAYOUT_PHYSICS;
const env0_9 = voicePanelConstantsModule.VoicePanelModes;
const env0_10 = (require(11793) /* metro dependency 11793: VoicePanelControlsConstants */).VoicePanelControlsModes;
const env0_11 = (require(15440) /* metro dependency 15440: VoicePanelPIPConstants */).VoicePanelPIPModes;
const env0_12 = (require(11798) /* metro dependency 11798: VoicePanelCardConstants */).EDGE_GUTTER;
const env0_13 = (require(4299) /* metro dependency 4299: CallConstants */).isUserParticipant;
const env0_14 = (require(33) /* metro dependency 33 */).jsx;
object2 = {};
copyDataProperties(object2, UI_SHOW_HIDE_PHYSICS, undefined);
object2['mass'] = 1;
object2['restSpeedThreshold'] = 0.00001;
object2 = {start: 0, end: VOICE_PANEL_CHUNK_DIVISOR};
object2 = {code: 'function VoicePanelCardViewTsx1(){const{viewableChunks}=this.__closure;return viewableChunks.get();}'};
object2 = {code: 'function VoicePanelCardViewTsx2(newChunks,previous){const{cheapWorkletShallowEqual,runOnJS,updateValueIfChange}=this.__closure;if(cheapWorkletShallowEqual(newChunks,previous!==null&&previous!==void 0?previous:undefined))return;runOnJS(updateValueIfChange)(newChunks);}'};
object2 = {code: "function VoicePanelCardViewTsx3(){const{controlsSpecs,VoicePanelControlsModes,safeArea,EDGE_GUTTER,calculateVoicePanelHeaderSpecs,edgeGutter,connected,contentDimensions,windowDimensions,mode,VoicePanelModes,focused,isRefreshEnabled,roundToNearestPixel,withSpring,wrapperOffset,LAYOUT_PHYSICS,SCALE_PHYSICS,freeze}=this.__closure;const hidden=controlsSpecs.get().mode===VoicePanelControlsModes.HIDDEN;let height=0;let scale=1;let top=0;const safeAreaBottom=Math.max(safeArea.get().bottom,EDGE_GUTTER);const{height:headerBarHeight,paddingTop:safeAreaTop}=calculateVoicePanelHeaderSpecs(safeArea.get(),edgeGutter);if(connected.get()){height+=safeAreaTop;height+=contentDimensions.get().height;height+=safeAreaBottom;if(height-windowDimensions.get().height<8){height=windowDimensions.get().height;}if(mode.get()!==VoicePanelModes.PIP&&!hidden&&focused.get()==null){const targetHeight=height-headerBarHeight-EDGE_GUTTER-controlsSpecs.get().height-safeAreaBottom;const fullView=windowDimensions.get().height-safeAreaTop-safeAreaBottom;const controlsView=windowDimensions.get().height-headerBarHeight-controlsSpecs.get().height-safeAreaBottom;top=headerBarHeight;scale=function(){if(contentDimensions.get().height>targetHeight){return targetHeight/contentDimensions.get().height;}return isRefreshEnabled?windowDimensions.get().width/windowDimensions.get().width:(windowDimensions.get().width-48)/windowDimensions.get().width;}();if(contentDimensions.get().height<fullView&&contentDimensions.get().height>controlsView){const offsetOriginal=(fullView-contentDimensions.get().height)/2;const scaledContent=contentDimensions.get().height*scale;const scaledOffset=(controlsView-scaledContent)/2;top-=(offsetOriginal-scaledOffset)*scale;}if(contentDimensions.get().height>targetHeight){top+=(height*scale-height)/2;}else{top+=(targetHeight-(windowDimensions.get().height-safeAreaTop-safeAreaBottom))/2;}top-=safeAreaTop*scale;}}return{position:'relative',width:windowDimensions.get().width,height:roundToNearestPixel(height),transform:[{translateY:withSpring(top+wrapperOffset.get().y,wrapperOffset.get().gestureActive||mode.get()===VoicePanelModes.PIP?LAYOUT_PHYSICS:SCALE_PHYSICS)},{scale:withSpring(scale,SCALE_PHYSICS)}],opacity:freeze?0:1};}"};
value = value.memo(VoicePanelCardView);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/card/VoicePanelCardView.tsx');
exports.default = value;
}
function renderCard_118479(a0, a1, a2, a3) { // fn#118479, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:480, offset: 0x024dced1, size: 66 bytes, params: 5, frame: 15
return ((Component) => <Component item={a1} transitionState={a2} cleanUp={a3} key={a0} />)(importDefault(15484) /* metro dependency 15484: VoicePanelCard */);
}
function CardContentFreezer({children}) { // fn#118480, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:3230, offset: 0x024dcf13, size: 90 bytes, params: 2, frame: 16
const value = useLazyContentFreeze();
return env0_4.useMemo(_fun118487, [useSpacerStyles(value), value, children]);
}
function VoicePanelCardView({viewableChunks}) { // fn#118488, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:5295, offset: 0x024dd6db, size: 244 bytes, params: 2, frame: 19
const binding = env0_4;
const useContext = binding.useContext;
const channelId = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).channelId;
const value3 = (require(15435) /* metro dependency 15435: useVoicePanelParticipants */).useChunkedParticipants(channelId,
useViewableChunkState(viewableChunks));
const value4 = (require(566) /* metro dependency 566: flux */).useStateFromStoresArray([ChannelRTCStore],
_fun118494, [channelId]);
const env0_3 = env0_4.useRef(value4);
env0_4.useEffect(_fun118496, [value4, channelId]);
return env0_4.useMemo(_fun118498, [value3]);
}
function useLazyContentFreeze() { // fn#118481, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:3278, owner: CardContentFreezer.useLazyContentFreeze, offset: 0x024dcf6d, size: 191 bytes, params: 1, frame: 19
var environment;
const value = environment.__proto__;
const voicePanelPIPStateContextModule = require(15444) /* metro dependency 15444: VoicePanelPIPStateContext */;
const usePIPState = voicePanelPIPStateContextModule.usePIPState;
const mode = Reflect.apply(usePIPState, voicePanelPIPStateContextModule, []).mode;
const binding = env1_4;
const useRef = binding.useRef;
let IN_APP = VoicePanelPIPModes.IN_APP;
const value2 = Reflect.apply(useRef, binding, [mode === IN_APP]);
const env0_2 = env1_3(env1_4.useState({}), 2)[1];
env1_4.useEffect(_fun118482, [mode]);
const value5 = (importDefault(6619) /* metro dependency 6619: useRefValue */)(value2);
IN_APP = VoicePanelPIPModes.IN_APP;
return mode === IN_APP && value5;
}
function useSpacerStyles(a0) { // fn#118485, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:3589, owner: CardContentFreezer.useSpacerStyles, offset: 0x024dd0ac, size: 436 bytes, params: 2, frame: 28
const env0_0 = a0;
const value2 = (importDefault(1357) /* metro dependency 1357: MobileVisualRefreshExperiment */)('VoicePanelCardView');
const {connected, controlsSpecs, safeArea, contentDimensions, windowDimensions, mode, focused,
wrapperOffset} = env1_4.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const useTokenModule = require(3860) /* metro dependency 3860: useToken */;
const useToken = useTokenModule.useToken;
const VOICE_PANEL_GUTTER = (importDefault(697) /* metro dependency 697: native */).modules.mobile.VOICE_PANEL_GUTTER;
const value4 = Reflect.apply(useToken, useTokenModule, [VOICE_PANEL_GUTTER]);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
const closure = useSpacerStylesO;
const object2 = {controlsSpecs: controlsSpecs};
object2.VoicePanelControlsModes = VoicePanelControlsModes;
object2.safeArea = safeArea;
object2.EDGE_GUTTER = EDGE_GUTTER;
object2.calculateVoicePanelHeaderSpecs = importDefault(11799) /* metro dependency 11799: calculateVoicePanelHeaderSpecs */;
object2.edgeGutter = value4;
object2.connected = connected;
object2.contentDimensions = contentDimensions;
object2.windowDimensions = windowDimensions;
object2.mode = mode;
object2.VoicePanelModes = VoicePanelModes;
object2.focused = focused;
object2.isRefreshEnabled = value2;
object2.roundToNearestPixel = importDefault(11624) /* metro dependency 11624: roundToNearestPixel */;
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.wrapperOffset = wrapperOffset;
object2.LAYOUT_PHYSICS = LAYOUT_PHYSICS;
object2.SCALE_PHYSICS = env1_15;
object2.freeze = a0;
closure.__closure = object2;
closure.__workletHash = 495797244676;
closure.__initData = env1_19;
return Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
}
function _fun118487() { // fn#118487, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:5143, offset: 0x024dd649, size: 146 bytes, params: 1, frame: 22
const ReanimatedNativeView = importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */;
const defaultImportProps = {style: env0_2};
const Freeze = (require(4521) /* metro dependency 4521 */).Freeze;
return (
<ReanimatedNativeView {...defaultImportProps}>
<Freeze freeze={env0_1}>
<View collapsable={false} style={StyleSheet.absoluteFill}>
{children}
</View>
</Freeze>
</ReanimatedNativeView>
);
}
function useViewableChunkState(a0) { // fn#118489, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:5384, owner: VoicePanelCardView.useViewableChunkState, offset: 0x024dd7cf, size: 261 bytes, params: 2, frame: 22
var object2;
const env0_0 = a0;
let binding = env1_4;
const [property, env0_1] = env1_3(binding.useState(env1_16), 2);
binding = env1_4;
let closure = _fun118490;
const value4 = binding.useCallback(closure, []);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
closure = useViewableChunkStateH;
closure.__closure = {viewableChunks: a0};
closure.__workletHash = 1074173860641;
closure.__initData = env1_17;
const closure2 = useViewableChunkStateS;
object2 = {};
object2.cheapWorkletShallowEqual = (require(7739) /* metro dependency 7739: cheapWorkletShallowEqual */).cheapWorkletShallowEqual;
object2.runOnJS = reanimatedRexportModule.runOnJS;
object2.updateValueIfChange = value4;
closure2.__closure = object2;
closure2.__workletHash = 13543715159803;
closure2.__initData = env1_18;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
return property;
}
function _fun118494() { // fn#118494, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:6016, offset: 0x024dd98c, size: 46 bytes, params: 1, frame: 11
var environment;
const value = environment.__proto__;
const getParticipants = ChannelRTCStore.getParticipants;
return Reflect.apply(getParticipants, ChannelRTCStore, [channelId]).filter(function(a0) {
return isUserParticipant(a0);
});
}
function _fun118496() { // fn#118496, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:6099, offset: 0x024dd9cd, size: 258 bytes, params: 1, frame: 20
var user;
var defaultImport2;
var value3;
var length;
var value4;
var AccessibilityAnnouncer;
var announce;
var intl;
const defaultImport = importDefault(22) /* metro dependency 22 */;
if (!defaultImport.isEqual(env0_3.current, env0_2)) {
defaultImport2 = defaultImport;
value3 = defaultImport2.differenceWith(env0_3.current, env0_2, function({id}, a1) {
return id === a1.id;
});
length = value3.length;
value4 = null;
user = length > 0 ? value3[0].user : value4;
if (value4 != user) {
AccessibilityAnnouncer = (require(3869) /* metro dependency 3869: AccessibilityAnnouncerAndroid */).AccessibilityAnnouncer;
announce = AccessibilityAnnouncer.announce;
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
Reflect.apply(announce, AccessibilityAnnouncer,
[intl.formatToPlainString((require(1244) /* metro dependency 1244: indexNative */).t['9NqwWZ'],
{username: user.username})]);
}
}
env0_3.current = env0_2;
}
function _fun118498() { // fn#118498, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:6392, offset: 0x024ddae5, size: 102 bytes, params: 1, frame: 17
const TransitionGroup = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionGroup;
return (
<CardContentFreezer>
<TransitionGroup
items={env0_1}
renderItem={renderCard_118479}
getItemKey={getCardKey}
lazyCleanUpDelay={1000}
/>
</CardContentFreezer>
);
}
function _fun118482() { // fn#118482, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:3411, offset: 0x024dd02c, size: 84 bytes, params: 1, frame: 14
const modeBinding = mode;
const IN_APP = VoicePanelPIPModes.IN_APP;
if (modeBinding === IN_APP) {
var env0_0 = global.setTimeout(_fun118483, 700);
return _fun118484;
}
env0_1.current = false;
}
function useSpacerStylesO() { // fn#118486, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:3909, owner: CardContentFreezer.useSpacerStyles.o, offset: 0x024dd260, size: 1001 bytes, params: 1, frame: 29
var r5;
var r4;
var r11;
var r13;
var r7;
var r8;
var r9;
var value9;
var contentDimensionsBinding;
var value10;
var windowDimensionsBinding;
var value14;
var value15;
var value16;
var value17;
var value18;
var value23;
var value25;
let controlsSpecsBinding = controlsSpecs;
let get = controlsSpecsBinding.get;
const mode2 = Reflect.apply(get, controlsSpecsBinding, []).mode;
const HIDDEN = VoicePanelControlsModes.HIDDEN;
const Math = global.Math;
const max = Math.max;
const safeAreaBinding = safeArea;
get = safeAreaBinding.get;
const value3 = Reflect.apply(max, Math, [Reflect.apply(get, safeAreaBinding, []).bottom, EDGE_GUTTER]);
let {height,
paddingTop} = (importDefault(11799) /* metro dependency 11799: calculateVoicePanelHeaderSpecs */)(safeAreaBinding.get(),
env0_10);
const value6 = connected.get();
const value7 = 0;
const value8 = 1;
if (value6) {
value9 = value7 + paddingTop;
contentDimensionsBinding = contentDimensions;
get = contentDimensionsBinding.get;
value10 = value9 + Reflect.apply(get, contentDimensionsBinding, []).height + value3;
get = windowDimensions.get;
if (value10 - Reflect.apply(get, windowDimensionsBinding, []).height < 8) {
windowDimensionsBinding = windowDimensions;
r5 = windowDimensionsBinding.get().height;
} else {
r5 = value10;
}
if (mode.get() === VoicePanelModes.PIP) {
r7 = value7;
r8 = r5;
r9 = value8;
} else if (mode2 === HIDDEN) {
r7 = value7;
r8 = r5;
r9 = value8;
} else if (focused.get() == null) {
value14 = r5 - height - EDGE_GUTTER;
controlsSpecsBinding = controlsSpecs;
get = controlsSpecsBinding.get;
value15 = value14 - Reflect.apply(get, controlsSpecsBinding, []).height - value3;
windowDimensionsBinding = windowDimensions;
get = windowDimensionsBinding.get;
value16 = Reflect.apply(get, windowDimensionsBinding, []).height - paddingTop - value3;
get = windowDimensionsBinding.get;
value17 = Reflect.apply(get, windowDimensionsBinding, []).height - height;
get = controlsSpecsBinding.get;
value18 = value17 - Reflect.apply(get, controlsSpecsBinding, []).height - value3;
contentDimensionsBinding = contentDimensions;
get = contentDimensionsBinding.get;
r4 = Reflect.apply(get, contentDimensionsBinding,
[]).height > value15 ? value15 / contentDimensions.get().height : env0_1 ? windowDimensions.get().width / windowDimensions.get().width : (windowDimensions.get().width - 48) / windowDimensions.get().width;
contentDimensionsBinding = contentDimensions;
get = contentDimensionsBinding.get;
value23 = Reflect.apply(get, contentDimensionsBinding, []).height < value16;
if (value23) {
contentDimensionsBinding = contentDimensions;
r11 = contentDimensionsBinding.get().height > value18;
} else {
r11 = value23;
}
if (r11) {
contentDimensionsBinding = contentDimensions;
get = contentDimensionsBinding.get;
value25 = (value16 - Reflect.apply(get, contentDimensionsBinding, []).height) / 2;
get = contentDimensionsBinding.get;
r13 = height - (value25 - (value18 - Reflect.apply(get, contentDimensionsBinding,
[]).height * r4) / 2) * r4;
} else {
r13 = height;
}
contentDimensionsBinding = contentDimensions;
get = contentDimensionsBinding.get;
height = Reflect.apply(get, contentDimensionsBinding, []).height;
r11 = height > value15 ? r13 + (r5 * r4 - r5) / 2 : r13 + (value15 - (windowDimensions.get().height - paddingTop - value3)) / 2;
r7 = r11 - paddingTop * r4;
r8 = r5;
r9 = r4;
} else {
r7 = value7;
r8 = r5;
r9 = value8;
}
} else {
r7 = value7;
r8 = value7;
r9 = value8;
}
const object2 = {position: 'relative'};
windowDimensionsBinding = windowDimensions;
get = windowDimensionsBinding.get;
object2.width = Reflect.apply(get, windowDimensionsBinding, []).width;
object2.height = (importDefault(11624) /* metro dependency 11624: roundToNearestPixel */)(r8);
const springModule = require(4577) /* metro dependency 4577: spring */;
const withSpring = springModule.withSpring;
const wrapperOffsetBinding = wrapperOffset;
get = wrapperOffsetBinding.get;
const value30 = r7 + Reflect.apply(get, wrapperOffsetBinding, []).y;
get = wrapperOffsetBinding.get;
const items2 = [{translateY: Reflect.apply(withSpring, springModule, [value30, Reflect.apply(get,
wrapperOffsetBinding, []).gestureActive || mode.get() === VoicePanelModes.PIP ? LAYOUT_PHYSICS : env2_15])}];
const object4 = {};
object4.scale = springModule.withSpring(r9, env2_15);
items2[1] = object4;
object2.transform = items2;
object2.opacity = env0_0 ? value7 : value8;
return object2;
}
function _fun118490(a0) { // fn#118490, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:5482, offset: 0x024dd8d4, size: 32 bytes, params: 2, frame: 11
const env0_0 = a0;
env0_1(_fun118491);
}
function useViewableChunkStateS(a0, a1) { // fn#118493, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:5670, owner: VoicePanelCardView.useViewableChunkState.s, offset: 0x024dd924, size: 104 bytes, params: 3, frame: 17
let value = a1;
const value3 = undefined;
const cheapWorkletShallowEqualModule = require(7739) /* metro dependency 7739: cheapWorkletShallowEqual */;
if (!cheapWorkletShallowEqualModule.cheapWorkletShallowEqual(a0, value ?? value3)) {
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value.runOnJS(env0_2)(a0);
}
return value3;
}
function _fun118483() { // fn#118483, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:3451, offset: 0x024dd080, size: 44 bytes, params: 1, frame: 11
if (!env1_1.current) {
env1_1.current = true;
env1_2({});
}
}
function _fun118491(a0) { // fn#118491, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15680:5489, offset: 0x024dd8f4, size: 48 bytes, params: 2, frame: 4
const value = a0;
return value.start !== env0_0.start ? env0_0 : value.end === env0_0.end ? value : env0_0;
}
@@ -0,0 +1,63 @@
/* Metro module 15493; source: modules/voice_panel/native/card/VoicePanelNoVideoParticipantsCard.tsx; dependencies: [31, 27, 33, 4501, 697, 11794, 7712, 6821, 4573, 1244, 2] */
function _fun118632(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118632, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15690:6, offset: 0x024e55b0, size: 347 bytes, params: 8, frame: 23
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(27) /* metro dependency 27 */).Pressable;
const value2 = require(33) /* metro dependency 33 */;
const env0_5 = value2.jsx;
const env0_6 = value2.jsxs;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {};
const VOICE_VIDEO_VIDEO_TILE_BACKGROUND = (importDefault(697) /* metro dependency 697: native */).colors.VOICE_VIDEO_VIDEO_TILE_BACKGROUND;
object2.container = {'width': '100%', 'height': '100%', 'alignItems': 'center', 'justifyContent': 'center',
'padding': 16, backgroundColor: VOICE_VIDEO_VIDEO_TILE_BACKGROUND};
object2.label = {'marginBottom': 16, 'textAlign': 'center'};
const object4 = {'paddingHorizontal': 20, 'paddingVertical': 12, 'backgroundColor': 'white'};
object4.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object2.button = object4;
const PRIMARY_860 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.PRIMARY_860;
object2.buttonText = {color: PRIMARY_860};
const env0_7 = Reflect.apply(createStyles, createStylesModule, [object2]);
value = value.memo(VoicePanelNoVideoParticipantsCard);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/card/VoicePanelNoVideoParticipantsCard.tsx');
exports.default = value;
}
function VoicePanelNoVideoParticipantsCard() { // fn#118633, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15690:557, offset: 0x024e570b, size: 421 bytes, params: 1, frame: 26
const binding = env0_3;
const useContext = binding.useContext;
const channelId = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).channelId;
const styles = useStyles();
const value2 = binding.useCallback(_fun118634, [channelId]);
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const text = <Text style={styles.label} variant="text-md/semibold" color="always-white">{intl.string((require(1244) /* metro dependency 1244: indexNative */).t['8eBJ73'])}</Text>;
return (
<NativeView style={styles.container}>
{text}
<Pressable
style={styles.button}
onPress={value2}
accessibilityRole="button"
accessibilityLabel={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.kLQySL)}
>
<Text variant="text-sm/semibold" style={styles.buttonText}>
{intl.string((require(1244) /* metro dependency 1244: indexNative */).t.kLQySL)}
</Text>
</Pressable>
</NativeView>
);
}
function _fun118634() { // fn#118634, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15690:663, offset: 0x024e58b0, size: 48 bytes, params: 1, frame: 14
let value = environment.__proto__;
value = importDefault(7712) /* metro dependency 7712: ChannelRTCActionCreators */;
value.toggleVoiceParticipantsHidden(channelId, false);
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,289 @@
/* Metro module 15434; source: modules/voice_panel/native/controller/VoicePanelStreamOutputSinkStack.tsx; dependencies: [57, 6, 7, 31, 2] */
function _fun118063(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118063, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15631:6, offset: 0x024cab6b, size: 196 bytes, params: 8, frame: 18
const _arrayLikeToArray_118066 = 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_0 = importDefault(57) /* metro dependency 57 */;
const env0_1 = importDefault(6) /* metro dependency 6 */;
const env0_2 = importDefault(7) /* metro dependency 7 */;
const env0_3 = importAll(31) /* metro dependency 31 */;
let value = _fun118067();
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controller/VoicePanelStreamOutputSinkStack.tsx');
exports.default = value;
exports.useSetHasActiveVideoOutputSink = useSetHasActiveVideoOutputSink;
}
function _createForOfIteratorHelperLoose_118064(a0, a1) { // fn#118064, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15631:141, offset: 0x024cac2f, 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 _fun118065;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_118066(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_118066(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_118066(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun118065;
}
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 _fun118067() { // fn#118067, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15631:1057, offset: 0x024cada3, size: 188 bytes, params: 1, frame: 15
return env0_2(VoicePanelStreamOutputSinkStack, [{key: 'cleanUp', value: function() {
global.clearInterval(this.timer);
}}, {key: 'logSinks', value: value_118071}, {key: 'setHasActiveVideoOutputSink', value: value_118072},
{key: 'clearLock', value: value_118073}, {key: 'setActive', value: function(a0, a1, a2) {
var env0_0 = a0;
var env0_1 = a1;
var env0_2 = a2;
this.mediaEngine.eachConnection(_fun118075);
}}, {key: 'sourceId', value: function(a0) {
return 'VoicePanelStreamOutputSinkStack-' + a0;
}}]);
}
function useSetHasActiveVideoOutputSink(a0) { // fn#118077, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15631:2512, offset: 0x024cb1b2, size: 96 bytes, params: 2, frame: 16
const env0_0 = a0;
const binding = env0_3;
const value = binding.useId();
const value2 = binding.useCallback(_fun118078, [value, a0]);
binding.useEffect(function() {
return _fun118080;
}, [value, value2, a0]);
return value2;
}
function VoicePanelStreamOutputSinkStack(a0) { // fn#118068, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15631:1078, offset: 0x024cae5f, size: 131 bytes, params: 2, frame: 16
var environment;
let value = a1;
const r4 = value !== undefined ? value : false;
value = environment.__proto__;
env1_1(this, VoicePanelStreamOutputSinkStack);
this.mediaEngine = a0;
const Map = global.Map;
this.activeSinks = new Map();
this.timer = -1;
if (r4) {
this.timer = global.setInterval(_fun118069, 2000);
}
}
function value_118071() { // fn#118071, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15631:1365, offset: 0x024caf11, size: 174 bytes, params: 1, frame: 29
var r2;
var value4;
var value5;
var property;
var property2;
var push;
var Array;
var value6;
var value7;
var value8;
const items2 = [];
const value2 = _createForOfIteratorHelperLoose_118064(this.activeSinks);
const value3 = value2();
let done = value3.done;
if (!done) {
for (r2 = value3; true; r2 = value8) {
value4 = r2.value;
value5 = env1_0(value4, 2);
property = value5[0];
property2 = value5[1];
push = items2.push;
Array = global.Array;
value6 = Array.from(property2);
value7 = value6.join(',');
Reflect.apply(push, items2, ['[Stream:' + property + ', Locks:[' + value7 + ']]']);
value8 = value2();
done = value8.done;
if (done) {
break;
}
}
}
}
function value_118072(a0, a1, a2) { // fn#118072, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15631:1600, offset: 0x024cafbf, size: 223 bytes, params: 4, frame: 18
const r2 = this.activeSinks.get(a1) ?? new global.Set();
value = r2.has(a0);
if (a2) {
if (value) {
return undefined;
}
r2.add(a0);
if (r2.size === 1) {
this.setActive(a1, true, this.sourceId(a0));
this.activeSinks.set(a1, r2);
}
} else if (value) {
r2.delete(a0);
if (r2.size === 0) {
this.setActive(a1, false, this.sourceId(a0));
this.activeSinks.delete(a1);
}
return undefined;
}
}
function value_118073(a0) { // fn#118073, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15631:1922, offset: 0x024cb09e, size: 160 bytes, params: 2, frame: 23
var r2;
var value4;
var value5;
var property;
var property2;
var has;
var size;
var setActive;
var sourceId;
var value6;
const _createForOfIteratorHelperLoose_118064Binding = _createForOfIteratorHelperLoose_118064;
let activeSinks = this.activeSinks;
const value2 = _createForOfIteratorHelperLoose_118064Binding(activeSinks);
const value3 = value2();
let done = value3.done;
if (!done) {
r2 = value3;
while (true) {
value4 = r2.value;
value5 = env1_0(value4, 2);
property = value5[0];
property2 = value5[1];
has = property2.has;
if (Reflect.apply(has, property2, [a0])) {
property2.delete(a0);
size = property2.size;
if (size !== 0) {
break;
}
setActive = this.setActive;
sourceId = this.sourceId;
Reflect.apply(setActive, this, [property, false, Reflect.apply(sourceId, this, [a0])]);
activeSinks = this.activeSinks;
activeSinks.delete(property);
break;
}
value6 = value2();
done = value6.done;
if (done) {
break;
}
r2 = value6;
continue;
}
}
}
function value_118074(a0, a1, a2) { // fn#118074, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15631:2178, offset: 0x024cb13e, size: 54 bytes, params: 4, frame: 11
const env0_0 = a0;
const env0_1 = a1;
const env0_2 = a2;
this.mediaEngine.eachConnection(_fun118075);
}
function _fun118078(a0, a1) { // fn#118078, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15631:2588, offset: 0x024cb212, size: 34 bytes, params: 3, frame: 15
env0_0.setHasActiveVideoOutputSink(env0_1, a0, a1);
}
function _fun118079() { // fn#118079, offset: 0x024cb234, size: 11 bytes, params: 1, frame: 1
return _fun118080;
}
function _fun118069() { // fn#118069, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15631:1253, offset: 0x024caee2, size: 21 bytes, params: 1, frame: 9
return env0_0.logSinks();
}
function _fun118075(a0) { // fn#118075, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15631:2227, offset: 0x024cb174, size: 33 bytes, params: 2, frame: 15
return a0.setHasActiveVideoOutputSink(env0_0, require, importDefault);
}
function _fun118080() { // fn#118080, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15631:2666, offset: 0x024cb23f, size: 26 bytes, params: 1, frame: 11
return env1_0.clearLock(env1_1);
}
@@ -0,0 +1,166 @@
/* Metro module 15443; source: modules/voice_panel/native/controller/usePanelOpenState.tsx; dependencies: [57, 31, 7710, 11795, 661, 4017, 1239, 12080, 3974, 3987, 12073, 8088, 2] */
function _fun118156(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118156, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15640:6, offset: 0x024ce238, size: 239 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
const voicePanelStore = importDefault(7710) /* metro dependency 7710: VoicePanelStore */;
const env0_6 = (require(11795) /* metro dependency 11795: VoicePanelConstants */).VoicePanelModes;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_7 = constantsModule.ComponentActions;
const env0_8 = constantsModule.Routes;
object = {code: 'function usePanelOpenStateTsx1(){const{connected}=this.__closure;return{connected:connected.get()};}'};
object = {code: 'function usePanelOpenStateTsx2(props,previous){const{runOnJS,doCloseChannel}=this.__closure;const isConnected=props.connected;const wasConnected=(previous===null||previous===void 0?void 0:previous.connected)===true;if(wasConnected&&!isConnected){runOnJS(doCloseChannel)();}}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controller/usePanelOpenState.tsx');
exports.default = usePanelOpenState;
}
function usePanelOpenState(a0, a1, a2, a3) { // fn#118157, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15640:696, offset: 0x024ce327, size: 315 bytes, params: 5, frame: 25
var object2;
let env0_0 = a0;
let env0_1 = a1;
const env0_2 = a2;
const env0_3 = a3;
let closure = doCloseChannel;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
let closure2 = function() {
var object = {};
object.connected = importAll.get();
return object;
};
closure2.__closure = {connected: a3};
closure2.__workletHash = 8350408810765;
closure2.__initData = env0_9;
const closure3 = usePanelOpenStateO;
object2 = {};
object2.runOnJS = reanimatedRexportModule.runOnJS;
object2.doCloseChannel = closure;
closure3.__closure = object2;
closure3.__workletHash = 9166012598595;
closure3.__initData = env0_10;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure2, closure3]);
const binding = env0_4;
binding.useEffect(function() {
var closure = _fun118162;
var env0_0 = closure;
var closure2 = _fun118163;
var env0_1 = closure2;
var ComponentDispatch = require(dependencyMap[6]).ComponentDispatch;
ComponentDispatch.subscribe(ComponentActions.VOICE_PANEL_OPEN, closure);
ComponentDispatch.subscribe(ComponentActions.VOICE_PANEL_CLOSE, closure2);
return _fun118164;
}, [a0, a1, a2, a3]);
const value = env0_3(binding.useState(_fun118165), 2);
const property = value[0];
const env0_6 = value[1];
binding.useEffect(_fun118166, [a0, property]);
}
function doCloseChannel() { // fn#118158, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15640:755, owner: usePanelOpenState.doCloseChannel, offset: 0x024ce462, size: 37 bytes, params: 1, frame: 11
const value = environment.__proto__;
return VoicePanelStore.getState().closeChannel(env0_0);
}
function usePanelOpenStateO({connected}, a1) { // fn#118160, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15640:923, owner: usePanelOpenState.O, offset: 0x024ce4a0, size: 92 bytes, params: 3, frame: 13
var value4;
var moduleValue;
const connected = a1?.connected;
if (connected === true && !connected) {
value4 = environment.__proto__;
moduleValue = require(4017) /* metro dependency 4017: ReanimatedRexport */;
moduleValue.runOnJS(doCloseChannel)();
}
}
function _fun118161() { // fn#118161, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15640:1158, offset: 0x024ce4fc, size: 119 bytes, params: 1, frame: 20
const closure = componentActionOpen;
const closure2 = componentActionClose;
let ComponentDispatch = (require(1239) /* metro dependency 1239: ComponentDispatchUtils */).ComponentDispatch;
let subscribe = ComponentDispatch.subscribe;
let VOICE_PANEL_OPEN = ComponentActions.VOICE_PANEL_OPEN;
Reflect.apply(subscribe, ComponentDispatch, [VOICE_PANEL_OPEN, closure]);
subscribe = ComponentDispatch.subscribe;
let VOICE_PANEL_CLOSE = ComponentActions.VOICE_PANEL_CLOSE;
Reflect.apply(subscribe, ComponentDispatch, [VOICE_PANEL_CLOSE, closure2]);
return function() {
var ComponentDispatch = require(dependencyMap[6]).ComponentDispatch;
var VOICE_PANEL_OPEN = ComponentActions.VOICE_PANEL_OPEN;
ComponentDispatch.unsubscribe(VOICE_PANEL_OPEN, componentActionOpen);
var VOICE_PANEL_CLOSE = ComponentActions.VOICE_PANEL_CLOSE;
ComponentDispatch.unsubscribe(VOICE_PANEL_CLOSE, componentActionClose);
};
}
function _fun118165() { // fn#118165, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15640:1693, offset: 0x024ce692, size: 48 bytes, params: 1, frame: 11
let value = environment.__proto__;
value = importDefault(12080) /* metro dependency 12080: RouteManager */;
const getHistory = value.getHistory;
return Reflect.apply(getHistory, value, []).location.pathname;
}
function _fun118166() { // fn#118166, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15640:1774, offset: 0x024ce6c2, size: 58 bytes, params: 1, frame: 12
var environment;
const value = environment.__proto__;
const env0_0 = (importDefault(12080) /* metro dependency 12080: RouteManager */).addRouteChangeListener(_fun118167);
return _fun118168;
}
function componentActionOpen({channelId}) { // fn#118162, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15640:1163, offset: 0x024ce573, size: 83 bytes, params: 2, frame: 12
var r1;
var value3;
var value4;
const value2 = env1_0 === channelId;
if (value2) {
value3 = require.get();
value4 = environment.__proto__.__proto__;
r1 = value3 !== VoicePanelModes.PANEL;
} else {
r1 = value2;
}
if (r1) {
value = environment.__proto__.__proto__;
importDefault(VoicePanelModes.PANEL);
}
}
function componentActionClose() { // fn#118163, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15640:1242, offset: 0x024ce5c6, size: 105 bytes, params: 1, frame: 13
if (importAll.get()) {
if (require.get() !== VoicePanelModes.PIP) {
importDefault(VoicePanelModes.PIP);
}
} else {
VoicePanelStore.getState().closeChannel(env1_0);
}
}
function _fun118167(a0) { // fn#118167, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15640:1817, offset: 0x024ce6fc, size: 245 bytes, params: 2, frame: 24
var value2;
var moduleValue;
var matchPath;
var object2;
const RouteParam = (require(3987) /* metro dependency 3987: RouteUtils */).RouteParam;
var value4;
var moduleValue2;
const value = environment.__proto__;
const binding = env1_5;
let pathname = a0.pathname;
if (binding !== pathname) {
env1_6(env1_5);
value2 = environment.__proto__.__proto__;
moduleValue = require(3974) /* metro dependency 3974: matchPathCompat */;
matchPath = moduleValue.matchPath;
pathname = a0.pathname;
object2 = {};
object2.path = Routes.CHANNEL(RouteParam.guildId(), RouteParam.channelId());
value4 = Reflect.apply(matchPath, moduleValue, [pathname, object2]);
moduleValue2 = require(12073) /* metro dependency 12073: RouteManagerUtils */;
if (moduleValue2.extractParamsFromVoiceModalRoute(a0).voiceChannelId == null) {
if (!(value4 != null && value4.params.channelId === env1_0)) {
(importDefault(8088) /* metro dependency 8088: closeVoicePanels */)();
}
}
}
}
@@ -0,0 +1,146 @@
/* Metro module 11792; source: modules/voice_panel/native/controls/VoicePanelChatView.tsx; dependencies: [31, 27, 11793, 661, 33, 4501, 7712, 1239, 8341, 1244, 4067, 11794, 4017, 8141, 7704, 7701, 1478, 1585, 11801, 4603, 4003, 11337, 3868, 4556, 11802, 11273, 2] */
function _fun90308(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#90308, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11978:6, offset: 0x0203408b, size: 387 bytes, params: 8, frame: 23
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
(require(27) /* metro dependency 27 */).Platform;
const CONTROLS_DRAWER_HEADER_SIZE = (require(11793) /* metro dependency 11793: VoicePanelControlsConstants */).CONTROLS_DRAWER_HEADER_SIZE;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_4 = constantsModule.ComponentActions;
const env0_5 = constantsModule.ME;
const value3 = require(33) /* metro dependency 33 */;
const env0_6 = value3.jsx;
const env0_7 = value3.jsxs;
const env0_8 = (require(4501) /* metro dependency 4501: createStyles */).createStyles({container: {'flex': 1,
'overflow': 'hidden', paddingTop: CONTROLS_DRAWER_HEADER_SIZE}, gradientWrapper: {'position': 'absolute',
'top': null, 'left': 0, top: CONTROLS_DRAWER_HEADER_SIZE}, titleBlur: {opacity: 0}});
const value5 = value.memo(VoicePanelDismissChatButton);
object = {code: 'function VoicePanelChatViewTsx1(){const{windowDimensions}=this.__closure;return{width:windowDimensions.get().width,height:windowDimensions.get().height};}'};
const env0_10 = value.memo(_fun90312);
value = value.memo(VoicePanelChatView);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/VoicePanelChatView.tsx');
exports.default = value;
exports.MemoedVoicePanelDismissChatButton = value5;
}
function updateChatOpen_90309(a0, a1) { // fn#90309, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11978:377, offset: 0x0203420e, size: 45 bytes, params: 3, frame: 14
(importDefault(7712) /* metro dependency 7712: ChannelRTCActionCreators */).updateChatOpen(a0, a1);
}
function VoicePanelDismissChatButton() { // fn#90310, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11978:448, offset: 0x0203423b, size: 160 bytes, params: 1, frame: 20
const value2 = env0_3.useCallback(function() {
var ComponentDispatch = require(dependencyMap[7]).ComponentDispatch;
ComponentDispatch.dispatch(ComponentActions.VOICE_PANEL_TIV_CLOSE);
}, []);
const IconButton = (require(8341) /* metro dependency 8341: IconButtonNative */).IconButton;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
return (
<IconButton
accessibilityLabel={intl.string((require(1244) /* metro dependency 1244: indexNative */).t['5MstTl'])}
icon={importDefault(4067) /* metro dependency 4067 */}
onPress={value2}
variant="primary-overlay"
/>
);
}
function _fun90312() { // fn#90312, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11978:899, offset: 0x02034310, size: 212 bytes, params: 1, frame: 19
const binding = env0_3;
const useContext = binding.useContext;
const windowDimensions = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).windowDimensions;
const styles = useStyles();
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
const closure = function() {
var object = {};
var windowDimensionsBinding = windowDimensions;
object.width = windowDimensionsBinding.get().width;
object.height = windowDimensionsBinding.get().height;
return object;
};
closure.__closure = {windowDimensions: windowDimensions};
closure.__workletHash = 16775846409623;
closure.__initData = env0_9;
return ((Component) => <Component style={[styles.gradientWrapper, Reflect.apply(useAnimatedStyle,
reanimatedRexportModule,
[closure])]}>{((Component) => <Component absolute />)(importDefault(7704) /* metro dependency 7704: ThemedGradient */)}</Component>)(importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */);
}
function VoicePanelChatView({shown}) { // fn#90314, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11978:1228, offset: 0x02034413, size: 625 bytes, params: 2, frame: 34
const styles = useStyles();
const binding = env0_3;
const value2 = binding.useRef(null);
const {guildId,
channelId} = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const value4 = (require(7701) /* metro dependency 7701: ClientThemesOverrides */).useGradientTop();
const width = (importDefault(1478) /* metro dependency 1478: useWindowDimensionsNative */)().width;
const value5 = (importDefault(1585) /* metro dependency 1585: useSafeAreaInsetsNative */)();
const controlsDrawerOpenWidth = (require(11801) /* metro dependency 11801: VoicePanelControlsUtils */).getControlsDrawerOpenWidth(width,
value5.left, value5.right);
binding.useEffect(function() {
var defaultImport = importDefault(dependencyMap[19]);
defaultImport.preload(guildId ?? ME, channelId);
return _fun90316;
}, [guildId, channelId]);
binding.useEffect(_fun90317, [channelId, shown]);
const value7 = binding.useCallback(function() {
var ComponentDispatch = require(dependencyMap[7]).ComponentDispatch;
ComponentDispatch.dispatch(ComponentActions.VOICE_PANEL_TIV_CLOSE);
}, []);
const value8 = (importDefault(4003) /* metro dependency 4003: useColorThemeBackground */)();
const Provider = (importDefault(11337) /* metro dependency 11337: ChatViewWidthContext */).Provider;
const ThemeContextProvider = (require(3868) /* metro dependency 3868: native */).ThemeContextProvider;
const AccessibilityView = (require(4556) /* metro dependency 4556: AccessibilityViewNative */).AccessibilityView;
const items3 = [styles.container, value4];
const items2 = [((Component) => <Component />)(env0_10)];
const VoicePanelControlsDrawerTitle = importDefault(11802) /* metro dependency 11802: VoicePanelControlsDrawerTitle */;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
items2[1] = <VoicePanelControlsDrawerTitle title={intl.string((require(1244) /* metro dependency 1244: indexNative */).t['/VQax8'])} disablePill blurStyle={styles.titleBlur} />;
items2[2] = ((Component) => <Component disableGradient alwaysRespectKeyboard={false} setNoExtractUI={false} guildId={guildId ?? ME} channelId={channelId} chatInputRef={value2} screenIndex="voice-panel" />)(importDefault(11273) /* metro dependency 11273: ChatView */);
return (
<Provider value={controlsDrawerOpenWidth}>
<ThemeContextProvider gradient={value8}>
<AccessibilityView
nativeID="voice-panel-chat-view"
accessibilityViewIsModal={shown}
onAccessibilityEscape={value7}
style={items3}
>
{items2}
</AccessibilityView>
</ThemeContextProvider>
</Provider>
);
}
function _fun90315() { // fn#90315, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11978:1474, offset: 0x02034684, size: 75 bytes, params: 1, frame: 15
const defaultImport = importDefault(4603) /* metro dependency 4603: ChannelActionCreators */;
defaultImport.preload(guildId ?? ME, channelId);
return function() {
updateChatOpen_90309(channelId, false);
};
}
function _fun90317() { // fn#90317, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11978:1560, offset: 0x020346e9, size: 95 bytes, params: 1, frame: 14
const updateChatOpen_90309Binding = updateChatOpen_90309;
const channelIdBinding = channelId;
const shownBinding = shown;
updateChatOpen_90309Binding(channelIdBinding, shownBinding);
let current = env0_1.current;
if (shownBinding) {
if (current != null) {
current.chatInputTrackerRegister();
}
} else {
if (current != null) {
current.chatInputTrackerUnregister();
}
current = env0_1.current;
if (current != null) {
current.blur();
}
}
}
@@ -0,0 +1,189 @@
/* Metro module 15522; source: modules/voice_panel/native/controls/VoicePanelConsoleStatus.tsx; dependencies: [31, 11795, 11798, 11793, 33, 4501, 697, 11794, 15517, 4017, 4508, 15523, 4577, 6821, 1305, 4573, 5278, 9422, 1244, 15524, 2] */
function _fun118857(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118857, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15719:6, offset: 0x024f1b51, size: 502 bytes, params: 8, frame: 27
var object2;
const env0_0 = require;
const closure = VoicePanelConsoleStatus;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const MODE_CHANGE_PHYSICS = (require(11795) /* metro dependency 11795: VoicePanelConstants */).MODE_CHANGE_PHYSICS;
const env0_4 = (require(11798) /* metro dependency 11798: VoicePanelCardConstants */).EDGE_GUTTER;
const CONTROLS_HEIGHT = (require(11793) /* metro dependency 11793: VoicePanelControlsConstants */).CONTROLS_HEIGHT;
let value = require(33) /* metro dependency 33 */;
const env0_6 = value.jsx;
const env0_7 = value.jsxs;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
object2 = {consoleParentContainer: {'zIndex': 1, 'position': 'absolute', 'bottom': 0, 'overflow': 'hidden',
'left': -0.5, 'right': 0, 'alignItems': 'center'}};
let VOICE_PANEL_CONTROLS_BORDER_RADIUS = (importDefault(697) /* metro dependency 697: native */).modules.mobile.VOICE_PANEL_CONTROLS_BORDER_RADIUS;
object2.consoleContainer = {borderRadius: VOICE_PANEL_CONTROLS_BORDER_RADIUS, overflow: 'hidden'};
object2.consoleItemContainer = {'flexDirection': 'row', 'alignItems': 'center', 'height': 36,
'marginHorizontal': 18};
object2.consoleText = {'textAlign': 'left', 'marginStart': 4, 'flex': 1};
VOICE_PANEL_CONTROLS_BORDER_RADIUS = (importDefault(697) /* metro dependency 697: native */).modules.mobile.VOICE_PANEL_CONTROLS_BORDER_RADIUS;
object2.blockingControlCover = {'position': 'absolute', 'bottom': 0, 'borderRadius': null, 'flex': 1,
'height': null, 'overflow': 'hidden', borderRadius: VOICE_PANEL_CONTROLS_BORDER_RADIUS, height: CONTROLS_HEIGHT};
const env0_8 = Reflect.apply(createStyles, value, [object2]);
object2 = {};
copyDataProperties(object2, MODE_CHANGE_PHYSICS, undefined);
object2['overshootClamping'] = true;
object2 = {code: "function VoicePanelConsoleStatusTsx1(){const{color,windowDimensions,EDGE_GUTTER,CONTROLS_HEIGHT,CONSOLE_STATUS_HEIGHT,withSpring,shouldShow,FADE_IN_MODE_PHYSICS,runOnJS,cleanUp}=this.__closure;return{backgroundColor:color,width:windowDimensions.get().width-EDGE_GUTTER*2,height:CONTROLS_HEIGHT+CONSOLE_STATUS_HEIGHT,borderRadius:32,transform:[{translateY:withSpring(shouldShow.get()?0:100,FADE_IN_MODE_PHYSICS,'respect-motion-settings',function(finished){if(finished&&!shouldShow.get()){runOnJS(cleanUp)();}})}]};}"};
object2 = {code: 'function VoicePanelConsoleStatusTsx2(finished){const{shouldShow,runOnJS,cleanUp}=this.__closure;if(finished&&!shouldShow.get()){runOnJS(cleanUp)();}}'};
object2 = {code: 'function VoicePanelConsoleStatusTsx3(){const{windowDimensions,EDGE_GUTTER}=this.__closure;return{width:windowDimensions.get().width-EDGE_GUTTER*2};}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/VoicePanelConsoleStatus.tsx');
exports.default = closure;
exports.CONSOLE_STATUS_HEIGHT = 36;
exports.renderVoicePanelConsoleStatus = renderVoicePanelConsoleStatus;
}
function VoicePanelConsoleStatus({wrapperSpecs, accessoryHeights, state, cleanUp}) { // fn#118858, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15719:1646, offset: 0x024f1d47, size: 1063 bytes, params: 2, frame: 40
var object2;
var r18;
var PressableOpacity;
var intl;
const styles = useStyles();
const {channelId, windowDimensions,
mode} = env0_3.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const value3 = (importDefault(15517) /* metro dependency 15517: useConsoleConnectingInfo */)(channelId);
const icon = value3.icon;
const text = value3.text;
const color = value3.color;
var env0_3 = color;
const displayCancel = value3.displayCancel;
const value4 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(false);
env0_3.useEffect(_fun118859, [value4, state]);
const value5 = (importDefault(15523) /* metro dependency 15523: useControlsTranslation */)(mode, wrapperSpecs,
accessoryHeights);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
let useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
let closure = VoicePanelConsoleStatusV;
object2 = {color: color, windowDimensions: windowDimensions};
object2.EDGE_GUTTER = EDGE_GUTTER;
object2.CONTROLS_HEIGHT = CONTROLS_HEIGHT;
object2.CONSOLE_STATUS_HEIGHT = 36;
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.shouldShow = value4;
object2.FADE_IN_MODE_PHYSICS = env0_9;
object2.runOnJS = reanimatedRexportModule.runOnJS;
object2.cleanUp = cleanUp;
closure.__closure = object2;
closure.__workletHash = 14156265059426;
closure.__initData = env0_10;
const value6 = Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
const moduleValue3 = reanimatedRexportModule;
useAnimatedStyle = moduleValue3.useAnimatedStyle;
closure = function() {
var object = {};
object.width = windowDimensions.get().width - 2 * EDGE_GUTTER;
return object;
};
closure.__closure = {windowDimensions: windowDimensions, EDGE_GUTTER: EDGE_GUTTER};
closure.__workletHash = 2418678233810;
closure.__initData = env0_12;
const value7 = Reflect.apply(useAnimatedStyle, moduleValue3, [closure]);
const View = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View;
const items4 = [styles.consoleParentContainer, value5];
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const items2 = [styles.consoleContainer];
const View2 = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View;
const defaultImport2 = NativeView;
const Icon = (require(1305) /* metro dependency 1305: native */).Icon;
const WHITE = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.WHITE;
const IconSizes = (require(1305) /* metro dependency 1305: native */).IconSizes;
const SMALL = IconSizes.SMALL;
const items3 = [<Icon source={icon} color={WHITE} size={SMALL} />];
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
items3[1] = <Text variant="text-sm/medium" color="always-white" style={styles.consoleText}>{text}</Text>;
if (displayCancel) {
PressableOpacity = (require(5278) /* metro dependency 5278: Pressables */).PressableOpacity;
var pressableOpacityProps = {hitSlop: 4,
onPress: (require(9422) /* metro dependency 9422: GameConsoleActionCreators */).disconnectRemote};
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
r18 = <PressableOpacity {...pressableOpacityProps}><Text variant="text-sm/medium" color="always-white">{intl.string((require(1244) /* metro dependency 1244: indexNative */).t['ETE/oC'])}</Text></PressableOpacity>;
} else {
r18 = null;
}
items3[2] = r18;
const nativeView = <NativeView style={items2}><View2 style={value6}>{((Component) => <Component style={styles.consoleItemContainer}>{items3}</Component>)(defaultImport2)}</View2></NativeView>;
const View3 = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View;
const items5 = [styles.blockingControlCover, value7];
const VoicePanelVisualEffectView = (require(15524) /* metro dependency 15524: VoicePanelVisualEffectView */).VoicePanelVisualEffectView;
return (
<View style={items4}>
{nativeView}
<View3 style={items5}>
<VoicePanelVisualEffectView />
</View3>
</View>
);
}
function renderVoicePanelConsoleStatus(a0, a1, a2, a3) { // fn#118863, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15719:3690, offset: 0x024f232c, size: 61 bytes, params: 5, frame: 15
return (
<VoicePanelConsoleStatus
{...a1}
{...{['state']: a2}}
{...{['cleanUp']: a3}}
key={a0}
/>
);
}
function _fun118859() { // fn#118859, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15719:1913, offset: 0x024f216e, size: 64 bytes, params: 1, frame: 14
const binding = env0_4;
const set = binding.set;
const stateBinding = state;
const TransitionStates = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates;
const YEETED = TransitionStates.YEETED;
Reflect.apply(set, binding, [stateBinding !== YEETED]);
}
function VoicePanelConsoleStatusV() { // fn#118860, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15719:2028, owner: VoicePanelConsoleStatus.V, offset: 0x024f21ae, size: 257 bytes, params: 1, frame: 25
const object2 = {};
object2.backgroundColor = color;
const windowDimensionsBinding = windowDimensions;
const get = windowDimensionsBinding.get;
object2.width = Reflect.apply(get, windowDimensionsBinding, []).width - 2 * EDGE_GUTTER;
object2.height = CONTROLS_HEIGHT + 36;
object2.borderRadius = 32;
const springModule = require(4577) /* metro dependency 4577: spring */;
const withSpring = springModule.withSpring;
let binding = env0_4;
const r5 = binding.get() ? 0 : 100;
binding = env1_9;
const closure = VN_118861;
const object4 = {shouldShow: env0_4};
object4.runOnJS = (require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS;
object4.cleanUp = cleanUp;
closure.__closure = object4;
closure.__workletHash = 9820708059867;
closure.__initData = env1_11;
object2.transform = [{translateY: Reflect.apply(withSpring, springModule, [r5, binding, 'respect-motion-settings',
closure])}];
return object2;
}
function VN_118861(a0) { // fn#118861, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15719:2204, owner: VoicePanelConsoleStatus.V.n, offset: 0x024f22af, size: 78 bytes, params: 2, frame: 12
var r0;
var binding;
var runOnJS;
var value2;
let value = a0;
if (value) {
value = environment.__proto__;
binding = env1_4;
value = !binding.get();
r0 = value;
} else {
r0 = value;
}
if (r0) {
value = environment.__proto__.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
runOnJS = value.runOnJS;
value2 = environment.__proto__;
Reflect.apply(runOnJS, value, [cleanUp])();
}
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,109 @@
/* Metro module 15561; source: modules/voice_panel/native/controls/VoicePanelControlsAppLauncher.tsx; dependencies: [31, 1379, 11793, 661, 33, 4501, 7701, 11794, 8621, 566, 44, 11801, 1239, 8774, 8048, 4017, 11622, 11802, 1244, 2] */
function _fun119100(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#119100, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15758:6, offset: 0x024fc937, size: 334 bytes, params: 8, frame: 22
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const voicePanelControlsConstantsModule = require(11793) /* metro dependency 11793: VoicePanelControlsConstants */;
const env0_5 = voicePanelControlsConstantsModule.VoicePanelControlsModes;
const CONTROLS_DRAWER_HEADER_SIZE = voicePanelControlsConstantsModule.CONTROLS_DRAWER_HEADER_SIZE;
const env0_6 = (require(661) /* metro dependency 661: Constants */).ComponentActions;
const value3 = require(33) /* metro dependency 33 */;
const env0_7 = value3.jsx;
const env0_8 = value3.jsxs;
const env0_9 = value3.Fragment;
const env0_10 = (require(4501) /* metro dependency 4501: createStyles */).createStyles({container: {width: '100%',
paddingTop: CONTROLS_DRAWER_HEADER_SIZE}});
object = {code: 'function VoicePanelControlsAppLauncherTsx1(){const{gestureSpecs}=this.__closure;return gestureSpecs.get().active;}'};
object = {code: 'function VoicePanelControlsAppLauncherTsx2(){const{gestureSpecs}=this.__closure;return gestureSpecs.get().isDrawer;}'};
object = {code: "function VoicePanelControlsAppLauncherTsx3(){const{isGestureActive,isGestureDrawerMode,windowDimensions,safeArea}=this.__closure;const height=isGestureActive.get()||!isGestureDrawerMode.get()?windowDimensions.height-safeArea.top:'100%';return{height:height};}"};
value = value.memo(VoicePanelControlsAppLauncher);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/VoicePanelControlsAppLauncher.tsx');
exports.default = value;
}
function VoicePanelControlsAppLauncher({gestureSpecs}) { // fn#119101, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15758:856, offset: 0x024fca85, size: 908 bytes, params: 2, frame: 37
const styles = useStyles();
const value2 = (require(7701) /* metro dependency 7701: ClientThemesOverrides */).useGradientTop();
const binding = env0_3;
const value3 = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const setControlsMode = value3.setControlsMode;
const safeArea = value3.safeArea;
const windowDimensions = value3.windowDimensions;
const env0_2 = value3.channelId;
const value4 = (importDefault(8621) /* metro dependency 8621: useStateFromSharedValue */)(windowDimensions);
const value5 = (importDefault(8621) /* metro dependency 8621: useStateFromSharedValue */)(safeArea);
const channel = (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelStore], function() {
return ChannelStore.getChannel(channelId);
});
(importDefault(44) /* metro dependency 44 */)(channel != null, 'channel should not be null');
const controlsDrawerOpenWidth = (require(11801) /* metro dependency 11801: VoicePanelControlsUtils */).getControlsDrawerOpenWidth(value4.width,
value5.left, value5.right);
const value7 = binding.useCallback(function() {
var ComponentDispatch = require(dependencyMap[12]).ComponentDispatch;
ComponentDispatch.dispatch(ComponentActions.SELECT_ACTIVITY);
setControlsMode({mode: VoicePanelControlsModes.HIDDEN});
}, [setControlsMode]);
const value8 = (require(8774) /* metro dependency 8774: AppLauncherContext */).useAppLauncherChatInputRefDummy({noop: true});
const AppLauncherEntrypoint = (require(8048) /* metro dependency 8048: AppLauncherTypes */).AppLauncherEntrypoint;
const VOICE = AppLauncherEntrypoint.VOICE;
const useRef = binding.useRef;
const AppLauncherKeyboardCloseReason = (require(8774) /* metro dependency 8774: AppLauncherContext */).AppLauncherKeyboardCloseReason;
const DISMISSED = AppLauncherKeyboardCloseReason.DISMISSED;
const value9 = Reflect.apply(useRef, binding, [DISMISSED]);
const value10 = binding.useRef(undefined);
const value11 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(0);
const value12 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(0);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
let useDerivedValue = reanimatedRexportModule.useDerivedValue;
let closure = function() {
return gestureSpecs.get().active;
};
closure.__closure = {gestureSpecs: gestureSpecs};
closure.__workletHash = 1130089519653;
closure.__initData = env0_11;
const value13 = Reflect.apply(useDerivedValue, reanimatedRexportModule, [closure]);
const moduleValue8 = reanimatedRexportModule;
useDerivedValue = moduleValue8.useDerivedValue;
closure = function() {
return gestureSpecs.get().isDrawer;
};
closure.__closure = {gestureSpecs: gestureSpecs};
closure.__workletHash = 13970291088135;
closure.__initData = env0_12;
const value14 = Reflect.apply(useDerivedValue, moduleValue8, [closure]);
const moduleValue9 = reanimatedRexportModule;
const useAnimatedStyle = moduleValue9.useAnimatedStyle;
closure = VoicePanelControlsAppLauncherL;
closure.__closure = {isGestureActive: value13, isGestureDrawerMode: value14, windowDimensions: value4,
safeArea: value5};
closure.__workletHash = 3671157204025;
closure.__initData = env0_13;
const value15 = Reflect.apply(useAnimatedStyle, moduleValue9, [closure]);
const jsxRuntimeEnv0_9Binding = jsxRuntimeEnv0_9;
const View = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View;
const items3 = [styles.container, value2, value15];
let value = importDefault(11622) /* metro dependency 11622: AppLauncherNavigator */;
value = ((Component) => <Component bottomSheetIndex={value12} bottomSheetPosition={value11} bottomSheetExpandReasonRef={value10} context={{type: 'channel',
channel: channel}} chatInputRef={value8} entrypoint={VOICE} keyboardCloseReasonRef={value9} onActivityItemSelected={value7} width={controlsDrawerOpenWidth} />)(value);
const items2 = [value];
value = importDefault(11802) /* metro dependency 11802: VoicePanelControlsDrawerTitle */;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
items2[1] = ((Component) => <Component title={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.shUONg)} disablePill />)(value);
return (
<>
<View style={items3}>
{items2}
</View>
</>
);
}
function VoicePanelControlsAppLauncherL() { // fn#119106, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15758:1866, owner: VoicePanelControlsAppLauncher.L, offset: 0x024fceac, size: 71 bytes, params: 1, frame: 11
const binding = env0_5;
const get = binding.get;
return {height: Reflect.apply(get, binding,
[]) ? env0_3.height - env0_4.top : env0_6.get() ? '100%' : env0_3.height - env0_4.top};
}
@@ -0,0 +1,18 @@
/* Metro module 11793; source: modules/voice_panel/native/controls/VoicePanelControlsConstants.tsx; dependencies: [2] */
function _fun90319(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#90319, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11979:6, offset: 0x02034748, size: 218 bytes, params: 8, frame: 16
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/VoicePanelControlsConstants.tsx');
exports.VoicePanelControlsModes = {FLOATING_DEFAULT: 'floating-default', DRAWER: 'drawer', HIDDEN: 'hidden',
RESET: 'reset'};
exports.CONTROLS_HEIGHT_PTT = 112;
exports.CONTROLS_HEIGHT = 80;
exports.CONTROLS_MAX_WIDTH = 400;
exports.CONTROLS_HIDE_TIMEOUT = 3000;
exports.CONTROLS_BACKGROUND_OPACITY_ANDROID = 0.9;
exports.CONTROLS_BUTTON_SIZE_NORMAL = 48;
exports.CONTROLS_BUTTON_SIZE_LARGE = 72;
exports.CONTROLS_DRAWER_HEADER_SIZE = 60;
exports.CONTROLS_DRAWER_HEADER_EXPANDED_SIZE = 104;
}
@@ -0,0 +1,142 @@
/* Metro module 15548; source: modules/voice_panel/native/controls/VoicePanelControlsDimOverlay.tsx; dependencies: [31, 12760, 11795, 11793, 33, 11794, 4017, 15516, 4577, 12991, 4562, 2] */
function _fun118983(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118983, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15745:6, offset: 0x024f7be0, size: 292 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(12760) /* metro dependency 12760: BackdropConstants */).BACKDROP_OPAQUE_MAX_OPACITY;
const voicePanelConstantsModule = require(11795) /* metro dependency 11795: VoicePanelConstants */;
const env0_5 = voicePanelConstantsModule.PANEL_CONTROLS_HEIGHT_PHYSICS;
const env0_6 = voicePanelConstantsModule.VoicePanelModes;
const env0_7 = (require(11793) /* metro dependency 11793: VoicePanelControlsConstants */).VoicePanelControlsModes;
const env0_8 = (require(33) /* metro dependency 33 */).jsx;
object = {code: "function VoicePanelControlsDimOverlayTsx1(){const{windowDimensions,getDrawerSpec,safeArea,controlsSpecs,VoicePanelControlsModes,mode,VoicePanelModes,interpolate,wrapperSpecs,BACKDROP_OPAQUE_MAX_OPACITY}=this.__closure;const{height:height}=windowDimensions.get();const{minHeight:minHeight,maxHeight:maxHeight}=getDrawerSpec(height,safeArea.get().top);if(controlsSpecs.get().mode!==VoicePanelControlsModes.DRAWER||mode.get()!==VoicePanelModes.PANEL){return 0;}return interpolate(wrapperSpecs.get().height,[minHeight,maxHeight],[0,BACKDROP_OPAQUE_MAX_OPACITY],'clamp');}"};
object = {code: 'function VoicePanelControlsDimOverlayTsx2(){const{overlayOpacity}=this.__closure;return overlayOpacity.get()>=0.35;}'};
object = {code: "function VoicePanelControlsDimOverlayTsx3(){const{withSpring,overlayOpacity,PANEL_CONTROLS_HEIGHT_PHYSICS,accessibilityPreferencesSharedValue,overlayActive}=this.__closure;return{zIndex:1,opacity:withSpring(overlayOpacity.get(),PANEL_CONTROLS_HEIGHT_PHYSICS),display:accessibilityPreferencesSharedValue.get().screenReaderEnabled&&!overlayActive.get()?'none':'flex'};}"};
object = {code: "function VoicePanelControlsDimOverlayTsx4(){const{overlayActive}=this.__closure;return{pointerEvents:!overlayActive.get()?'none':'auto'};}"};
value = value.memo(VoicePanelControlsDimOverlay);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/VoicePanelControlsDimOverlay.tsx');
exports.default = value;
}
function VoicePanelControlsDimOverlay({wrapperSpecs}) { // fn#118984, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15745:1506, offset: 0x024f7d04, size: 614 bytes, params: 2, frame: 26
const binding = env0_3;
const {windowDimensions, setControlsMode, controlsSpecs, safeArea,
mode} = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
let useDerivedValue = reanimatedRexportModule.useDerivedValue;
let closure = VoicePanelControlsDimOverlayA;
const object2 = {windowDimensions: windowDimensions};
const getDrawerSpec = (require(15516) /* metro dependency 15516: VoicePanelControlUtils */).getDrawerSpec;
object2.getDrawerSpec = getDrawerSpec;
object2.safeArea = safeArea;
object2.controlsSpecs = controlsSpecs;
object2.VoicePanelControlsModes = VoicePanelControlsModes;
object2.mode = mode;
object2.VoicePanelModes = VoicePanelModes;
object2.interpolate = reanimatedRexportModule.interpolate;
object2.wrapperSpecs = wrapperSpecs;
object2.BACKDROP_OPAQUE_MAX_OPACITY = BACKDROP_OPAQUE_MAX_OPACITY;
closure.__closure = object2;
closure.__workletHash = 17386741533055;
closure.__initData = env0_9;
const value3 = Reflect.apply(useDerivedValue, reanimatedRexportModule, [closure]);
const moduleValue2 = reanimatedRexportModule;
useDerivedValue = moduleValue2.useDerivedValue;
closure = VoicePanelControlsDimOverlayY;
closure.__closure = {overlayOpacity: value3};
closure.__workletHash = 733654137262;
closure.__initData = env0_10;
const value4 = Reflect.apply(useDerivedValue, moduleValue2, [closure]);
const moduleValue3 = reanimatedRexportModule;
const useAnimatedStyle = moduleValue3.useAnimatedStyle;
closure = VoicePanelControlsDimOverlayS;
closure.__closure = {withSpring: (require(4577) /* metro dependency 4577: spring */).withSpring,
overlayOpacity: value3, PANEL_CONTROLS_HEIGHT_PHYSICS: PANEL_CONTROLS_HEIGHT_PHYSICS,
accessibilityPreferencesSharedValue: (require(12991) /* metro dependency 12991: AccessibilityPreferencesSharedValue */).accessibilityPreferencesSharedValue,
overlayActive: value4};
closure.__workletHash = 7500180433000;
closure.__initData = env0_11;
const value5 = Reflect.apply(useAnimatedStyle, moduleValue3, [closure]);
const moduleValue4 = reanimatedRexportModule;
const useAnimatedProps = moduleValue4.useAnimatedProps;
closure = VoicePanelControlsDimOverlayV;
closure.__closure = {overlayActive: value4};
closure.__workletHash = 873976025930;
closure.__initData = env0_12;
const value6 = Reflect.apply(useAnimatedProps, moduleValue4, [closure]);
const value7 = binding.useCallback(function() {
setControlsMode({mode: VoicePanelControlsModes.FLOATING_DEFAULT});
}, [setControlsMode]);
const Backdrop = (require(4562) /* metro dependency 4562: BackdropNative */).Backdrop;
return (
<Backdrop
onDismiss={value7}
style={value5}
animatedProps={value6}
opaque
{...{['aria-hidden']: true}}
/>
);
}
function VoicePanelControlsDimOverlayA() { // fn#118985, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15745:1709, owner: VoicePanelControlsDimOverlay.A, offset: 0x024f7f6a, size: 244 bytes, params: 1, frame: 20
var r0;
var moduleValue2;
var interpolate;
var wrapperSpecsBinding;
const windowDimensionsBinding = windowDimensions;
let get = windowDimensionsBinding.get;
const height = Reflect.apply(get, windowDimensionsBinding, []).height;
const voicePanelControlUtilsModule = require(15516) /* metro dependency 15516: VoicePanelControlUtils */;
const getDrawerSpec = voicePanelControlUtilsModule.getDrawerSpec;
const safeAreaBinding = safeArea;
get = safeAreaBinding.get;
const {minHeight, maxHeight} = Reflect.apply(getDrawerSpec, voicePanelControlUtilsModule, [height,
Reflect.apply(get, safeAreaBinding, []).top]);
const controlsSpecsBinding = controlsSpecs;
get = controlsSpecsBinding.get;
const mode2 = Reflect.apply(get, controlsSpecsBinding, []).mode;
const DRAWER = VoicePanelControlsModes.DRAWER;
const value4 = 0;
if (mode2 !== DRAWER) {
r0 = value4;
} else if (mode.get() !== VoicePanelModes.PANEL) {
r0 = value4;
} else {
moduleValue2 = require(4017) /* metro dependency 4017: ReanimatedRexport */;
interpolate = moduleValue2.interpolate;
wrapperSpecsBinding = wrapperSpecs;
r0 = Reflect.apply(interpolate, moduleValue2, [wrapperSpecsBinding.get().height, [minHeight, maxHeight], [0,
BACKDROP_OPAQUE_MAX_OPACITY], 'clamp']);
}
return r0;
}
function VoicePanelControlsDimOverlayY() { // fn#118986, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15745:2219, owner: VoicePanelControlsDimOverlay.y, offset: 0x024f805e, size: 32 bytes, params: 1, frame: 9
return env0_6.get() >= 0.35;
}
function VoicePanelControlsDimOverlayS() { // fn#118987, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15745:2345, owner: VoicePanelControlsDimOverlay.S, offset: 0x024f807e, size: 143 bytes, params: 1, frame: 19
const object2 = {zIndex: 1};
let value = environment.__proto__;
const springModule = require(4577) /* metro dependency 4577: spring */;
const withSpring = springModule.withSpring;
const binding = env0_6;
let get = binding.get;
object2.opacity = Reflect.apply(withSpring, springModule, [Reflect.apply(get, binding, []),
PANEL_CONTROLS_HEIGHT_PHYSICS]);
const accessibilityPreferencesSharedValue = (require(12991) /* metro dependency 12991: AccessibilityPreferencesSharedValue */).accessibilityPreferencesSharedValue;
get = accessibilityPreferencesSharedValue.get;
const screenReaderEnabled = Reflect.apply(get, accessibilityPreferencesSharedValue, []).screenReaderEnabled;
value = 'flex';
object2.display = screenReaderEnabled ? env0_7.get() ? value : 'none' : value;
return object2;
}
function VoicePanelControlsDimOverlayV() { // fn#118988, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15745:2781, owner: VoicePanelControlsDimOverlay.v, offset: 0x024f810d, size: 36 bytes, params: 1, frame: 10
const object2 = {};
object2.pointerEvents = env0_7.get() ? 'auto' : 'none';
return object2;
}
@@ -0,0 +1,219 @@
/* Metro module 15549; source: modules/voice_panel/native/controls/VoicePanelControlsDrawer.tsx; dependencies: [57, 31, 27, 11795, 33, 4501, 697, 6619, 4521, 11792, 11794, 4017, 11801, 4577, 7739, 15550, 15561, 2] */
function _fun118990(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118990, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15746:6, offset: 0x024f8154, size: 451 bytes, params: 8, frame: 24
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
let value = importAll(31) /* metro dependency 31 */;
const value2 = require(27) /* metro dependency 27 */;
const StyleSheet = value2.StyleSheet;
const env0_6 = value2.View;
const voicePanelConstantsModule = require(11795) /* metro dependency 11795: VoicePanelConstants */;
const env0_7 = voicePanelConstantsModule.MODE_CHANGE_PHYSICS;
const env0_8 = voicePanelConstantsModule.VoicePanelModes;
const value4 = require(33) /* metro dependency 33 */;
const env0_9 = value4.jsx;
const env0_10 = value4.jsxs;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {};
let BACKGROUND_BASE_LOWER = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOWER;
object2.drawer = {'flex': 1, 'zIndex': 1, backgroundColor: BACKGROUND_BASE_LOWER};
const object4 = {};
copyDataProperties(object4, StyleSheet.absoluteFillObject, undefined);
BACKGROUND_BASE_LOWER = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOWER;
object4['backgroundColor'] = BACKGROUND_BASE_LOWER;
object2.tabOverlay = object4;
const env0_11 = Reflect.apply(createStyles, createStylesModule, [object2]);
const value6 = value.memo(_fun118992);
object2 = {code: 'function VoicePanelControlsDrawerTsx1(){const{getControlsDrawerOpenWidth,windowDimensions,safeArea,withSpring,wrapperSpecs,TRANSITIONAL_HEIGHT,MODE_CHANGE_PHYSICS}=this.__closure;return{width:getControlsDrawerOpenWidth(windowDimensions.get().width,safeArea.get().left,safeArea.get().right),opacity:withSpring(wrapperSpecs.get().height>=TRANSITIONAL_HEIGHT?1:0,MODE_CHANGE_PHYSICS)};}'};
object2 = {code: 'function VoicePanelControlsDrawerTsx2(){const{wrapperSpecs,mode}=this.__closure;return[wrapperSpecs.get().drawerMode,mode.get()];}'};
object2 = {code: 'function VoicePanelControlsDrawerTsx3(props,previous){const{cheapWorkletArrayShallowEqual,VoicePanelModes,runOnJS,setFreeze}=this.__closure;if(cheapWorkletArrayShallowEqual(props,previous!==null&&previous!==void 0?previous:undefined))return;const[isDrawer,mode]=props;if(previous!=null&&isDrawer===previous[0]&&mode===previous[1]){return;}if(mode!==VoicePanelModes.PANEL||!isDrawer){runOnJS(setFreeze)(true);}else{runOnJS(setFreeze)(false);}}'};
value = value.memo(VoicePanelControlsDrawer);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/VoicePanelControlsDrawer.tsx');
exports.default = value;
exports.LazyContentFreezer = value6;
}
function renderChat(a0) { // fn#118991, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15746:726, offset: 0x024f8317, size: 88 bytes, params: 2, frame: 17
return (
<View collapsable={false} style={StyleSheet.absoluteFill}>
{((Component) => <Component shown={a0} />)(importDefault(11792) /* metro dependency 11792: VoicePanelChatView */)}
</View>
);
}
function _fun118992({shown, renderContent}) { // fn#118992, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15746:435, offset: 0x024f836f, size: 273 bytes, params: 2, frame: 20
let binding = env0_4;
const value3 = undefined(binding.useState(!shown), 2);
const property = value3[0];
if (shown && property) {
value3[1](false);
}
binding = env0_4;
const value4 = binding.useRef(shown);
binding.useEffect(_fun118993);
binding.useEffect(_fun118994, [shown]);
if ((importDefault(6619) /* metro dependency 6619: useRefValue */)(value4) || shown) {
const Freeze = (require(4521) /* metro dependency 4521 */).Freeze;
return (
<Freeze freeze={property}>
{binding.useMemo(function() {
return renderContent(shown);
}, [renderContent, shown])}
</Freeze>
);
} else {
return null;
}
}
function VoicePanelControlsDrawer({tab, sharedTab, wrapperSpecs, gestureSpecs, openTab}) { // fn#118996, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15746:1838, offset: 0x024f84b8, size: 782 bytes, params: 2, frame: 30
let binding = env0_4;
const value2 = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const mode = value2.mode;
const env0_3 = mode;
const windowDimensions = value2.windowDimensions;
var env0_4 = windowDimensions;
const safeArea = value2.safeArea;
const styles = useStyles();
const [property, property2] = env0_3(binding.useState(tab == null), 2);
const get = sharedTab.get;
if (tab !== Reflect.apply(get, sharedTab, []) && property) {
property2(false);
}
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
let closure = VoicePanelControlsDrawerK;
const object2 = {};
const getControlsDrawerOpenWidth = (require(11801) /* metro dependency 11801: VoicePanelControlsUtils */).getControlsDrawerOpenWidth;
object2.getControlsDrawerOpenWidth = getControlsDrawerOpenWidth;
object2.windowDimensions = windowDimensions;
object2.safeArea = safeArea;
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.wrapperSpecs = wrapperSpecs;
object2.TRANSITIONAL_HEIGHT = 200;
object2.MODE_CHANGE_PHYSICS = MODE_CHANGE_PHYSICS;
closure.__closure = object2;
closure.__workletHash = 8777106499672;
closure.__initData = env0_13;
const value6 = Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
const moduleValue2 = reanimatedRexportModule;
const useAnimatedReaction = moduleValue2.useAnimatedReaction;
closure = function() {
var items = [wrapperSpecs.get().drawerMode];
items[1] = mode.get();
return items;
};
closure.__closure = {wrapperSpecs: wrapperSpecs, mode: mode};
closure.__workletHash = 16802013961309;
closure.__initData = env0_14;
const closure2 = VoicePanelControlsDrawerM;
closure2.__closure = {cheapWorkletArrayShallowEqual: (require(7739) /* metro dependency 7739: cheapWorkletShallowEqual */).cheapWorkletArrayShallowEqual,
VoicePanelModes: VoicePanelModes, runOnJS: reanimatedRexportModule.runOnJS, setFreeze: property2};
closure2.__workletHash = 10375596551326;
closure2.__initData = env0_15;
Reflect.apply(useAnimatedReaction, moduleValue2, [closure, closure2]);
binding = env0_4;
const value7 = binding.useCallback(_fun119000, [openTab, styles]);
const value8 = binding.useCallback(_fun119001, [gestureSpecs, styles]);
const View = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View;
binding = env0_12;
const value9 = !property;
return (
<View style={[styles.drawer, value6]}>
{((Component) => <Component shown={property ? value9 : tab === 'chat'} renderContent={renderChat} />)(binding)}
{((Component) => <Component shown={property ? value9 : tab === 'settings'} renderContent={value7} />)(env0_12)}
{((Component) => <Component shown={property ? value9 : tab === 'app_launcher'} renderContent={value8} />)(env0_12)}
</View>
);
}
function _fun118993() { // fn#118993, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15746:558, offset: 0x024f8480, size: 29 bytes, params: 1, frame: 4
const binding = env0_3;
binding.current = binding.current || shown;
}
function _fun118994() { // fn#118994, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15746:602, offset: 0x024f849d, size: 27 bytes, params: 1, frame: 11
if (!shown) {
env0_2(true);
}
}
function VoicePanelControlsDrawerK() { // fn#118997, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15746:2120, owner: VoicePanelControlsDrawer.k, offset: 0x024f87c6, size: 163 bytes, params: 1, frame: 22
const object2 = {};
const voicePanelControlsUtilsModule = require(11801) /* metro dependency 11801: VoicePanelControlsUtils */;
const getControlsDrawerOpenWidth = voicePanelControlsUtilsModule.getControlsDrawerOpenWidth;
const windowDimensionsBinding = windowDimensions;
let get = windowDimensionsBinding.get;
const width = Reflect.apply(get, windowDimensionsBinding, []).width;
const safeAreaBinding = safeArea;
get = safeAreaBinding.get;
const left = Reflect.apply(get, safeAreaBinding, []).left;
get = safeAreaBinding.get;
object2.width = Reflect.apply(getControlsDrawerOpenWidth, voicePanelControlsUtilsModule, [width, left,
Reflect.apply(get, safeAreaBinding, []).right]);
const springModule = require(4577) /* metro dependency 4577: spring */;
const withSpring = springModule.withSpring;
const wrapperSpecsBinding = wrapperSpecs;
get = wrapperSpecsBinding.get;
object2.opacity = Reflect.apply(withSpring, springModule, [Reflect.apply(get, wrapperSpecsBinding,
[]).height >= 200 ? 1 : 0, MODE_CHANGE_PHYSICS]);
return object2;
}
function VoicePanelControlsDrawerM(a0, a1) { // fn#118999, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15746:2667, owner: VoicePanelControlsDrawer.M, offset: 0x024f889a, size: 227 bytes, params: 3, frame: 18
var r3;
var value4;
var property;
var property2;
let value = a1;
const value3 = undefined;
const cheapWorkletShallowEqualModule = require(7739) /* metro dependency 7739: cheapWorkletShallowEqual */;
if (!cheapWorkletShallowEqualModule.cheapWorkletArrayShallowEqual(a0, value ?? value3)) {
value4 = env1_3(a0, 2);
property = value4[0];
property2 = value4[1];
r3 = value != null && property === value[0];
if (r3) {
value = property2 === value[1];
r3 = value;
}
if (!r3) {
if (property2 !== VoicePanelModes.PANEL) {
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value = value.runOnJS(env0_7);
value(true);
} else if (property) {
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value = value.runOnJS(env0_7);
value(false);
} else {
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value = value.runOnJS(env0_7);
value(true);
}
}
}
return value3;
}
function _fun119000(a0) { // fn#119000, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15746:3075, offset: 0x024f897d, size: 93 bytes, params: 2, frame: 18
const value = environment.__proto__;
return (
<View style={styles.tabOverlay}>
{((Component) => <Component isVisible={a0} openTab={openTab} />)(importDefault(15550) /* metro dependency 15550: VoicePanelVoiceControls */)}
</View>
);
}
function _fun119001() { // fn#119001, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15746:3174, offset: 0x024f89da, size: 85 bytes, params: 1, frame: 17
const value = environment.__proto__;
return (
<View style={styles.tabOverlay}>
{((Component) => <Component gestureSpecs={gestureSpecs} />)(importDefault(15561) /* metro dependency 15561: VoicePanelControlsAppLauncher */)}
</View>
);
}
@@ -0,0 +1,69 @@
/* Metro module 11802; source: modules/voice_panel/native/controls/VoicePanelControlsDrawerTitle.tsx; dependencies: [31, 27, 11793, 33, 4501, 697, 4017, 6821, 11803, 8141, 4573, 2] */
function _fun90395(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#90395, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11988:6, offset: 0x02037924, size: 342 bytes, params: 8, frame: 23
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const env0_3 = (require(27) /* metro dependency 27 */).StyleSheet;
const CONTROLS_DRAWER_HEADER_SIZE = (require(11793) /* metro dependency 11793: VoicePanelControlsConstants */).CONTROLS_DRAWER_HEADER_SIZE;
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;
object2 = {};
object2.titleWrapper = {'position': 'absolute', 'top': 0, 'left': 0, 'right': 0, 'justifyContent': 'center',
'alignItems': 'center', 'padding': 16, height: CONTROLS_DRAWER_HEADER_SIZE};
const object4 = {'borderRadius': null, 'paddingHorizontal': 12, 'paddingTop': 1, 'paddingBottom': 2};
object4.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object2.titlePill = object4;
const BACKGROUND_SURFACE_HIGH = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_SURFACE_HIGH;
object2.titlePillBG = {backgroundColor: BACKGROUND_SURFACE_HIGH};
const env0_6 = Reflect.apply(createStyles, createStylesModule, [object2]);
object2 = {code: "function VoicePanelControlsDrawerTitleTsx1(){const{shown,_shown,disablePill,backgroundColor}=this.__closure;const showBGColor=shown!=null?shown.get():_shown.get();return{backgroundColor:showBGColor&&!disablePill?backgroundColor:'transparent'};}"};
value = value.memo(VoicePanelControlsDrawerTitle);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/VoicePanelControlsDrawerTitle.tsx');
exports.default = value;
}
function VoicePanelControlsDrawerTitle({title, shown, disablePill, style, blurStyle}) { // fn#90396, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11988:772, offset: 0x02037a7a, size: 430 bytes, params: 2, frame: 25
disablePill = !(disablePill === undefined) && disablePill;
const styles = useStyles();
const value2 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(true);
const backgroundColor = styles.titlePillBG.backgroundColor;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
const closure = VoicePanelControlsDrawerTitleP;
closure.__closure = {shown: shown, _shown: value2, disablePill: disablePill, backgroundColor: backgroundColor};
closure.__workletHash = 14837285839887;
closure.__initData = env0_7;
const value3 = Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const items2 = [styles.titleWrapper, style];
const value4 = ((Component) => <Component shown={shown ?? value2} style={StyleSheet.absoluteFillObject} blurStyle={blurStyle} />)(importDefault(11803) /* metro dependency 11803: VoicePanelHeaderGlassBlur */);
const ReanimatedNativeView = importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */;
const items3 = [styles.titlePill, value3];
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
return (
<NativeView style={items2}>
{value4}
<ReanimatedNativeView style={items3}>
<Text
variant="redesign/heading-18/bold"
color="mobile-text-heading-primary"
accessibilityRole="header"
>
{title}
</Text>
</ReanimatedNativeView>
</NativeView>
);
}
function VoicePanelControlsDrawerTitleP() { // fn#90397, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11988:971, owner: VoicePanelControlsDrawerTitle.p, offset: 0x02037c28, size: 73 bytes, params: 1, frame: 12
const r3 = shown != null ? shown.get() : env0_2.get();
const value4 = 'transparent';
return {backgroundColor: r3 ? disablePill ? value4 : backgroundColor : value4};
}
@@ -0,0 +1,249 @@
/* Metro module 15521; source: modules/voice_panel/native/controls/VoicePanelFloatingCTAContainer.tsx; dependencies: [57, 31, 1379, 11795, 11798, 482, 33, 1357, 697, 4501, 4572, 7975, 3868, 11794, 15414, 7014, 632, 15410, 4017, 11801, 4508, 11624, 4577, 8141, 10357, 2] */
function _fun118847(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118847, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15718:6, offset: 0x024f1280, size: 414 bytes, params: 8, frame: 24
var object3;
const env0_0 = require;
const closure = VoicePanelFloatingCTAContainer;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
let value = require(11795) /* metro dependency 11795: VoicePanelConstants */;
const MODE_CHANGE_PHYSICS = value.MODE_CHANGE_PHYSICS;
const env0_6 = value.UI_SHOW_HIDE_PHYSICS;
const env0_7 = (require(11798) /* metro dependency 11798: VoicePanelCardConstants */).CALL_TILE_GUTTER;
const env0_8 = (require(482) /* metro dependency 482: Constants */).ThemeTypes;
const env0_9 = (require(33) /* metro dependency 33 */).jsx;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
const object4 = {'zIndex': 1, 'position': 'absolute', 'bottom': 0, 'left': '50%', 'overflow': 'hidden',
'alignItems': 'center'};
object4.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.lg;
const env0_10 = Reflect.apply(createStyles, value, [{container: object4}]);
object3 = {};
copyDataProperties(object3, MODE_CHANGE_PHYSICS, undefined);
object3['overshootClamping'] = true;
object3 = {code: "function VoicePanelFloatingCTAContainerTsx1(){const{getControlsDefaultWidth,windowDimensions,safeArea,state,TransitionStates,controlsSpecs,roundToNearestPixel,withSpring,OPACITY_CHANGE_PHYSICS,runOnJS,cleanUp,wrapperSpecs,UI_SHOW_HIDE_PHYSICS,gestureState,CALL_TILE_GUTTER,accessoryHeights}=this.__closure;const width=getControlsDefaultWidth(windowDimensions.get().width,safeArea.get().left,safeArea.get().right);const opacity=state===TransitionStates.YEETED?0:1;return{bottom:controlsSpecs.get().height+16,width:width,marginLeft:roundToNearestPixel(width/2)*-1,opacity:withSpring(opacity,OPACITY_CHANGE_PHYSICS,'respect-motion-settings',function(finished){if(finished&&state===TransitionStates.YEETED){runOnJS(cleanUp)();}}),transform:[{translateX:withSpring(wrapperSpecs.get().x,UI_SHOW_HIDE_PHYSICS)},{translateY:withSpring(wrapperSpecs.get().hidden||gestureState.get().active&&!gestureState.get().requiresPop?wrapperSpecs.get().height+CALL_TILE_GUTTER+accessoryHeights.get():wrapperSpecs.get().y,UI_SHOW_HIDE_PHYSICS)}]};}"};
object3 = {code: 'function VoicePanelFloatingCTAContainerTsx2(finished){const{state,TransitionStates,runOnJS,cleanUp}=this.__closure;if(finished&&state===TransitionStates.YEETED){runOnJS(cleanUp)();}}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/VoicePanelFloatingCTAContainer.tsx');
exports.default = closure;
exports.getFloatingCTATotalViewHeight = getFloatingCTATotalViewHeight;
exports.renderVoicePanelFloatingCTA = renderVoicePanelFloatingCTA;
}
function FloatingCTA(a0) { // fn#118848, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15718:406, offset: 0x024f141e, size: 140 bytes, params: 2, frame: 21
const trailing = a0.trailing;
const value = Object.create(null);
value.trailing = 0;
const value2 = copyDataProperties({}, a0, value, undefined);
const Stack = (require(4572) /* metro dependency 4572: StackNative */).Stack;
const RowButton = (require(7975) /* metro dependency 7975: RowButtonNative */).RowButton;
return (
<Stack>
<RowButton
experimental_withBlurBackground
arrow={trailing == null}
trailing={trailing}
{...value2}
/>
</Stack>
);
}
function VoicePanelFloatingCTAContainer({wrapperSpecs, accessoryHeights, controlsSpecs, state, cleanUp, gestureState}) { // fn#118849, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15718:1837, offset: 0x024f14aa, size: 691 bytes, params: 2, frame: 33
var object2;
var r4;
const env0_3 = state;
const env0_4 = cleanUp;
var value;
const styles = useStyles();
const {windowDimensions, channelId,
safeArea} = env0_4.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const value3 = (importDefault(15414) /* metro dependency 15414: useChannelFloatingCTAContent */)(channelId);
const property = env0_3((require(7014) /* metro dependency 7014: useGetDismissibleContent */).useGetDismissibleContent(value3),
1)[0];
const channel = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([ChannelStore],
function() {
return ChannelStore.getChannel(channelId);
});
const value6 = env0_4.useMemo(_fun118851, [property, channel]);
const env0_11 = value6;
const value7 = (require(15410) /* metro dependency 15410: VoicePanelFloatingCTAUtils */).useFloatingCTAProps(channel);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
const closure = VoicePanelFloatingCTAContainerA;
object2 = {};
const getControlsDefaultWidth = (require(11801) /* metro dependency 11801: VoicePanelControlsUtils */).getControlsDefaultWidth;
object2.getControlsDefaultWidth = getControlsDefaultWidth;
object2.windowDimensions = windowDimensions;
object2.safeArea = safeArea;
object2.state = state;
const TransitionStates = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates;
object2.TransitionStates = TransitionStates;
object2.controlsSpecs = controlsSpecs;
object2.roundToNearestPixel = importDefault(11624) /* metro dependency 11624: roundToNearestPixel */;
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.OPACITY_CHANGE_PHYSICS = env0_11;
object2.runOnJS = reanimatedRexportModule.runOnJS;
object2.cleanUp = cleanUp;
object2.wrapperSpecs = wrapperSpecs;
object2.UI_SHOW_HIDE_PHYSICS = UI_SHOW_HIDE_PHYSICS;
object2.gestureState = gestureState;
object2.CALL_TILE_GUTTER = CALL_TILE_GUTTER;
object2.accessoryHeights = accessoryHeights;
closure.__closure = object2;
closure.__workletHash = 3338259366067;
closure.__initData = env0_12;
const value8 = Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
const ReanimatedNativeView = importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */;
const items2 = [styles.container, value8];
if (value6 != null) {
value = importDefault(10357) /* metro dependency 10357: SelectedDismissibleContent */;
value = ((Component) => <Component contentTypes={value3}>{children_118854}</Component>)(value);
r4 = value;
} else {
r4 = value7 != null ? <FloatingCTA {...value7} /> : null;
}
return (
<ReanimatedNativeView style={items2}>
{r4}
</ReanimatedNativeView>
);
}
function getFloatingCTATotalViewHeight(a0) { // fn#118855, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15718:3766, offset: 0x024f1a89, size: 83 bytes, params: 2, frame: 15
const mobileVisualRefreshExperimentModule = require(1357) /* metro dependency 1357: MobileVisualRefreshExperiment */;
const resolveRefreshToken = mobileVisualRefreshExperimentModule.resolveRefreshToken;
const TABLE_ROW_HEIGHT = (importDefault(697) /* metro dependency 697: native */).modules.mobile.TABLE_ROW_HEIGHT;
return Reflect.apply(resolveRefreshToken, mobileVisualRefreshExperimentModule, [TABLE_ROW_HEIGHT, a0]) + 16;
}
function renderVoicePanelFloatingCTA(a0, a1, a2, a3) { // fn#118856, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15718:3920, offset: 0x024f1adc, size: 117 bytes, params: 5, frame: 19
const ThemeContextProvider = (require(3868) /* metro dependency 3868: native */).ThemeContextProvider;
const DARK = ThemeTypes.DARK;
return (
<ThemeContextProvider theme={DARK} key={a0}>
<VoicePanelFloatingCTAContainer
{...a1}
{...{['state']: a2}}
{...{['cleanUp']: a3}}
/>
</ThemeContextProvider>
);
}
function _fun118851() { // fn#118851, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15718:2183, offset: 0x024f1777, size: 60 bytes, params: 1, frame: 13
const value = environment.__proto__;
return (require(15410) /* metro dependency 15410: VoicePanelFloatingCTAUtils */).getDismissableCTAProps({dismissableContent: env0_9,
channel: channel});
}
function VoicePanelFloatingCTAContainerA() { // fn#118852, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15718:2327, owner: VoicePanelFloatingCTAContainer.A, offset: 0x024f17b3, size: 582 bytes, params: 1, frame: 26
var r4;
var gestureStateBinding;
var value7;
var accessoryHeightsBinding;
const voicePanelControlsUtilsModule = require(11801) /* metro dependency 11801: VoicePanelControlsUtils */;
const getControlsDefaultWidth = voicePanelControlsUtilsModule.getControlsDefaultWidth;
const windowDimensionsBinding = windowDimensions;
let get = windowDimensionsBinding.get;
const width = Reflect.apply(get, windowDimensionsBinding, []).width;
const safeAreaBinding = safeArea;
get = safeAreaBinding.get;
const left = Reflect.apply(get, safeAreaBinding, []).left;
get = safeAreaBinding.get;
const value3 = Reflect.apply(getControlsDefaultWidth, voicePanelControlsUtilsModule, [width, left,
Reflect.apply(get, safeAreaBinding, []).right]);
const stateBinding = state;
const TransitionStates = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates;
const YEETED = TransitionStates.YEETED;
const r12 = stateBinding !== YEETED ? 1 : 0;
const object3 = {};
const controlsSpecsBinding = controlsSpecs;
get = controlsSpecsBinding.get;
object3.bottom = Reflect.apply(get, controlsSpecsBinding, []).height + 16;
object3.width = value3;
object3.marginLeft = -1 * (importDefault(11624) /* metro dependency 11624: roundToNearestPixel */)(value3 / 2);
const springModule = require(4577) /* metro dependency 4577: spring */;
let withSpring = springModule.withSpring;
const binding = env1_11;
const closure = AT_118853;
const object4 = {};
object4.state = state;
object4.TransitionStates = TransitionStates;
object4.runOnJS = (require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS;
object4.cleanUp = cleanUp;
closure.__closure = object4;
closure.__workletHash = 7334460639890;
closure.__initData = env1_13;
object3.opacity = Reflect.apply(withSpring, springModule, [r12, binding, 'respect-motion-settings', closure]);
const moduleValue3 = springModule;
withSpring = moduleValue3.withSpring;
let wrapperSpecsBinding = wrapperSpecs;
get = wrapperSpecsBinding.get;
const items2 = [{translateX: Reflect.apply(withSpring, moduleValue3, [Reflect.apply(get, wrapperSpecsBinding, []).x,
UI_SHOW_HIDE_PHYSICS])}];
const moduleValue4 = springModule;
withSpring = moduleValue4.withSpring;
get = wrapperSpecsBinding.get;
if (Reflect.apply(get, wrapperSpecsBinding, []).hidden) {
wrapperSpecsBinding = wrapperSpecs;
get = wrapperSpecsBinding.get;
value7 = Reflect.apply(get, wrapperSpecsBinding, []).height + CALL_TILE_GUTTER;
accessoryHeightsBinding = accessoryHeights;
get = accessoryHeightsBinding.get;
r4 = value7 + Reflect.apply(get, accessoryHeightsBinding, []);
} else {
get = gestureState.get;
if (Reflect.apply(get, gestureStateBinding, []).active) {
gestureStateBinding = gestureState;
get = gestureStateBinding.get;
if (Reflect.apply(get, gestureStateBinding, []).requiresPop) {
wrapperSpecsBinding = wrapperSpecs;
r4 = wrapperSpecsBinding.get().y;
} else {
wrapperSpecsBinding = wrapperSpecs;
get = wrapperSpecsBinding.get;
value7 = Reflect.apply(get, wrapperSpecsBinding, []).height + CALL_TILE_GUTTER;
accessoryHeightsBinding = accessoryHeights;
get = accessoryHeightsBinding.get;
r4 = value7 + Reflect.apply(get, accessoryHeightsBinding, []);
}
} else {
wrapperSpecsBinding = wrapperSpecs;
r4 = wrapperSpecsBinding.get().y;
}
}
items2[1] = {translateY: Reflect.apply(withSpring, moduleValue4, [r4, UI_SHOW_HIDE_PHYSICS])};
object3.transform = items2;
return object3;
}
function VoicePanelFloatingCTAContainerChildren() { // fn#118854, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15718:3523, owner: VoicePanelFloatingCTAContainer.children, offset: 0x024f1a64, size: 37 bytes, params: 1, frame: 13
return <FloatingCTA {...env0_11} />;
}
function AT_118853(a0) { // fn#118853, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15718:2593, owner: VoicePanelFloatingCTAContainer.A.t, offset: 0x024f19f9, size: 107 bytes, params: 2, frame: 13
var r0;
var stateBinding;
var runOnJS;
var value2;
let value = a0;
if (value) {
value = environment.__proto__;
stateBinding = state;
value = environment.__proto__.__proto__;
value = stateBinding === (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates.YEETED;
r0 = value;
} else {
r0 = value;
}
if (r0) {
value = environment.__proto__.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
runOnJS = value.runOnJS;
value2 = environment.__proto__;
Reflect.apply(runOnJS, value, [cleanUp])();
}
}
@@ -0,0 +1,188 @@
/* Metro module 15550; source: modules/voice_panel/native/controls/VoicePanelVoiceControls.tsx; dependencies: [31, 27, 1379, 11793, 33, 4501, 697, 4017, 11794, 15390, 9467, 3829, 15453, 10269, 12113, 4572, 6231, 15551, 1244, 10823, 566, 11644, 4559, 5321, 1581, 6821, 6618, 11803, 2] */
function _fun119002(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#119002, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15747:6, offset: 0x024f8a2f, size: 422 bytes, params: 8, frame: 26
var object2;
const env0_0 = require;
const NOOP_119003 = function() {
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const ScrollView = (require(27) /* metro dependency 27 */).ScrollView;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const CONTROLS_DRAWER_HEADER_EXPANDED_SIZE = (require(11793) /* metro dependency 11793: VoicePanelControlsConstants */).CONTROLS_DRAWER_HEADER_EXPANDED_SIZE;
const value2 = require(33) /* metro dependency 33 */;
const env0_5 = value2.jsx;
const env0_6 = value2.jsxs;
const env0_7 = value2.Fragment;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {};
let PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object2.scrollView = {flex: 1, paddingHorizontal: PX_16};
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object2.scrollViewScreenReader = {flex: 1, paddingHorizontal: PX_16,
marginTop: CONTROLS_DRAWER_HEADER_EXPANDED_SIZE};
object2.blurRegion = {height: CONTROLS_DRAWER_HEADER_EXPANDED_SIZE};
const env0_8 = Reflect.apply(createStyles, createStylesModule, [object2]);
const env0_9 = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).createAnimatedComponent(ScrollView);
const env0_10 = value.memo(_fun119004);
object2 = {top: CONTROLS_DRAWER_HEADER_EXPANDED_SIZE};
object2 = {code: 'function VoicePanelVoiceControlsTsx1({offset:offset}){const{isScrolled}=this.__closure;isScrolled.set(offset>0);}'};
value = value.memo(VoicePanelVoiceControls);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/VoicePanelVoiceControls.tsx');
exports.default = value;
}
function _fun119004({channel, openTab}) { // fn#119004, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15747:459, offset: 0x024f8bd5, size: 1355 bytes, params: 2, frame: 36
var r6;
var r5;
const TableRowGroup = (require(6231) /* metro dependency 6231: TableRowGroupNative */).TableRowGroup;
var items4;
var object15;
var value;
const binding = env0_3;
const useContext = binding.useContext;
const channelId = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).channelId;
const value2 = (importDefault(15390) /* metro dependency 15390: useIsConnectedToVoiceChannel */)(channelId);
const value3 = (require(9467) /* metro dependency 9467: getEmbeddedActivityLaunchability */).useEmbeddedActivityLaunchability(channelId);
const DeveloperMode = (require(3829) /* metro dependency 3829: UserSettings */).DeveloperMode;
const value4 = DeveloperMode.useSetting();
const defaultImport = importDefault(15453) /* metro dependency 15453: MobileGoLiveEntrypointExperiment */;
let useConfig = defaultImport.useConfig;
const treatment = Reflect.apply(useConfig, defaultImport, [{location: 'VoicePanelVoiceControls'}]).treatment;
const defaultImport2 = importDefault(10269) /* metro dependency 10269: MobileAudioOutputExperiment */;
useConfig = defaultImport2.useConfig;
const nonContextualStreamOutputPresent = Reflect.apply(useConfig, defaultImport2,
[{location: 'VoicePanelVoiceControls'}]).nonContextualStreamOutputPresent;
const value5 = (importDefault(12113) /* metro dependency 12113: useSelectedActiveStream */)(channel);
const Stack = (require(4572) /* metro dependency 4572: StackNative */).Stack;
if (value2) {
items4 = [((ActivitiesButton) => <ActivitiesButton openTab={openTab} />)((require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).ActivitiesButton)];
items4[1] = (require(15453) /* metro dependency 15453: MobileGoLiveEntrypointExperiment */).MobileGoLiveEntrypointTreatment.SCREENSHARE_REPLACES_CHAT === treatment ? ((ChatButton) => <ChatButton openTab={openTab} />)((require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).ChatButton) : (require(15453) /* metro dependency 15453: MobileGoLiveEntrypointExperiment */).MobileGoLiveEntrypointTreatment.SCREENSHARE_REPLACES_SOUNDBOARD === treatment ? ((SoundboardButton) => <SoundboardButton channel={channel} />)((require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).SoundboardButton) : ((ScreenshareButton) => <ScreenshareButton channel={channel} />)((require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).ScreenshareButton);
r6 = <TableRowGroup hasIcons>{items4}</TableRowGroup>;
} else {
r6 = value2;
}
const items2 = [r6];
const GameConsoles = (require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).GameConsoles;
items2[1] = <GameConsoles channel={channel} connected={value2} />;
items2[2] = nonContextualStreamOutputPresent && ((StreamVolumeItem) => <StreamVolumeItem />)((require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).StreamVolumeItem);
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const NiTd0e = (require(1244) /* metro dependency 1244: indexNative */).t.NiTd0e;
const DeafenSwitch = (require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).DeafenSwitch;
const items3 = [<DeafenSwitch />];
const AudioRouteButton = (require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).AudioRouteButton;
items3[1] = <AudioRouteButton channel={channel} connected={value2} />;
const HideNonVideoParticipants = (require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).HideNonVideoParticipants;
items3[2] = <HideNonVideoParticipants channelId={channelId} />;
const HideSelfVideo = (require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).HideSelfVideo;
items3[3] = <HideSelfVideo />;
items3[4] = value2 && ((InviteButton) => <InviteButton channel={channel} connected={value2} />)((require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).InviteButton);
items2[3] = <TableRowGroup title={Reflect.apply(string, intl, [NiTd0e])} hasIcons>{items3}</TableRowGroup>;
const VoiceProcessingOptions = (require(10823) /* metro dependency 10823: UserSettingsVoiceProcessing */).VoiceProcessingOptions;
items2[4] = <VoiceProcessingOptions />;
const VoiceSettingsButton = (require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).VoiceSettingsButton;
items2[5] = <TableRowGroup hasIcons><VoiceSettingsButton guildId={channel.guild_id} />{value5 != null && ((ReportStreamIssueButton) => <ReportStreamIssueButton stream={value5} />)((require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).ReportStreamIssueButton)}</TableRowGroup>;
if (value2) {
if (value4) {
if (value3 !== (require(9467) /* metro dependency 9467: getEmbeddedActivityLaunchability */).EmbeddedActivityLaunchability.CAN_LAUNCH) {
r5 = null;
} else {
var tableRowGroupProps = {title: intl.string((require(1244) /* metro dependency 1244: indexNative */).t.J6rqB7),
hasIcons: true};
const LeaveActivitiesButton = (require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).LeaveActivitiesButton;
value = <LeaveActivitiesButton />;
value = <TableRowGroup {...tableRowGroupProps}>{value}{((ShareActivityLogsButton) => <ShareActivityLogsButton />)((require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).ShareActivityLogsButton)}{((ToggleShowActivitiesDebugOverlay) => <ToggleShowActivitiesDebugOverlay />)((require(15551) /* metro dependency 15551: VoicePanelVoiceControlsButtons */).ToggleShowActivitiesDebugOverlay)}</TableRowGroup>;
r5 = value;
}
} else {
r5 = null;
}
} else {
r5 = null;
}
items2[6] = r5;
return (
<Stack spacing={24}>
{items2}
</Stack>
);
}
function VoicePanelVoiceControls({isVisible, openTab}) { // fn#119005, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15747:2315, offset: 0x024f9120, size: 723 bytes, params: 2, frame: 29
var r5;
var value;
const styles = useStyles();
let binding = env0_3;
let useContext = binding.useContext;
const env0_1 = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).channelId;
const channel = (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelStore], function() {
return ChannelStore.getChannel(channelId);
});
const value2 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(false);
const useCallback = binding.useCallback;
const closure = VoicePanelVoiceControlsS;
closure.__closure = {isScrolled: value2};
closure.__workletHash = 16758626276795;
closure.__initData = env0_12;
const value3 = Reflect.apply(useCallback, binding, [closure, [value2]]);
useContext = binding.useContext;
const ControlsGestureScrollLock = (require(11644) /* metro dependency 11644: createUseAnimatedScrollLock */).ControlsGestureScrollLock;
const {onScroll, gestureRef, scrollerRef, animatedProps} = Reflect.apply(useContext, binding,
[ControlsGestureScrollLock])({onScrollHandlerWorkletized: value3});
const value6 = (require(4559) /* metro dependency 4559: useIsScreenReaderEnabledNative */).useIsScreenReaderEnabled();
binding.useEffect(function() {
var current;
if (isVisible && scrollerRef != null) {
current = scrollerRef.current;
if (current != null) {
current.scrollTo({'x': 0, 'y': 0, 'animated': false});
}
}
}, [isVisible, scrollerRef]);
const value7 = binding.useMemo(_fun119009, [gestureRef]);
const jsxRuntimeEnv0_7Binding = jsxRuntimeEnv0_7;
const GestureDetector = (require(5321) /* metro dependency 5321 */).GestureDetector;
binding = env0_9;
const bindingProps = {style: value6 ? styles.scrollViewScreenReader : styles.scrollView, ref: scrollerRef,
onScroll: onScroll, animatedProps: animatedProps, onMomentumScrollEnd: NOOP_119003,
scrollEventThrottle: 8.333333333333334, scrollIndicatorInsets: env0_11};
const value8 = !value6;
const items2 = [value6 ? value8 : ((Component) => <Component style={styles.blurRegion} />)(importDefault(6821) /* metro dependency 6821: NativeView */)];
items2[1] = channel != null && ((Component) => <Component channel={channel} openTab={openTab} />)(env0_10);
const SafeAreaPaddingView = (require(6618) /* metro dependency 6618: SafeAreaView */).SafeAreaPaddingView;
items2[2] = <SafeAreaPaddingView bottom />;
const gestureDetector = <GestureDetector gesture={value7}>{((Component) => <Component {...bindingProps}>{items2}</Component>)(binding)}</GestureDetector>;
if (value6) {
r5 = value8;
} else {
value = importDefault(11803) /* metro dependency 11803: VoicePanelHeaderGlassBlur */;
value = ((Component) => <Component shown={value2} style={styles.blurRegion} />)(value);
r5 = value;
}
return (
<>
{gestureDetector}
{r5}
</>
);
}
function VoicePanelVoiceControlsS({offset}) { // fn#119007, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15747:2525, owner: VoicePanelVoiceControls.s, offset: 0x024f93f3, size: 36 bytes, params: 2, frame: 12
env0_2.set(offset > 0);
}
function _fun119009() { // fn#119009, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15747:2939, offset: 0x024f945a, size: 109 bytes, params: 1, frame: 14
let value = environment.__proto__;
const Gesture = (require(5321) /* metro dependency 5321 */).Gesture;
const enabled = Gesture.Native().enabled;
const metaQuestUtilsAndroidModule = require(1581) /* metro dependency 1581: MetaQuestUtilsAndroid */;
value = Reflect.apply(enabled, value, [!metaQuestUtilsAndroidModule.isMetaQuest()]);
return gestureRef == null ? value : value.simultaneousWithExternalGesture(gestureRef);
}
@@ -0,0 +1,549 @@
/* Metro module 15551; source: modules/voice_panel/native/controls/VoicePanelVoiceControlsButtons.tsx; dependencies: [57, 31, 1378, 4606, 1312, 7730, 4492, 1226, 4259, 4297, 661, 15552, 4291, 33, 4496, 15553, 1962, 1244, 9324, 6231, 10785, 566, 3857, 9326, 9436, 6238, 6242, 11794, 15515, 8840, 6682, 15542, 10284, 10794, 683, 10268, 10272, 477, 697, 8899, 6808, 9248, 15469, 9228, 9239, 6243, 15454, 15413, 10859, 10832, 7712, 9759, 10793, 15554, 7960, 11299, 8092, 15555, 8151, 694, 10813, 7002, 15468, 2] */
function _fun119010(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#119010, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:6, offset: 0x024f94c7, size: 602 bytes, params: 8, frame: 20
const env0_0 = require;
const closure = GameConsoleAccountButton;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
const embeddedActivitiesStore = importDefault(1378) /* metro dependency 1378: EmbeddedActivitiesStore */;
const channelRTCStore = importDefault(4606) /* metro dependency 4606: ChannelRTCStore */;
const unsyncedUserSettingsStore = importDefault(1312) /* metro dependency 1312: UnsyncedUserSettingsStore */;
const channelCallLifecycleStore = importDefault(7730) /* metro dependency 7730: ChannelCallLifecycleStore */;
const applicationStreamingStore = importDefault(4492) /* metro dependency 4492: ApplicationStreamingStore */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const mediaEngineStore = importDefault(4259) /* metro dependency 4259: MediaEngineStore */;
const voiceStateStore = importDefault(4297) /* metro dependency 4297: VoiceStateStore */;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_13 = constantsModule.AnalyticEvents;
const env0_14 = constantsModule.PlatformTypes;
const env0_15 = (require(15552) /* metro dependency 15552: HideSelfStreamAndVideoConstants */).SelfStreamAndVideoAlertType;
const env0_16 = (require(4291) /* metro dependency 4291: Constants */).MediaEngineContextTypes;
const env0_17 = (require(33) /* metro dependency 33 */).jsx;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/VoicePanelVoiceControlsButtons.tsx');
exports.GameConsoles = GameConsoles;
exports.GameConsoleAccountButton = closure;
exports.ActivitiesButton = ActivitiesButton;
exports.ChatButton = ChatButton_119021;
exports.SoundboardButton = SoundboardButton_119024;
exports.ScreenshareButton = ScreenshareButton_119025;
exports.StreamVolumeItem = StreamVolumeItem_119027;
exports.DeafenSwitch = DeafenSwitch;
exports.AudioRouteButton = AudioRouteButton_119032;
exports.InviteButton = InviteButton;
exports.HideNonVideoParticipants = HideNonVideoParticipants;
exports.HideSelfVideo = HideSelfVideo;
exports.LeaveActivitiesButton = LeaveActivitiesButton;
exports.ShareActivityLogsButton = ShareActivityLogsButton_119048;
exports.ToggleShowActivitiesDebugOverlay = ToggleShowActivitiesDebugOverlay;
exports.VoiceSettingsButton = VoiceSettingsButton;
exports.ReportStreamIssueButton = ReportStreamIssueButton;
exports.RTCDebugPanelButton = RTCDebugPanelButton;
}
function GameConsoleAccountButton({channel, account, connected}) { // fn#119011, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:333, offset: 0x024f9721, size: 705 bytes, params: 2, frame: 24
var r0;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
let value = undefined;
const value3 = (importDefault(10785) /* metro dependency 10785: useIsVoiceChannelFull */)(channel);
const r3 = (require(10785) /* metro dependency 10785: useIsVoiceChannelFull */).useIsVoiceChannelLocked(channel) && !channel.isPrivate();
let r7 = !(require(566) /* metro dependency 566: flux */).useStateFromStores([VoiceStateStore], function() {
return VoiceStateStore.isInChannel(channel.id);
}) && value3;
r7 = !r7 ? r3 : r7;
const value8 = env0_4.useCallback(_fun119013, [r3]);
const value10 = env0_4.useCallback(_fun119014,
[(require(9326) /* metro dependency 9326: useOnConnectToConsole */).useOnConnectToConsole(channel, account)]);
const type = account.type;
const XBOX = PlatformTypes.XBOX;
const r8 = type === XBOX ? connected ? intl.string(t['qVE/VF']) : intl.string(t.E8euSk) : type === PlatformTypes.PLAYSTATION ? connected ? intl.string(t.vzfxmY) : intl.string(t.QxEYDj) : type !== PlatformTypes.PLAYSTATION_STAGING ? value : connected ? intl.string(t.BDiXtV) : intl.string(t['bhdB9+']);
const value17 = (importDefault(9436) /* metro dependency 9436: getConsoleIcon */)(account.type);
if (r8 == null) {
r0 = null;
} else {
const TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
value = <TableRow icon={value17 != null ? ((TableRowIcon) => <TableRowIcon source={value17} />)((require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon) : value} label={r8} disabled={r7} onPress={r7 ? value8 : value10} />;
r0 = value;
}
return r0;
}
function toggleDeaf() { // fn#119015, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:1354, offset: 0x024f9ac8, size: 37 bytes, params: 1, frame: 11
(importDefault(8899) /* metro dependency 8899: AudioActionCreators */).toggleSelfDeaf();
}
function GameConsoles({channel, connected}) { // fn#119016, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:1522, offset: 0x024f9aed, size: 190 bytes, params: 2, frame: 21
var r0;
var TableRowGroup;
var intl;
const value2 = (importDefault(9324) /* metro dependency 9324: useGameConsoleAccounts */)();
if (value2.length > 0) {
TableRowGroup = (require(6231) /* metro dependency 6231: TableRowGroupNative */).TableRowGroup;
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
r0 = <TableRowGroup title={intl.string((require(1244) /* metro dependency 1244: indexNative */).t['mbi/fB'])} hasIcons>{value2.map(_fun119017)}</TableRowGroup>;
} else {
r0 = null;
}
return r0;
}
function ActivitiesButton({openTab}) { // fn#119018, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:1860, offset: 0x024f9be4, size: 246 bytes, params: 2, frame: 19
var object2;
const binding = env0_4;
const useContext = binding.useContext;
const value2 = env0_4.useCallback(function() {
dismissPanel();
global.setTimeout(_fun119020, 200);
}, [Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).dismissPanel, openTab]);
const TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
object2 = {onPress: value2};
const TableRowIcon = (require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon;
const AppsIcon = (require(8840) /* metro dependency 8840: AppsIcon */).AppsIcon;
object2.icon = <TableRowIcon IconComponent={AppsIcon} />;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.aeuOoh);
return <TableRow {...object2} />;
}
function ChatButton_119021({openTab}) { // fn#119021, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:2249, offset: 0x024f9d47, size: 246 bytes, params: 2, frame: 19
var object2;
const binding = env0_4;
const useContext = binding.useContext;
const value2 = env0_4.useCallback(function() {
dismissPanel();
global.setTimeout(_fun119023, 200);
}, [Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).dismissPanel, openTab]);
const TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
object2 = {onPress: value2};
const TableRowIcon = (require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon;
const ChatIcon = (require(6682) /* metro dependency 6682: ChatIcon */).ChatIcon;
object2.icon = <TableRowIcon IconComponent={ChatIcon} />;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['5KxXrK']);
return <TableRow {...object2} />;
}
function SoundboardButton_119024({channel}) { // fn#119024, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:2633, offset: 0x024f9ea8, size: 249 bytes, params: 2, frame: 22
var r0;
var TableRow;
var intl;
const defaultImport = importDefault(15542) /* metro dependency 15542: useSoundboardConfig */;
const id = channel.id;
const SoundboardButtonLocation = (require(15542) /* metro dependency 15542: useSoundboardConfig */).SoundboardButtonLocation;
const VOICE_CONTROLS = SoundboardButtonLocation.VOICE_CONTROLS;
const value2 = defaultImport(id, VOICE_CONTROLS);
if (value2.visible) {
TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
r0 = <TableRow label={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.ABjMWI)} onPress={value2.handlePress} disabled={value2.disabled} icon={((TableRowIcon) => <TableRowIcon IconComponent={(require(10284) /* metro dependency 10284: SoundboardIcon */).SoundboardIcon} />)((require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon)} />;
} else {
r0 = null;
}
return r0;
}
function ScreenshareButton_119025({channel}) { // fn#119025, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:2978, offset: 0x024f9fa1, size: 199 bytes, params: 2, frame: 21
const {onPress, imgSource, text, isFeatureEnabled,
isActive} = (importDefault(10794) /* metro dependency 10794: useScreenshareUtils */)(channel);
const value3 = env0_4.useCallback(function() {
var defaultImport = importDefault(dependencyMap[34]);
var VOICE_PANEL_SCREENSHARE_BUTTON_TAPPED = AnalyticEvents.VOICE_PANEL_SCREENSHARE_BUTTON_TAPPED;
defaultImport.track(VOICE_PANEL_SCREENSHARE_BUTTON_TAPPED, {source: 'voice controls', was_active: isActive});
onPress();
}, [isActive, onPress]);
const TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
const TableRowIcon = (require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon;
return (
<TableRow
disabled={!isFeatureEnabled}
onPress={value3}
icon={<TableRowIcon source={imgSource} />}
label={text}
/>
);
}
function StreamVolumeItem_119027() { // fn#119027, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:3356, offset: 0x024fa0b8, size: 410 bytes, params: 1, frame: 27
var r0;
var TableRowGroup;
var intl;
var TableRow;
var VolumeSlider;
var object2;
var moduleValue2;
var unsafe_rawColors;
let value2 = undefined;
const fluxModule = require(566) /* metro dependency 566: flux */;
const useStateFromStores = fluxModule.useStateFromStores;
let object = [ApplicationStreamingStore];
object[1] = AuthenticationStore;
let value3 = Reflect.apply(useStateFromStores, fluxModule, [object, function() {
var value2 = ApplicationStreamingStore.getLastActiveStream();
var value3 = null;
return value3 != value2 ? value2.ownerId === AuthenticationStore.getId() ? value3 : value2 : value3;
}]);
const defaultImport = importDefault(10268) /* metro dependency 10268: useMuteAwareLocalVolume */;
const value4 = null;
const ownerId = value4 == value3 ? value2 : value3.ownerId;
const STREAM = MediaEngineContextTypes.STREAM;
const value5 = defaultImport(ownerId, STREAM);
if (value4 == value3) {
r0 = value4;
} else {
TableRowGroup = (require(6231) /* metro dependency 6231: TableRowGroupNative */).TableRowGroup;
object = {};
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object.title = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.pEAl4b);
object.hasIcons = false;
TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
VolumeSlider = importDefault(10272) /* metro dependency 10272: VolumeSlider */;
object2 = {};
moduleValue2 = require(477) /* metro dependency 477: PlatformUtils */;
object2.onResponderGrant = moduleValue2.isAndroid() ? function() {
return true;
} : value2;
object2.value = value5.effectiveVolume;
object2.onValueChange = value5.handleVolumeChange;
unsafe_rawColors = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors;
object2.color = unsafe_rawColors.WHITE;
unsafe_rawColors = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors;
object2.maxTrackTintColor = unsafe_rawColors.PRIMARY_300;
r0 = <TableRowGroup {...object}><TableRow label={<VolumeSlider {...object2} />} /></TableRowGroup>;
}
return r0;
}
function DeafenSwitch() { // fn#119030, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:3941, offset: 0x024fa28d, size: 327 bytes, params: 1, frame: 22
var object2;
const value2 = (require(566) /* metro dependency 566: flux */).useStateFromStores([MediaEngineStore], function() {
return MediaEngineStore.isSelfDeaf();
});
const TableSwitchRow = (require(6808) /* metro dependency 6808: TableSwitchRowNative */).TableSwitchRow;
object2 = {};
const TableRowIcon = (require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon;
const HeadphonesSlashIcon = (require(9248) /* metro dependency 9248: HeadphonesSlashIcon */).HeadphonesSlashIcon;
object2.icon = <TableRowIcon IconComponent={HeadphonesSlashIcon} source={importDefault(15469) /* metro dependency 15469 */} />;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
let string = intl.string;
object2.accessibilityHint = Reflect.apply(string, intl,
[(require(1244) /* metro dependency 1244: indexNative */).t.wjcRFX]);
object2.value = value2;
object2.onValueChange = toggleDeaf;
object2.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.wjcRFX);
string = intl.string;
const M3VN2U = (require(1244) /* metro dependency 1244: indexNative */).t.M3VN2U;
object2.subLabel = Reflect.apply(string, intl, [M3VN2U]);
return <TableSwitchRow {...object2} />;
}
function AudioRouteButton_119032({channel, connected}) { // fn#119032, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:4358, offset: 0x024fa3e7, size: 232 bytes, params: 2, frame: 21
const callsUtilsModule = require(9228) /* metro dependency 9228: CallsUtils */;
const useMaskedSpeakerStates = callsUtilsModule.useMaskedSpeakerStates;
const routeSource = Reflect.apply(useMaskedSpeakerStates, callsUtilsModule, []).routeSource;
const TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
const object2 = {};
const TableRowIcon = (require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon;
object2.icon = <TableRowIcon source={routeSource} />;
object2.onPress = onPress_119033;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['A/Ly/2']);
const TableRowArrow = (require(6243) /* metro dependency 6243: TableRowArrowNative */).TableRowArrow;
object2.trailing = <TableRowArrow />;
return <TableRow {...object2} />;
}
function InviteButton({channel, connected}) { // fn#119034, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:4690, offset: 0x024fa506, size: 334 bytes, params: 2, frame: 22
var r0;
var TableRow;
var intl;
if ((importDefault(10785) /* metro dependency 10785: useIsVoiceChannelFull */)(channel)) {
r0 = null;
} else if ((require(15454) /* metro dependency 15454: useCanInviteMembers */).useCanInviteMembers(channel.id)) {
if (connected) {
TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
var tableRowProps = {onPress: (require(15413) /* metro dependency 15413: useInviteMembersCallback */).useInviteMembersCallback(channel.id),
icon: ((TableRowIcon) => <TableRowIcon IconComponent={(require(10859) /* metro dependency 10859: GroupPlusIcon */).GroupPlusIcon} source={importDefault(10832) /* metro dependency 10832 */} />)((require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon)};
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
tableRowProps.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['f1+QIK']);
tableRowProps.trailing = ((TableRowArrow) => <TableRowArrow />)((require(6243) /* metro dependency 6243: TableRowArrowNative */).TableRowArrow);
r0 = <TableRow {...tableRowProps} />;
} else {
r0 = null;
}
} else {
r0 = null;
}
return r0;
}
function HideNonVideoParticipants({channelId}) { // fn#119035, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:5087, offset: 0x024fa654, size: 373 bytes, params: 2, frame: 22
var object2;
const voiceParticipantsHidden = (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelRTCStore],
function() {
return ChannelRTCStore.getVoiceParticipantsHidden(channelId);
});
const value2 = env0_4.useCallback(_fun119037, [channelId, voiceParticipantsHidden]);
const TableSwitchRow = (require(6808) /* metro dependency 6808: TableSwitchRowNative */).TableSwitchRow;
object2 = {};
const TableRowIcon = (require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon;
const VideoIcon = (require(9759) /* metro dependency 9759: VideoIcon */).VideoIcon;
object2.icon = <TableRowIcon IconComponent={VideoIcon} source={importDefault(10793) /* metro dependency 10793 */} />;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
let string = intl.string;
let ZMTRyc = (require(1244) /* metro dependency 1244: indexNative */).t.ZMTRyc;
object2.accessibilityHint = Reflect.apply(string, intl, [ZMTRyc]);
object2.value = voiceParticipantsHidden;
object2.onValueChange = value2;
string = intl.string;
ZMTRyc = (require(1244) /* metro dependency 1244: indexNative */).t.ZMTRyc;
object2.label = Reflect.apply(string, intl, [ZMTRyc]);
string = intl.string;
const MlpCFS = (require(1244) /* metro dependency 1244: indexNative */).t.MlpCFS;
object2.subLabel = Reflect.apply(string, intl, [MlpCFS]);
return <TableSwitchRow {...object2} />;
}
function HideSelfVideo() { // fn#119038, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:5600, offset: 0x024fa819, size: 311 bytes, params: 1, frame: 22
var r0;
var TableSwitchRow;
var intl;
const defaultImport = importDefault(15554) /* metro dependency 15554: useHideSelfVideo */;
const getId = AuthenticationStore.getId;
const value3 = env0_3(defaultImport(Reflect.apply(getId, AuthenticationStore, [])), 3);
const property = value3[0];
const property2 = value3[1];
const env0_1 = value3[2];
const fluxModule = require(566) /* metro dependency 566: flux */;
const useStateFromStores = fluxModule.useStateFromStores;
const items = [UnsyncedUserSettingsStore];
const env0_2 = Reflect.apply(useStateFromStores, fluxModule, [items, function() {
return UnsyncedUserSettingsStore.disableHideSelfStreamAndVideoConfirmationAlert;
}]);
if (property) {
TableSwitchRow = (require(6808) /* metro dependency 6808: TableSwitchRowNative */).TableSwitchRow;
var tableSwitchRowProps = {icon: ((TableRowIcon) => <TableRowIcon IconComponent={(require(7960) /* metro dependency 7960: UserSquareIcon */).UserSquareIcon} />)((require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon),
value: !property2, onValueChange: onValueChange_119040};
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
tableSwitchRowProps.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.MH8ESU);
r0 = <TableSwitchRow {...tableSwitchRowProps} />;
} else {
r0 = null;
}
return r0;
}
function LeaveActivitiesButton() { // fn#119046, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:6197, offset: 0x024faa9e, size: 163 bytes, params: 1, frame: 20
const TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
const object2 = {};
const TableRowIcon = (require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon;
object2.icon = <TableRowIcon source={importDefault(11299) /* metro dependency 11299 */} />;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['R/FK4A']);
object2.onPress = onPress_119047;
return <TableRow {...object2} />;
}
function ShareActivityLogsButton_119048() { // fn#119048, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:6541, offset: 0x024fab9d, size: 147 bytes, params: 1, frame: 21
const value2 = undefined;
const {label, icon, onPress} = (require(15555) /* metro dependency 15555: ChannelCallUtils */).shareActivityLogs();
const TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
return (
<TableRow
icon={icon != null ? ((TableRowIcon) => <TableRowIcon source={icon} />)((require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon) : value2}
label={label}
onPress={onPress}
/>
);
}
function ToggleShowActivitiesDebugOverlay() { // fn#119049, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:6782, offset: 0x024fac30, size: 210 bytes, params: 1, frame: 22
var object2;
const showActivitiesDebugOverlay = (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelCallLifecycleStore],
function() {
return ChannelCallLifecycleStore.getShowActivitiesDebugOverlay();
});
const TableSwitchRow = (require(6808) /* metro dependency 6808: TableSwitchRowNative */).TableSwitchRow;
object2 = {};
const TableRowIcon = (require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon;
object2.icon = <TableRowIcon source={importDefault(8151) /* metro dependency 8151 */} />;
object2.value = showActivitiesDebugOverlay;
object2.onValueChange = onValueChange_119051;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['qv5/SP']);
return <TableSwitchRow {...object2} />;
}
function VoiceSettingsButton({guildId}) { // fn#119052, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:7173, offset: 0x024fad4e, size: 304 bytes, params: 2, frame: 21
var object2;
const value2 = env0_4.useCallback(_fun119053, [guildId]);
const TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
object2 = {onPress: value2};
const TableRowIcon = (require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon;
const SettingsIcon = (require(7002) /* metro dependency 7002: SettingsIcon */).SettingsIcon;
object2.icon = <TableRowIcon IconComponent={SettingsIcon} source={importDefault(15468) /* metro dependency 15468 */} />;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const NiTd0e = (require(1244) /* metro dependency 1244: indexNative */).t.NiTd0e;
object2.label = Reflect.apply(string, intl, [NiTd0e]);
object2.subLabel = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['16SG+O']);
const TableRowArrow = (require(6243) /* metro dependency 6243: TableRowArrowNative */).TableRowArrow;
object2.trailing = <TableRowArrow />;
return <TableRow {...object2} />;
}
function ReportStreamIssueButton({stream}) { // fn#119054, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:7576, offset: 0x024faeab, size: 157 bytes, params: 2, frame: 21
const {label, icon,
onPress} = (require(15555) /* metro dependency 15555: ChannelCallUtils */).reportStreamIssue(stream);
const TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
return (
<TableRow
icon={icon != null ? ((TableRowIcon) => <TableRowIcon source={icon} />)((require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon) : undefined}
label={label}
onPress={onPress}
/>
);
}
function RTCDebugPanelButton() { // fn#119055, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:7815, offset: 0x024faf48, size: 157 bytes, params: 1, frame: 21
const value2 = undefined;
const {label, onPress,
icon} = (require(15555) /* metro dependency 15555: ChannelCallUtils */).rtcDebugPanel(function() {
});
const TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
return (
<TableRow
icon={icon != null ? ((TableRowIcon) => <TableRowIcon source={icon} />)((require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon) : value2}
label={label}
onPress={onPress}
/>
);
}
function _fun119013() { // fn#119013, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:559, offset: 0x024f9a02, size: 198 bytes, params: 1, frame: 20
const value = environment.__proto__;
const defaultImport = importDefault(3857) /* metro dependency 3857: ToastActionCreators */;
const open = defaultImport.open;
const object2 = {};
let binding = env0_1;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
let string = intl.string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
object2.key = binding ? Reflect.apply(string, intl, [t.rimHDW]) : Reflect.apply(string, intl, [t.rZfiNq]);
binding = env0_1;
string = intl.string;
object2.content = binding ? Reflect.apply(string, intl, [t.rimHDW]) : Reflect.apply(string, intl, [t.rZfiNq]);
Reflect.apply(open, defaultImport, [object2]);
}
function _fun119017(a0) { // fn#119017, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:1707, offset: 0x024f9bab, size: 57 bytes, params: 2, frame: 16
return (
<GameConsoleAccountButton
account={a0}
channel={channel}
connected={connected}
key={a0.type}
/>
);
}
function _fun119019() { // fn#119019, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:1958, offset: 0x024f9cda, size: 41 bytes, params: 1, frame: 13
dismissPanel();
global.setTimeout(function() {
var openTabBinding = openTab;
var object = {tab: 'app_launcher'};
object.source = require(dependencyMap[28]).VoicePanelTabAnalyticsSources.VOICE_CONTROLS;
openTabBinding(object);
}, 200);
}
function _fun119022() { // fn#119022, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:2341, offset: 0x024f9e3d, size: 41 bytes, params: 1, frame: 13
dismissPanel();
global.setTimeout(function() {
var openTabBinding = openTab;
var object = {tab: 'chat'};
object.source = require(dependencyMap[28]).VoicePanelTabAnalyticsSources.VOICE_CONTROLS;
openTabBinding(object);
}, 200);
}
function AudioRouteButton_119032OnPress() { // fn#119033, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:4538, owner: AudioRouteButton_119032.onPress, offset: 0x024fa4cf, size: 55 bytes, params: 1, frame: 14
let value = environment.__proto__;
value = require(9239) /* metro dependency 9239: showAudioOutputSelector */;
value.showAudioOutputSelector(channel.id, connected);
}
function _fun119037() { // fn#119037, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:5230, offset: 0x024fa7e4, size: 53 bytes, params: 1, frame: 14
let value = environment.__proto__;
value = importDefault(7712) /* metro dependency 7712: ChannelRTCActionCreators */;
value.toggleVoiceParticipantsHidden(channelId, !voiceParticipantsHidden);
}
function HideSelfVideoOnValueChange() { // fn#119040, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:5900, owner: HideSelfVideo.onValueChange, offset: 0x024fa95f, size: 76 bytes, params: 1, frame: 14
if (disableHideSelfStreamAndVideoConfirmationAlert) {
return env0_1(!env0_0);
}
if (env0_0) {
return env0_1(!env0_0);
}
const VIDEO = SelfStreamAndVideoAlertType.VIDEO;
onValueChangeOpenHideSelfStreamAndVideoConfirmDialog(VIDEO, _fun119045);
}
function LeaveActivitiesButtonOnPress() { // fn#119047, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:6363, owner: LeaveActivitiesButton.onPress, offset: 0x024fab41, size: 92 bytes, params: 1, frame: 16
let value = environment.__proto__;
const currentEmbeddedActivity = EmbeddedActivitiesStore.getCurrentEmbeddedActivity();
value = undefined;
(importDefault(8092) /* metro dependency 8092: EmbeddedActivitiesNativeManager */).leaveActivity({location: currentEmbeddedActivity == null ? value : currentEmbeddedActivity.location,
applicationId: currentEmbeddedActivity == null ? value : currentEmbeddedActivity.applicationId});
return value;
}
function ToggleShowActivitiesDebugOverlayOnValueChange(a0) { // fn#119051, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:7009, owner: ToggleShowActivitiesDebugOverlay.onValueChange, offset: 0x024fad15, size: 57 bytes, params: 2, frame: 13
const value = environment.__proto__;
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'EMBEDDED_ACTIVITY_SET_DEBUG_OVERLAY_VISIBILITY',
visible: a0});
}
function _fun119053() { // fn#119053, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:7236, offset: 0x024fae7e, size: 45 bytes, params: 1, frame: 12
let value = environment.__proto__;
value = require(10813) /* metro dependency 10813: ChannelCallConnectingScreen */;
value.showVoiceSettingsActionSheet(guildId);
}
function onValueChangeOpenHideSelfStreamAndVideoConfirmDialog(a0, a1) { // fn#119041, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:5927, owner: HideSelfVideo.onValueChange.openHideSelfStreamAndVideoConfirmDialog, offset: 0x024fa9ab, size: 68 bytes, params: 3, frame: 13
var environment;
const env0_0 = a0;
const env0_1 = a1;
let value = environment.__proto__.__proto__;
value = importDefault(4496) /* metro dependency 4496: AlertActionCreators */;
value.openLazy({importer: importer_119042});
}
function _fun119045() { // fn#119045, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:6106, offset: 0x024faa87, size: 23 bytes, params: 1, frame: 11
return env1_1(!env1_0);
}
function openHideSelfStreamAndVideoConfirmDialogImporter_119042() { // fn#119042, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:6009, owner: HideSelfVideo.onValueChange.openHideSelfStreamAndVideoConfirmDialog.importer, offset: 0x024fa9ef, size: 64 bytes, params: 1, frame: 13
var environment;
let value = environment.__proto__.__proto__.__proto__;
value = require(dependencyMap[16]);
value = value(dependencyMap[15], dependencyMap.paths);
return value.then(function({default: env0_0}) {
return _fun119044;
});
}
function _fun119043({default: env0_0}) { // fn#119043, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:6043, offset: 0x024faa2f, size: 23 bytes, params: 2, frame: 2
return _fun119044;
}
function _fun119044(a0) { // fn#119044, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15748:6058, offset: 0x024faa46, size: 65 bytes, params: 2, frame: 15
return ((Component) => <Component {...a0} {...{['type']: env2_0}} {...{['onConfirm']: require}} />)(env0_0);
}
@@ -0,0 +1,63 @@
/* Metro module 15499; source: modules/voice_panel/native/controls/activities/ActivityItemMissingCard.tsx; dependencies: [5, 31, 27, 33, 4501, 697, 11794, 6771, 8106, 10718, 5278, 15500, 15501, 6821, 2] */
function _fun118676(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118676, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15696:6, offset: 0x024e793f, size: 327 bytes, params: 8, frame: 23
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(5) /* metro dependency 5 */;
let value = importAll(31) /* metro dependency 31 */;
const env0_5 = (require(27) /* metro dependency 27 */).ActivityIndicator;
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 = {};
let BACKGROUND_SURFACE_HIGH = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_SURFACE_HIGH;
object2.loadingActivity = {'width': '100%', 'height': '100%', 'alignItems': 'center', 'justifyContent': 'center',
backgroundColor: BACKGROUND_SURFACE_HIGH};
BACKGROUND_SURFACE_HIGH = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_SURFACE_HIGH;
object2.disabledActivity = {'width': '100%', 'height': '100%', backgroundColor: BACKGROUND_SURFACE_HIGH};
const env0_8 = Reflect.apply(createStyles, createStylesModule, [object2]);
value = value.memo(ActivityItemMissingCard);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/activities/ActivityItemMissingCard.tsx');
exports.default = value;
}
function ActivityItemEmptyCard({activity, application}) { // fn#118677, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15696:442, offset: 0x024e7a86, size: 403 bytes, params: 2, frame: 25
const styles = useStyles();
const value2 = env0_4.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const channelId = value2.channelId;
const {width, height} = value2.layoutManager.getTargetDimensions(undefined);
const analyticsLocations = (importDefault(6771) /* metro dependency 6771: useAnalyticsLocations */)().analyticsLocations;
const value5 = env0_4.useCallback(analyticsLocations(_fun118679), [activity.launchId, analyticsLocations,
application, channelId]);
const value6 = (importDefault(10718) /* metro dependency 10718: useEmbeddedActivityBackground */)({applicationId: activity.applicationId,
size: width, names: ['embedded_background']});
const PressableOpacity = (require(5278) /* metro dependency 5278: Pressables */).PressableOpacity;
return (
<PressableOpacity
activeOpacity={0.7}
onPress={value5}
style={styles.disabledActivity}
>
{((Component) => <Component imageBackground={value6} aspectRatio={width / height} />)(importDefault(15500) /* metro dependency 15500: ActivityShelfItemBackground */)}
{((Component) => <Component channelId={channelId} applicationId={application.id} applicationName={application.name} />)(importDefault(15501) /* metro dependency 15501: ActivityShelfItemSummary */)}
</PressableOpacity>
);
}
function ActivityItemMissingCard({activity, application}) { // fn#118680, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15696:1146, offset: 0x024e7c99, size: 136 bytes, params: 2, frame: 18
const styles = useStyles();
return activity == null || application == null ? ((Component) => <Component style={styles.loadingActivity}><ActivityIndicator size="large" /></Component>)(importDefault(6821) /* metro dependency 6821: NativeView */) : <ActivityItemEmptyCard activity={activity} application={application} />;
}
function* _fun118679() { // fn#118679, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15696:666, offset: 0x024e7c24, size: 117 bytes, params: 1, frame: 16
if (true) {
value = environment.__proto__.__proto__;
value = env2_0(env2_2[8]);
yield value.maybeJoinEmbeddedActivity({channelId: dependencyMap, applicationId: importDefault.id,
launchId: require.launchId, inputApplication: importDefault, analyticsLocations: env1_3});
}
}
@@ -0,0 +1,186 @@
/* Metro module 15503; source: modules/voice_panel/native/controls/activities/ActivityShelfItem.tsx; dependencies: [31, 1309, 33, 4501, 697, 4000, 11680, 11598, 6821, 15501, 1852, 8092, 5068, 10718, 7502, 5278, 3868, 15500, 11627, 1305, 15504, 15502, 4617, 12070, 4573, 11684, 1244, 2] */
function _fun118694(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118694, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15700:6, offset: 0x024e84d6, size: 542 bytes, params: 8, frame: 25
var object5;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(1309) /* metro dependency 1309: FormConstants */).ANDROID_FOREGROUND_RIPPLE;
let value = require(33) /* metro dependency 33 */;
const env0_5 = value.jsx;
const env0_6 = value.Fragment;
const env0_7 = value.jsxs;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
object5 = {};
const object6 = {'borderRadius': null, 'overflow': 'hidden', 'height': 120, 'position': 'relative',
'backgroundColor': 'black', 'justifyContent': 'center'};
object6.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.md;
object5.container = object6;
object5.imageOuterContainer = {'justifyContent': 'center', 'alignItems': 'center'};
object5.ongoingActivityJoinedContainer = {'position': 'absolute', 'width': '100%', 'height': '100%',
'backgroundColor': 'rgba(255,255,255,0.5)', 'zIndex': 1};
const object7 = {};
const colorUtilsModule = require(4000) /* metro dependency 4000: ColorUtils */;
const hexWithOpacity = colorUtilsModule.hexWithOpacity;
const BLACK = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.BLACK;
object7.backgroundColor = Reflect.apply(hexWithOpacity, colorUtilsModule, [BLACK, 0.5]);
object7.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object5.overlayBubble = object7;
object5.participantsContainer = {'paddingHorizontal': 8, 'position': 'absolute', 'left': 8, 'bottom': 8,
'display': 'flex', 'flexDirection': 'row', 'alignItems': 'center', 'justifyContent': 'center', 'height': 20};
object5.participantsText = {'marginLeft': 4, 'lineHeight': 20};
const object8 = {'position': 'absolute', 'top': 4, 'right': 4, 'width': 22, 'height': 22, 'borderRadius': null,
'backgroundColor': null, 'alignItems': 'center', 'justifyContent': 'center'};
object8.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.md;
const BACKGROUND_MOD_STRONG = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_MOD_STRONG;
object8.backgroundColor = BACKGROUND_MOD_STRONG;
object5.developerIconContainer = object8;
const WHITE = (importDefault(697) /* metro dependency 697: native */).colors.WHITE;
object5.developerIconColor = {color: WHITE};
const env0_8 = Reflect.apply(createStyles, value, [object5]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/activities/ActivityShelfItem.tsx');
exports.default = ActivityShelfItem;
}
function ActivityActionOverlay({action, applicationId, context, activityItem, launchingComponentId}) { // fn#118695, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15700:1133, offset: 0x024e86f4, size: 360 bytes, params: 2, frame: 24
var jsxRuntimeEnv0_6Binding;
var items2;
const submitting = (importDefault(11680) /* metro dependency 11680: useLaunchingActivityButtonState */)({applicationId: applicationId,
context: context, launchingComponentId: launchingComponentId}).submitting;
const styles = useStyles();
const application = activityItem.application;
const id2 = application.id;
const name = application.name;
const ActivityAction = (require(11598) /* metro dependency 11598: useActivityShelfItem */).ActivityAction;
const JOIN = ActivityAction.JOIN;
if (JOIN === action) {
jsxRuntimeEnv0_6Binding = jsxRuntimeEnv0_6;
items2 = [action === (require(11598) /* metro dependency 11598: useActivityShelfItem */).ActivityAction.LEAVE && ((Component) => <Component style={styles.ongoingActivityJoinedContainer} />)(importDefault(6821) /* metro dependency 6821: NativeView */)];
items2[1] = ((Component) => <Component channelId={context.type !== 'channel' ? undefined : context.channel.id} applicationId={id2} applicationName={name} submitting={submitting} />)(importDefault(15501) /* metro dependency 15501: ActivityShelfItemSummary */);
return (
<>
{items2}
</>
);
}
const LEAVE = ActivityAction.LEAVE;
if (LEAVE === action) {
jsxRuntimeEnv0_6Binding = jsxRuntimeEnv0_6;
items2 = [action === (require(11598) /* metro dependency 11598: useActivityShelfItem */).ActivityAction.LEAVE && ((Component) => <Component style={styles.ongoingActivityJoinedContainer} />)(importDefault(6821) /* metro dependency 6821: NativeView */)];
items2[1] = ((Component) => <Component channelId={context.type !== 'channel' ? undefined : context.channel.id} applicationId={id2} applicationName={name} submitting={submitting} />)(importDefault(15501) /* metro dependency 15501: ActivityShelfItemSummary */);
return (
<>
{items2}
</>
);
}
return null;
}
function ParticipantsText({action, activityItem, channelId, guildId}) { // fn#118696, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15700:1673, offset: 0x024e885c, size: 512 bytes, params: 2, frame: 30
var r8;
var intl;
var value;
const styles = useStyles();
const value3 = (importDefault(15502) /* metro dependency 15502: useActivityUsers */)(activityItem.application.id,
channelId);
const name = (importDefault(4617) /* metro dependency 4617: NicknameUtils */).getName(guildId, channelId,
value3?.[0]);
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const items2 = [styles.participantsContainer];
items2[1] = styles.overlayBubble;
const Icon = (require(1305) /* metro dependency 1305: native */).Icon;
const object = {source: importDefault(12070) /* metro dependency 12070 */};
const Icon2 = (require(1305) /* metro dependency 1305: native */).Icon;
const Sizes = Icon2.Sizes;
const EXTRA_SMALL = Sizes.EXTRA_SMALL;
object.size = EXTRA_SMALL;
object.color = 'white';
const icon = <Icon {...object} />;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const ActivityAction = (require(11598) /* metro dependency 11598: useActivityShelfItem */).ActivityAction;
const START = ActivityAction.START;
if (action === START) {
value = require(11684) /* metro dependency 11684: getItemSubtitleForMaxPlayers */;
value = value.getItemSubtitleForMaxPlayersShort(activityItem.application.maxParticipants ?? 0);
r8 = value;
} else if (value3.length <= 1) {
r8 = name;
} else {
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
r8 = intl.formatToPlainString((require(1244) /* metro dependency 1244: indexNative */).t.cpe6CK,
{count: value3.length - 1, username: name});
}
return (
<NativeView style={items2}>
{icon}
<Text
lineClamp={1}
style={styles.participantsText}
variant="text-xxs/medium"
color="always-white"
>
{r8}
</Text>
</NativeView>
);
}
function ActivityShelfItem({itemDimensions, activityItem, context, guildId, locationObject, onActivityItemSelected, disableBadges}) { // fn#118697, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15700:2443, offset: 0x024e8a5c, size: 1136 bytes, params: 2, frame: 42
var r17;
const ActivityAction = (require(11598) /* metro dependency 11598: useActivityShelfItem */).ActivityAction;
disableBadges = !(disableBadges === undefined) && disableBadges;
const styles = useStyles();
const channel = context.type !== 'channel' ? null : context.channel;
const width = itemDimensions.width;
const height = itemDimensions.height;
const value5 = width * (importDefault(1852) /* metro dependency 1852: getDevicePixelRatioNative */)();
const value6 = env0_3.useId();
const defaultImport = importDefault(11598) /* metro dependency 11598: useActivityShelfItem */;
let object = {activityItem: activityItem, context: context, guildId: guildId, locationObject: locationObject,
onActivityItemSelected: onActivityItemSelected,
embeddedActivitiesManager: importDefault(8092) /* metro dependency 8092: EmbeddedActivitiesNativeManager */,
backgroundResolution: value5, assetNames: ['embedded_cover'], launchingComponentId: value6};
const CommandOrigin = (require(5068) /* metro dependency 5068: ApplicationCommandTypes */).CommandOrigin;
const VOICE_UI = CommandOrigin.VOICE_UI;
object.commandOrigin = VOICE_UI;
var {imageBackground, activityAction, onActivityItemSelected, labelType} = defaultImport(object);
const value8 = (importDefault(10718) /* metro dependency 10718: useEmbeddedActivityBackground */)({applicationId: activityItem.application.id,
size: value5, names: ['embedded_background']});
if (disableBadges) {
r17 = !disableBadges;
} else {
object = [ActivityAction.LEAVE];
object[1] = ActivityAction.JOIN;
r17 = !object.includes(activityAction);
}
const value11 = (require(7502) /* metro dependency 7502: TestModeUtils */).useIsTestModeForApplication(activityItem.application.id);
const PressableOpacity = (require(5278) /* metro dependency 5278: Pressables */).PressableOpacity;
const LEAVE = ActivityAction.LEAVE;
const items2 = [styles.container];
items2[1] = {width: width, height: height};
const ThemeContextProvider = (require(3868) /* metro dependency 3868: native */).ThemeContextProvider;
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const ActivityShelfItemBackground = importDefault(15500) /* metro dependency 15500: ActivityShelfItemBackground */;
const name = activityItem.application.name;
let START = ActivityAction.START;
const items3 = [<NativeView style={styles.imageOuterContainer}><ActivityShelfItemBackground accessibilityLabel={name} imageBackground={activityAction !== START ? value8 : imageBackground} aspectRatio={width / height} /><ActivityActionOverlay action={activityAction} applicationId={activityItem.application.id} context={context} activityItem={activityItem} launchingComponentId={value6} /></NativeView>];
items3[1] = r17 ? ((Component) => <Component labelType={labelType} />)(importDefault(11627) /* metro dependency 11627: ActivityShelfBadge */) : null;
items3[2] = r17 && value11 ? <NativeView style={styles.developerIconContainer}>{((Icon) => <Icon size={(require(1305) /* metro dependency 1305: native */).Icon.Sizes.REFRESH_SMALL_16} source={importDefault(15504) /* metro dependency 15504 */} color={styles.developerIconColor.color} />)((require(1305) /* metro dependency 1305: native */).Icon)}</NativeView> : null;
const themeContextProvider = <ThemeContextProvider theme="dark">{items3}</ThemeContextProvider>;
START = ActivityAction.START;
return (
<PressableOpacity
activeOpacity={0.7}
onPress={onActivityItemSelected}
disabled={activityAction === LEAVE}
androidRippleConfig={ANDROID_FOREGROUND_RIPPLE}
style={items2}
>
{themeContextProvider}
{activityAction === START && <ParticipantsText action={activityAction} channelId={channel?.id} guildId={channel?.getGuildId() ?? undefined} activityItem={activityItem} />}
</PressableOpacity>
);
}
@@ -0,0 +1,48 @@
/* Metro module 15500; source: modules/voice_panel/native/controls/activities/ActivityShelfItemBackground.tsx; dependencies: [57, 31, 27, 33, 4501, 6821, 11626, 2] */
function _fun118681(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118681, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15697:6, offset: 0x024e7d21, size: 219 bytes, params: 8, frame: 19
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importDefault(57) /* metro dependency 57 */;
let value = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(27) /* metro dependency 27 */).Image;
const env0_5 = (require(33) /* metro dependency 33 */).jsx;
const env0_6 = (require(4501) /* metro dependency 4501: createStyles */).createStyles(function(a0) {
return {previewImage: {'alignItems': 'center', 'justifyContent': 'center', 'backgroundColor': 'black'},
activityImage: {width: '100%', aspectRatio: a0}};
});
value = value.memo(ActivityShelfItemBackground);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/activities/ActivityShelfItemBackground.tsx');
exports.default = value;
}
function ActivityShelfItemBackground({imageBackground, aspectRatio, accessibilityLabel}) { // fn#118683, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15697:319, offset: 0x024e7e2c, size: 371 bytes, params: 2, frame: 21
var r0;
var NativeView;
var value;
const styles = useStyles(aspectRatio);
const [property, env0_0] = env0_2(env0_3.useState(false), 2);
if (imageBackground.state === 'not-found') {
value = importDefault(6821) /* metro dependency 6821: NativeView */;
value = ((Component) => <Component style={styles.previewImage}>{((Component) => <Component />)(importDefault(11626) /* metro dependency 11626: BrokenImage */)}</Component>)(value);
r0 = value;
} else if (property) {
value = importDefault(6821) /* metro dependency 6821: NativeView */;
value = ((Component) => <Component style={styles.previewImage}>{((Component) => <Component />)(importDefault(11626) /* metro dependency 11626: BrokenImage */)}</Component>)(value);
r0 = value;
} else if (imageBackground.state === 'loading') {
value = importDefault(6821) /* metro dependency 6821: NativeView */;
value = ((Component) => <Component style={styles.previewImage} />)(value);
r0 = value;
} else if (imageBackground.url == null) {
value = importDefault(6821) /* metro dependency 6821: NativeView */;
value = ((Component) => <Component style={styles.previewImage} />)(value);
r0 = value;
} else {
NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
value = '';
value = <NativeView style={styles.previewImage}><Image onError={onError} source={{uri: imageBackground.url}} style={styles.activityImage} accessibilityRole="image" accessibilityLabel={accessibilityLabel ?? value} /></NativeView>;
r0 = value;
}
return r0;
}
@@ -0,0 +1,74 @@
/* Metro module 15501; source: modules/voice_panel/native/controls/activities/ActivityShelfItemSummary.tsx; dependencies: [57, 31, 27, 33, 4501, 697, 4000, 15502, 10881, 1305, 4587, 4573, 4017, 4593, 2] */
function _fun118685(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118685, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15698:6, offset: 0x024e7f9f, size: 414 bytes, params: 8, frame: 25
var object3;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
importAll(31) /* metro dependency 31 */;
const env0_4 = (require(27) /* metro dependency 27 */).View;
let 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;
object3 = {ongoingActivityContainer: {'position': 'absolute', 'width': '100%', 'height': '100%',
'backgroundColor': 'rgba(0,0,0,0.4)', 'alignItems': 'center', 'justifyContent': 'center'}};
const object4 = {'paddingHorizontal': 12, 'paddingVertical': 4, 'borderRadius': null, 'backgroundColor': null,
'marginBottom': 8};
object4.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
const colorUtilsModule = require(4000) /* metro dependency 4000: ColorUtils */;
const hexWithOpacity = colorUtilsModule.hexWithOpacity;
const BLACK = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.BLACK;
object4.backgroundColor = Reflect.apply(hexWithOpacity, colorUtilsModule, [BLACK, 0.64]);
object3.overlayActivityName = object4;
const MOBILE_TEXT_HEADING_PRIMARY = (importDefault(697) /* metro dependency 697: native */).colors.MOBILE_TEXT_HEADING_PRIMARY;
object3.overlayActivityNameText = {color: MOBILE_TEXT_HEADING_PRIMARY};
object3.loadingTextColor = {color: 'transparent'};
object3.ellipsis = {'flex': 1, 'flexShrink': 1, 'flexGrow': 0, 'justifyContent': 'center', 'alignItems': 'center',
'top': -12};
const env0_7 = Reflect.apply(createStyles, value, [object3]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/activities/ActivityShelfItemSummary.tsx');
exports.default = ActivityShelfItemSummary;
}
function ParticipantsSummary({applicationId, channelId}) { // fn#118686, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15698:728, offset: 0x024e813d, size: 150 bytes, params: 2, frame: 17
const value2 = (importDefault(15502) /* metro dependency 15502: useActivityUsers */)(applicationId, channelId);
const UserSummaryItem = importDefault(10881) /* metro dependency 10881: UserSummaryItem */;
const AvatarSizes = (require(1305) /* metro dependency 1305: native */).AvatarSizes;
const REFRESH_MEDIUM_32 = AvatarSizes.REFRESH_MEDIUM_32;
return (
<UserSummaryItem
users={value2}
max={5}
avatarSize={REFRESH_MEDIUM_32}
withPlusCount
style={{marginBottom: 8}}
cutout={{inset: -8}}
/>
);
}
function ActivityShelfItemSummary({channelId, applicationId, applicationName, submitting}) { // fn#118687, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15698:1068, offset: 0x024e81d3, size: 392 bytes, params: 2, frame: 26
submitting = !(submitting === undefined) && submitting;
const styles = useStyles();
const value3 = env0_3((require(4587) /* metro dependency 4587: ButtonPillNative */).useLoadingStyles(submitting,
'md'), 2);
value3[0];
const property = value3[1];
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const text = <Text variant="text-md/semibold" style={submitting ? styles.loadingTextColor : styles.overlayActivityNameText} lineClamp={2}>{applicationName}</Text>;
const View2 = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View;
return (
<View style={styles.ongoingActivityContainer}>
<View style={styles.overlayActivityName}>
{text}
<View2 style={[styles.ellipsis, property]}>
{submitting && ((Ellipsis) => <Ellipsis variant="active" size="md" />)((require(4593) /* metro dependency 4593: ButtonEllipsisNative */).Ellipsis)}
</View2>
</View>
<ParticipantsSummary channelId={channelId} applicationId={applicationId} />
</View>
);
}
@@ -0,0 +1,132 @@
/* Metro module 15528; source: modules/voice_panel/native/controls/buttons/VoicePanelAnimatedButtonWrapper.tsx; dependencies: [31, 27, 11795, 33, 4501, 697, 4017, 15447, 477, 4577, 4504, 2] */
function _fun118909(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118909, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15725:6, offset: 0x024f421c, size: 318 bytes, params: 8, frame: 22
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const Pressable = (require(27) /* metro dependency 27 */).Pressable;
const env0_4 = (require(11795) /* metro dependency 11795: VoicePanelConstants */).MODE_CHANGE_PHYSICS;
const env0_5 = (require(33) /* metro dependency 33 */).jsx;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
const BORDER_RADIUS_LG = (importDefault(697) /* metro dependency 697: native */).modules.button.BORDER_RADIUS_LG;
const env0_6 = Reflect.apply(createStyles, createStylesModule, [{pressableWrapper: {'justifyContent': 'center',
'alignItems': 'center', borderRadius: BORDER_RADIUS_LG}}]);
const env0_7 = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).createAnimatedComponent(Pressable);
object = {code: 'function VoicePanelAnimatedButtonWrapperTsx1(values){const{offsetFromCenter,withSpring,MODE_CHANGE_PHYSICS,withTiming}=this.__closure;offsetFromCenter.set(values.windowWidth/2-values.targetGlobalOriginX-values.targetWidth/2);return{initialValues:{originX:values.targetOriginX+offsetFromCenter.get(),opacity:0,transform:[{scale:0.5}]},animations:{originX:withSpring(values.targetOriginX,MODE_CHANGE_PHYSICS),opacity:withTiming(1,{duration:100}),transform:[{scale:withSpring(1,MODE_CHANGE_PHYSICS)}]}};}'};
object = {code: 'function VoicePanelAnimatedButtonWrapperTsx2(values){const{withSpring,offsetFromCenter,MODE_CHANGE_PHYSICS,withTiming}=this.__closure;return{initialValues:{originX:values.currentOriginX,opacity:1,transform:[{scale:1}]},animations:{originX:withSpring(values.currentOriginX+offsetFromCenter.get(),MODE_CHANGE_PHYSICS),opacity:withTiming(0,{duration:100}),transform:[{scale:withSpring(0.5,MODE_CHANGE_PHYSICS)}]}};}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/buttons/VoicePanelAnimatedButtonWrapper.tsx');
exports.default = AnimatedButtonWrapper;
}
function AnimatedButtonWrapper({props, onPress, onLongPress, onPressIn, onPressOut, accessibilityLabel, style, children, pressed, disabled}) { // fn#118910, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15725:1410, offset: 0x024f435a, size: 463 bytes, params: 2, frame: 29
const r19 = pressed ?? (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(false);
const env0_3 = r19;
const value3 = (importDefault(15447) /* metro dependency 15447: useControlsLock */)();
const styles = useStyles();
const binding = env0_3;
const value4 = binding.useMemo(function() {
return {onPressIn: onPressIn ?? _fun118912, onPressOut: onPressOut ?? _fun118913};
}, [r19, value3, onPressIn, onPressOut]);
const width = props.width;
const height = props.height;
const env0_7 = height;
const value5 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(0);
return ((Component) => <Component entering={binding.useMemo(_fun118914,
[value5])} exiting={binding.useMemo(_fun118916,
[value5])} onPress={onPress} onLongPress={onLongPress} disabled={disabled} {...value4} {...{['accessibilityRole']: 'button'}} {...{['accessibilityLabel']: accessibilityLabel}} {...{['style']: binding.useMemo(function() {
return [styles.pressableWrapper, {width: width, height: height}, style];
}, [style, styles.pressableWrapper, width, height])}}>{children}</Component>)(env0_7);
}
function _fun118911() { // fn#118911, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15725:1640, offset: 0x024f4529, size: 63 bytes, params: 1, frame: 6
return {onPressIn: onPressIn ?? _fun118912, onPressOut: onPressOut ?? _fun118913};
}
function _fun118914() { // fn#118914, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15725:1815, offset: 0x024f45b2, size: 156 bytes, params: 1, frame: 15
const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */;
if (platformUtilsModule.isAndroid()) {
return undefined;
}
const closure = t_118915;
const object2 = {};
object2.offsetFromCenter = env0_8;
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.MODE_CHANGE_PHYSICS = MODE_CHANGE_PHYSICS;
object2.withTiming = (require(4504) /* metro dependency 4504: timing */).withTiming;
closure.__closure = object2;
closure.__workletHash = 16238937246135;
closure.__initData = env1_8;
return closure;
}
function _fun118916() { // fn#118916, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15725:2354, offset: 0x024f475b, size: 156 bytes, params: 1, frame: 15
const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */;
if (platformUtilsModule.isAndroid()) {
return undefined;
}
const closure = t_118917;
const object2 = {};
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.offsetFromCenter = env0_8;
object2.MODE_CHANGE_PHYSICS = MODE_CHANGE_PHYSICS;
object2.withTiming = (require(4504) /* metro dependency 4504: timing */).withTiming;
closure.__closure = object2;
closure.__workletHash = 17504057367727;
closure.__initData = env1_9;
return closure;
}
function _fun118912() { // fn#118912, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15725:1666, offset: 0x024f4568, size: 37 bytes, params: 1, frame: 11
env1_4.lock();
env1_3.set(true);
}
function _fun118913() { // fn#118913, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15725:1712, offset: 0x024f458d, size: 37 bytes, params: 1, frame: 11
env1_4.unlock();
env1_3.set(false);
}
function t_118915(a0) { // fn#118915, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15725:1859, offset: 0x024f464e, size: 269 bytes, params: 2, frame: 20
let value = environment.__proto__;
let binding = env1_8;
binding.set(a0.windowWidth / 2 - a0.targetGlobalOriginX - a0.targetWidth / 2);
const object2 = {};
const targetOriginX = a0.targetOriginX;
binding = env1_8;
const get = binding.get;
object2.initialValues = {originX: targetOriginX + Reflect.apply(get, binding, []), opacity: 0,
transform: [{scale: 0.5}]};
const object3 = {};
value = environment.__proto__.__proto__;
const springModule = require(4577) /* metro dependency 4577: spring */;
object3.originX = springModule.withSpring(a0.targetOriginX, MODE_CHANGE_PHYSICS);
object3.opacity = (require(4504) /* metro dependency 4504: timing */).withTiming(1, {duration: 100});
const object5 = {};
object5.scale = springModule.withSpring(1, MODE_CHANGE_PHYSICS);
object3.transform = [object5];
object2.animations = object3;
return object2;
}
function t_118917(a0) { // fn#118917, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15725:2398, offset: 0x024f47f7, size: 216 bytes, params: 2, frame: 21
const object2 = {};
let currentOriginX = a0.currentOriginX;
object2.initialValues = {originX: currentOriginX, opacity: 1, transform: [{scale: 1}]};
const object3 = {};
const value = environment.__proto__.__proto__;
const springModule = require(4577) /* metro dependency 4577: spring */;
const withSpring = springModule.withSpring;
currentOriginX = a0.currentOriginX;
const binding = env1_8;
const get = binding.get;
object3.originX = Reflect.apply(withSpring, springModule, [currentOriginX + Reflect.apply(get, binding, []),
MODE_CHANGE_PHYSICS]);
object3.opacity = (require(4504) /* metro dependency 4504: timing */).withTiming(0, {duration: 100});
const object5 = {};
object5.scale = springModule.withSpring(0.5, MODE_CHANGE_PHYSICS);
object3.transform = [object5];
object2.animations = object3;
return object2;
}
@@ -0,0 +1,88 @@
/* Metro module 15535; source: modules/voice_panel/native/controls/buttons/VoicePanelChatButton.tsx; dependencies: [31, 33, 4501, 697, 11794, 15527, 15482, 15515, 15528, 1244, 15536, 6821, 6682, 2] */
function _fun118936(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118936, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15732:6, offset: 0x024f574e, size: 286 bytes, params: 8, frame: 22
var object3;
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(33) /* metro dependency 33 */;
const env0_4 = value.jsx;
const env0_5 = value.Fragment;
const env0_6 = value.jsxs;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
object3 = {iconContainer: {'position': 'absolute', 'justifyContent': 'center', 'alignItems': 'center',
'width': '100%', 'height': '100%'}};
const object4 = {'position': 'absolute', 'zIndex': 1, 'width': 10, 'height': 10, 'borderRadius': null, 'top': 0,
'right': 0};
object4.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object3.badge = object4;
const RED_400 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.RED_400;
object3.redBG = {backgroundColor: RED_400};
const env0_7 = Reflect.apply(createStyles, value, [object3]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/buttons/VoicePanelChatButton.tsx');
exports.default = ChatButton_118937;
}
function ChatButton_118937({props, openTab, wrapperSpecs}) { // fn#118937, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15732:552, offset: 0x024f586c, size: 411 bytes, params: 2, frame: 26
var object2;
const binding = env0_3;
const {channelId,
connected} = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const styles = useStyles();
const value3 = (require(15527) /* metro dependency 15527: VoicePanelStyles */).useVoicePanelButtonStyles(wrapperSpecs);
const value4 = (importDefault(15482) /* metro dependency 15482: useChatBadge */)(channelId);
const backgroundColor = value3.iconBg.backgroundColor;
let useMemo = binding.useMemo;
const value5 = Reflect.apply(useMemo, binding, [_fun118938, [value4, styles.redBG, value3.iconBadgeIndicator]]);
const value6 = binding.useCallback(_fun118939, [openTab, connected]);
const voicePanelAnimatedButtonWrapper = importDefault(15528) /* metro dependency 15528: VoicePanelAnimatedButtonWrapper */;
object2 = {onPress: value6, props: props};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.accessibilityLabel = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['5KxXrK']);
useMemo = binding.useMemo;
return ((Component) => <Component {...object2}>{Reflect.apply(useMemo, binding, [_fun118940, [backgroundColor,
props.width, value4, styles.iconContainer, styles.badge, value3.iconFill.color,
value5]])}</Component>)(voicePanelAnimatedButtonWrapper);
}
function _fun118938() { // fn#118938, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15732:762, offset: 0x024f5a07, size: 39 bytes, params: 1, frame: 3
return env0_5 === 'mention' ? styles.redBG : env0_4.iconBadgeIndicator;
}
function _fun118939() { // fn#118939, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15732:861, offset: 0x024f5a2e, size: 90 bytes, params: 1, frame: 14
const openTabBinding = openTab;
const value = connected.get();
const VoicePanelTabAnalyticsSources = (require(15515) /* metro dependency 15515: trackVoicePanelTabOpened */).VoicePanelTabAnalyticsSources;
openTabBinding({tab: 'chat',
source: value ? VoicePanelTabAnalyticsSources.CONNECTED_BUTTON : VoicePanelTabAnalyticsSources.PREJOIN_BUTTON});
}
function _fun118940() { // fn#118940, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15732:1130, offset: 0x024f5a88, size: 291 bytes, params: 1, frame: 25
var r5;
let value = environment.__proto__;
const jsxRuntimeEnv1_5Binding = jsxRuntimeEnv1_5;
const CircleWithCutout = importDefault(15536) /* metro dependency 15536: CircleWithCutout */;
const backgroundColorBinding = backgroundColor;
const width = props.width;
const binding = env0_5;
const items2 = [<CircleWithCutout fill={backgroundColorBinding} circleRadius={width / 2} cutoutRadius={8} enableCutout={binding != null} cutoutPositionInDegrees={45} alignBadgeEdgeWithCircleEdge badgeRadius={5} scaleToPixelDensity />];
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const ChatIcon = (require(6682) /* metro dependency 6682: ChatIcon */).ChatIcon;
items2[1] = <NativeView style={styles.iconContainer}><ChatIcon color={env0_4.iconFill.color} /></NativeView>;
const value4 = binding != null;
if (value4) {
value = NativeView;
value = ((Component) => <Component style={[styles.badge, env0_7]} />)(value);
r5 = value;
} else {
r5 = value4;
}
items2[2] = r5;
return (
<>
{items2}
</>
);
}
@@ -0,0 +1,184 @@
/* Metro module 15529; source: modules/voice_panel/native/controls/buttons/VoicePanelConnectButton.tsx; dependencies: [31, 1379, 33, 4501, 697, 11794, 15478, 566, 5072, 5087, 4796, 4497, 15530, 15533, 15534, 9441, 15528, 1244, 4573, 2] */
function _fun118919(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118919, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15726:6, offset: 0x024f4904, size: 283 bytes, params: 8, frame: 22
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const env0_5 = (require(33) /* metro dependency 33 */).jsx;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
const object = {};
const GREEN_360 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.GREEN_360;
object.backgroundColor = GREEN_360;
let PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object.paddingLeft = PX_8;
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object.paddingRight = PX_8;
const env0_6 = Reflect.apply(createStyles, createStylesModule, [{connectButton: object,
connectText: {textAlign: 'center'}}]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/buttons/VoicePanelConnectButton.tsx');
exports.default = ConnectButton;
}
function ConnectButton({props}) { // fn#118920, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15726:435, offset: 0x024f4a1f, size: 462 bytes, params: 2, frame: 24
const styles = useStyles();
let binding = env0_3;
const {channelId,
guildId} = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const value3 = (importDefault(15478) /* metro dependency 15478: useCanConnect */)(channelId);
const canConnect = value3.canConnect;
var env0_3 = canConnect;
const isAtMaxCapacity = value3.isAtMaxCapacity;
const channel = (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelStore], function() {
return ChannelStore.getChannel(channelId);
});
const r10 = (require(5072) /* metro dependency 5072: AgeGateUtils */).useIsChannelContentGated(channel) && guildId != null && channelId != null;
const r9 = (require(5087) /* metro dependency 5087: SpoilerChannelUtils */).useIsChannelSpoilerGated(channel) && guildId != null && channelId != null;
binding = env0_3;
const value10 = binding.useCallback(_fun118922, [canConnect, isAtMaxCapacity, channelId, r10, r9, guildId]);
const VoicePanelAnimatedButtonWrapper = importDefault(15528) /* metro dependency 15528: VoicePanelAnimatedButtonWrapper */;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const useMemo = binding.useMemo;
return (
<VoicePanelAnimatedButtonWrapper
onPress={value10}
props={props}
accessibilityLabel={Reflect.apply(string, intl, [t['96ANUN']])}
style={styles.connectButton}
>
{Reflect.apply(useMemo, binding, [_fun118923, [styles.connectText]])}
</VoicePanelAnimatedButtonWrapper>
);
}
function _fun118922() { // fn#118922, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15726:762, offset: 0x024f4bed, size: 478 bytes, params: 1, frame: 18
var value2;
var defaultImport;
var moduleValue;
var openAlert;
const VOICE_PANEL_NO_JOIN_PERMS_KEY = (require(15530) /* metro dependency 15530: VoicePanelNoJoinPermissionsAlert */).VOICE_PANEL_NO_JOIN_PERMS_KEY;
var value3;
const VOICE_PANEL_SPOILER_KEY = (require(9441) /* metro dependency 9441: VoicePanelSpoilerAlert */).VOICE_PANEL_SPOILER_KEY;
var value4;
const VOICE_PANEL_NSFW_KEY = (require(15534) /* metro dependency 15534: VoicePanelNsfwAlert */).VOICE_PANEL_NSFW_KEY;
var value5;
const VOICE_PANEL_MAX_CAPACITY_KEY = (require(15533) /* metro dependency 15533: VoicePanelMaxCapacityAlert */).VOICE_PANEL_MAX_CAPACITY_KEY;
var value;
if (canConnect) {
if (isAtMaxCapacity) {
if (canConnect) {
if (isAtMaxCapacity) {
value5 = environment.__proto__;
(require(4497) /* metro dependency 4497: useAlertStoreNative */).openAlert(VOICE_PANEL_MAX_CAPACITY_KEY,
((Component) => <Component channelId={channelId} />)(importDefault(15533) /* metro dependency 15533: VoicePanelMaxCapacityAlert */));
} else if (env0_5) {
value4 = environment.__proto__;
(require(4497) /* metro dependency 4497: useAlertStoreNative */).openAlert(VOICE_PANEL_NSFW_KEY,
((Component) => <Component guildId={guildId} channelId={channelId} />)(importDefault(15534) /* metro dependency 15534: VoicePanelNsfwAlert */));
} else if (env0_6) {
value3 = environment.__proto__;
(require(4497) /* metro dependency 4497: useAlertStoreNative */).openAlert(VOICE_PANEL_SPOILER_KEY,
((Component) => <Component channelId={channelId} />)(importDefault(9441) /* metro dependency 9441: VoicePanelSpoilerAlert */));
}
} else {
value = environment.__proto__;
moduleValue = require(4497) /* metro dependency 4497: useAlertStoreNative */;
openAlert = moduleValue.openAlert;
value = importDefault(15530) /* metro dependency 15530: VoicePanelNoJoinPermissionsAlert */;
Reflect.apply(openAlert, moduleValue, [VOICE_PANEL_NO_JOIN_PERMS_KEY,
((Component) => <Component />)(value)]);
}
} else if (env0_5) {
if (canConnect) {
if (isAtMaxCapacity) {
value5 = environment.__proto__;
(require(4497) /* metro dependency 4497: useAlertStoreNative */).openAlert(VOICE_PANEL_MAX_CAPACITY_KEY,
((Component) => <Component channelId={channelId} />)(importDefault(15533) /* metro dependency 15533: VoicePanelMaxCapacityAlert */));
} else if (env0_5) {
value4 = environment.__proto__;
(require(4497) /* metro dependency 4497: useAlertStoreNative */).openAlert(VOICE_PANEL_NSFW_KEY,
((Component) => <Component guildId={guildId} channelId={channelId} />)(importDefault(15534) /* metro dependency 15534: VoicePanelNsfwAlert */));
} else if (env0_6) {
value3 = environment.__proto__;
(require(4497) /* metro dependency 4497: useAlertStoreNative */).openAlert(VOICE_PANEL_SPOILER_KEY,
((Component) => <Component channelId={channelId} />)(importDefault(9441) /* metro dependency 9441: VoicePanelSpoilerAlert */));
}
} else {
value = environment.__proto__;
moduleValue = require(4497) /* metro dependency 4497: useAlertStoreNative */;
openAlert = moduleValue.openAlert;
value = importDefault(15530) /* metro dependency 15530: VoicePanelNoJoinPermissionsAlert */;
Reflect.apply(openAlert, moduleValue, [VOICE_PANEL_NO_JOIN_PERMS_KEY,
((Component) => <Component />)(value)]);
}
} else if (env0_6) {
if (canConnect) {
if (isAtMaxCapacity) {
value5 = environment.__proto__;
(require(4497) /* metro dependency 4497: useAlertStoreNative */).openAlert(VOICE_PANEL_MAX_CAPACITY_KEY,
((Component) => <Component channelId={channelId} />)(importDefault(15533) /* metro dependency 15533: VoicePanelMaxCapacityAlert */));
} else if (env0_5) {
value4 = environment.__proto__;
(require(4497) /* metro dependency 4497: useAlertStoreNative */).openAlert(VOICE_PANEL_NSFW_KEY,
((Component) => <Component guildId={guildId} channelId={channelId} />)(importDefault(15534) /* metro dependency 15534: VoicePanelNsfwAlert */));
} else if (env0_6) {
value3 = environment.__proto__;
(require(4497) /* metro dependency 4497: useAlertStoreNative */).openAlert(VOICE_PANEL_SPOILER_KEY,
((Component) => <Component channelId={channelId} />)(importDefault(9441) /* metro dependency 9441: VoicePanelSpoilerAlert */));
}
} else {
value = environment.__proto__;
moduleValue = require(4497) /* metro dependency 4497: useAlertStoreNative */;
openAlert = moduleValue.openAlert;
value = importDefault(15530) /* metro dependency 15530: VoicePanelNoJoinPermissionsAlert */;
Reflect.apply(openAlert, moduleValue, [VOICE_PANEL_NO_JOIN_PERMS_KEY,
((Component) => <Component />)(value)]);
}
} else {
value2 = environment.__proto__;
defaultImport = importDefault(4796) /* metro dependency 4796: SelectedChannelActionCreators */;
defaultImport.selectVoiceChannel(channelId);
}
} else if (canConnect) {
if (isAtMaxCapacity) {
value5 = environment.__proto__;
(require(4497) /* metro dependency 4497: useAlertStoreNative */).openAlert(VOICE_PANEL_MAX_CAPACITY_KEY,
((Component) => <Component channelId={channelId} />)(importDefault(15533) /* metro dependency 15533: VoicePanelMaxCapacityAlert */));
} else if (env0_5) {
value4 = environment.__proto__;
(require(4497) /* metro dependency 4497: useAlertStoreNative */).openAlert(VOICE_PANEL_NSFW_KEY,
((Component) => <Component guildId={guildId} channelId={channelId} />)(importDefault(15534) /* metro dependency 15534: VoicePanelNsfwAlert */));
} else if (env0_6) {
value3 = environment.__proto__;
(require(4497) /* metro dependency 4497: useAlertStoreNative */).openAlert(VOICE_PANEL_SPOILER_KEY,
((Component) => <Component channelId={channelId} />)(importDefault(9441) /* metro dependency 9441: VoicePanelSpoilerAlert */));
}
} else {
value = environment.__proto__;
moduleValue = require(4497) /* metro dependency 4497: useAlertStoreNative */;
openAlert = moduleValue.openAlert;
value = importDefault(15530) /* metro dependency 15530: VoicePanelNoJoinPermissionsAlert */;
Reflect.apply(openAlert, moduleValue, [VOICE_PANEL_NO_JOIN_PERMS_KEY, ((Component) => <Component />)(value)]);
}
}
function _fun118923() { // fn#118923, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15726:1300, offset: 0x024f4dcb, size: 124 bytes, params: 1, frame: 18
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
return (
<Text
variant="text-sm/semibold"
color="always-white"
style={styles.connectText}
>
{intl.string((require(1244) /* metro dependency 1244: indexNative */).t['96ANUN'])}
</Text>
);
}
@@ -0,0 +1,168 @@
/* Metro module 15537; source: modules/voice_panel/native/controls/buttons/VoicePanelDisconnectCancelButton.tsx; dependencies: [57, 31, 1378, 4492, 7710, 11795, 33, 4501, 697, 11794, 4610, 4017, 8092, 7712, 8913, 4796, 10633, 15538, 9616, 15528, 1244, 2] */
function _fun118943(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118943, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15734:6, offset: 0x024f5e8f, size: 433 bytes, params: 8, frame: 22
var object3;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
const embeddedActivitiesStore = importDefault(1378) /* metro dependency 1378: EmbeddedActivitiesStore */;
const applicationStreamingStore = importDefault(4492) /* metro dependency 4492: ApplicationStreamingStore */;
const voicePanelStore = importDefault(7710) /* metro dependency 7710: VoicePanelStore */;
const env0_8 = (require(11795) /* metro dependency 11795: VoicePanelConstants */).VoicePanelModes;
const env0_9 = (require(33) /* metro dependency 33 */).jsx;
object3 = {USER: 0};
object3[0] = 'USER';
object3.STREAM = 1;
object3[1] = 'STREAM';
object3.ACTIVITY = 2;
object3[2] = 'ACTIVITY';
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object3 = {};
const object4 = {};
const VOICE_PANEL_DISCONNECT_BUTTON_MIN_WIDTH = (importDefault(697) /* metro dependency 697: native */).modules.mobile.VOICE_PANEL_DISCONNECT_BUTTON_MIN_WIDTH;
object4.minWidth = VOICE_PANEL_DISCONNECT_BUTTON_MIN_WIDTH;
const CONTROL_CRITICAL_PRIMARY_BACKGROUND_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.CONTROL_CRITICAL_PRIMARY_BACKGROUND_DEFAULT;
object4.backgroundColor = CONTROL_CRITICAL_PRIMARY_BACKGROUND_DEFAULT;
object3.disconnectCancelBG = object4;
const WHITE = (importDefault(697) /* metro dependency 697: native */).colors.WHITE;
object3.icon = {tintColor: WHITE};
const env0_11 = Reflect.apply(createStyles, createStylesModule, [object3]);
object3 = {code: 'function VoicePanelDisconnectCancelButtonTsx1(){const{mode,VoicePanelModes,focused}=this.__closure;var _focused$get$id,_focused$get;if(mode.get()!==VoicePanelModes.PANEL){return null;}return(_focused$get$id=(_focused$get=focused.get())===null||_focused$get===void 0?void 0:_focused$get.id)!==null&&_focused$get$id!==void 0?_focused$get$id:null;}'};
object3 = {code: 'function VoicePanelDisconnectCancelButtonTsx2(focusId,lastFocusId){const{runOnJS,handleFocusChange}=this.__closure;if(focusId!==lastFocusId){runOnJS(handleFocusChange)(focusId);}}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/buttons/VoicePanelDisconnectCancelButton.tsx');
exports.default = DisconnectCancelButton;
}
function DisconnectCancelButton({props}) { // fn#118944, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15734:1191, offset: 0x024f6040, size: 764 bytes, params: 2, frame: 27
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const styles = useStyles();
let binding = env0_4;
const {channelId, focused,
mode} = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const value4 = mode(binding.useState(null), 2);
const property = value4[0];
var env0_4 = property;
const env0_5 = value4[1];
let closure = _fun118945;
const value5 = binding.useCallback(closure, []);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
closure = DisconnectCancelButtonA;
closure.__closure = {mode: mode, VoicePanelModes: VoicePanelModes, focused: focused};
closure.__workletHash = 1109426015268;
closure.__initData = env0_12;
const closure2 = DisconnectCancelButtonV;
closure2.__closure = {runOnJS: reanimatedRexportModule.runOnJS, handleFocusChange: value5};
closure2.__workletHash = 16719769067952;
closure2.__initData = env0_13;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
const value6 = binding.useCallback(_fun118948, [channelId, property, focused]);
let ACTIVITY = env0_10.ACTIVITY;
const r9 = property === ACTIVITY ? (require(10633) /* metro dependency 10633: DoorExitIcon */).DoorExitIcon : property === env0_10.STREAM ? (require(15538) /* metro dependency 15538: ScreenXIcon */).ScreenXIcon : (require(9616) /* metro dependency 9616: PhoneHangUpIcon */).PhoneHangUpIcon;
const VoicePanelAnimatedButtonWrapper = importDefault(15528) /* metro dependency 15528: VoicePanelAnimatedButtonWrapper */;
ACTIVITY = env0_10.ACTIVITY;
const r6 = property === ACTIVITY ? intl.string((require(1244) /* metro dependency 1244: indexNative */).t['R/FK4A']) : property === env0_10.STREAM ? intl.string((require(1244) /* metro dependency 1244: indexNative */).t.q3O3J8) : intl.string((require(1244) /* metro dependency 1244: indexNative */).t['6vrfgt']);
binding = env0_4;
const useMemo = binding.useMemo;
return (
<VoicePanelAnimatedButtonWrapper
onPress={value6}
props={props}
style={styles.disconnectCancelBG}
accessibilityLabel={r6}
>
{Reflect.apply(useMemo, binding, [_fun118949, [r9, styles.icon]])}
</VoicePanelAnimatedButtonWrapper>
);
}
function _fun118945(a0) { // fn#118945, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15734:1366, offset: 0x024f633c, size: 203 bytes, params: 2, frame: 17
var value;
var currentEmbeddedActivity;
var moduleValue;
var getEmbeddedActivityParticipantId;
var object2;
if (a0 != null) {
value = environment.__proto__;
currentEmbeddedActivity = EmbeddedActivitiesStore.getCurrentEmbeddedActivity();
if (currentEmbeddedActivity?.applicationId == null) {
env0_5(ApplicationStreamingStore.getActiveStreamForStreamKey(a0) == null ? env1_10.USER : env1_10.STREAM);
} else {
moduleValue = require(4610) /* metro dependency 4610: ChannelRTCParticipants */;
getEmbeddedActivityParticipantId = moduleValue.getEmbeddedActivityParticipantId;
object2 = {};
object2.applicationId = currentEmbeddedActivity.applicationId;
object2.instanceId = currentEmbeddedActivity.compositeInstanceId;
if (a0 !== Reflect.apply(getEmbeddedActivityParticipantId, moduleValue, [object2])) {
env0_5(ApplicationStreamingStore.getActiveStreamForStreamKey(a0) == null ? env1_10.USER : env1_10.STREAM);
} else {
env0_5(env1_10.ACTIVITY);
}
}
} else {
env0_5(null);
}
}
function DisconnectCancelButtonA() { // fn#118946, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15734:1712, owner: DisconnectCancelButton.A, offset: 0x024f6407, size: 81 bytes, params: 1, frame: 12
var id;
var r0;
var value;
const value2 = mode.get();
const PANEL = VoicePanelModes.PANEL;
const value4 = null;
if (value2 !== PANEL) {
r0 = value4;
} else {
value = focused.get();
id = value4 == value ? undefined : value.id;
r0 = value4 != id ? id : value4;
}
return r0;
}
function DisconnectCancelButtonV(a0, a1) { // fn#118947, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15734:1909, owner: DisconnectCancelButton.v, offset: 0x024f6458, size: 61 bytes, params: 3, frame: 13
var value;
if (a0 !== a1) {
value = environment.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value.runOnJS(env0_6)(a0);
}
}
function _fun118948() { // fn#118948, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15734:2082, offset: 0x024f6495, size: 310 bytes, params: 1, frame: 21
var state;
var defaultImport3;
var currentEmbeddedActivity;
const value2 = focused.get();
const value3 = undefined;
const id = value2 == null ? value3 : value2.id;
const binding = env0_4;
const ACTIVITY = env1_10.ACTIVITY;
if (binding !== ACTIVITY) {
if (env0_4 === env1_10.STREAM) {
defaultImport3 = importDefault(7712) /* metro dependency 7712: ChannelRTCActionCreators */;
defaultImport3.selectParticipant(channelId, null);
if (id != null) {
(require(8913) /* metro dependency 8913: StreamActionCreators */).stopStream(id);
}
return value3;
}
(importDefault(4796) /* metro dependency 4796: SelectedChannelActionCreators */).disconnect();
state = VoicePanelStore.getState();
state.closeChannel(channelId);
} else {
currentEmbeddedActivity = EmbeddedActivitiesStore.getCurrentEmbeddedActivity();
(importDefault(8092) /* metro dependency 8092: EmbeddedActivitiesNativeManager */).leaveActivity({location: currentEmbeddedActivity == null ? value3 : currentEmbeddedActivity.location,
applicationId: (require(4610) /* metro dependency 4610: ChannelRTCParticipants */).activityParticipantIdToApplicationId(id)});
}
return value3;
}
function _fun118949() { // fn#118949, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15734:2828, offset: 0x024f65cb, size: 39 bytes, params: 1, frame: 13
return ((Component) => <Component style={styles.icon} />)(env0_7);
}
@@ -0,0 +1,30 @@
/* Metro module 15546; source: modules/voice_panel/native/controls/buttons/VoicePanelDrawerToggleButton.tsx; dependencies: [31, 33, 4501, 697, 15527, 15514, 15528, 6821, 8708, 12298, 2] */
function _fun118976(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118976, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15743:6, offset: 0x024f7747, size: 239 bytes, params: 8, frame: 21
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
importAll(31) /* metro dependency 31 */;
let value = require(33) /* metro dependency 33 */;
const env0_3 = value.jsx;
const env0_4 = value.jsxs;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
const object = {'width': '100%', 'height': '100%'};
object.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
const env0_5 = Reflect.apply(createStyles, value, [{circle: object, iconContainer: {'position': 'absolute',
'justifyContent': 'center', 'alignItems': 'center', 'width': '100%', 'height': '100%'}}]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/buttons/VoicePanelDrawerToggleButton.tsx');
exports.default = VoicePanelDrawerToggleButton;
}
function VoicePanelDrawerToggleButton({props, openTab, wrapperSpecs}) { // fn#118977, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15743:454, offset: 0x024f7836, size: 322 bytes, params: 2, frame: 26
const styles = useStyles();
const value2 = (require(15527) /* metro dependency 15527: VoicePanelStyles */).useVoicePanelButtonStyles(wrapperSpecs);
const backgroundColor = value2.iconBg.backgroundColor;
const color = value2.iconFill.color;
const {isDrawerOpen, handlePress,
accessibilityLabel} = (importDefault(15514) /* metro dependency 15514: useDrawerToggle */)(openTab);
return ((Component) => <Component onPress={handlePress} props={props} accessibilityLabel={accessibilityLabel}>{((Component) => <Component style={[styles.circle,
{backgroundColor: backgroundColor}]} />)(importDefault(6821) /* metro dependency 6821: NativeView */)}{((Component) => <Component style={styles.iconContainer}>{((Component) => <Component color={color} />)(isDrawerOpen ? (require(8708) /* metro dependency 8708: ChevronSmallDownIcon */).ChevronSmallDownIcon : (require(12298) /* metro dependency 12298: ChevronSmallUpIcon */).ChevronSmallUpIcon)}</Component>)(importDefault(6821) /* metro dependency 6821: NativeView */)}</Component>)(importDefault(15528) /* metro dependency 15528: VoicePanelAnimatedButtonWrapper */);
}
@@ -0,0 +1,287 @@
/* Metro module 15526; source: modules/voice_panel/native/controls/buttons/VoicePanelMicButton.tsx; dependencies: [57, 31, 4295, 1937, 1226, 1379, 4259, 3784, 1878, 4297, 33, 3, 4501, 566, 6952, 10834, 10845, 11794, 4017, 15447, 4081, 10750, 5321, 15527, 15528, 1244, 10280, 4573, 9250, 10835, 2] */
function _fun118888(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118888, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15723:6, offset: 0x024f327a, size: 449 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
const gameConsoleStore = importDefault(4295) /* metro dependency 4295: GameConsoleStore */;
const impersonateStore = importDefault(1937) /* metro dependency 1937: ImpersonateStore */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const mediaEngineStore = importDefault(4259) /* metro dependency 4259: MediaEngineStore */;
const permissionStore = importDefault(3784) /* metro dependency 3784: PermissionStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const voiceStateStore = importDefault(4297) /* metro dependency 4297: VoiceStateStore */;
let value = require(33) /* metro dependency 33 */;
const env0_13 = value.jsx;
const env0_14 = value.Fragment;
const env0_15 = value.jsxs;
value = importDefault(3) /* metro dependency 3: Logger */;
value = new value('VoicePanelMicButton');
const env0_17 = (require(4501) /* metro dependency 4501: createStyles */).createStyles({text: {'position': 'absolute',
'left': 0, 'right': 0, 'bottom': 4, 'textAlign': 'center', 'opacity': 0.5}});
object = {code: 'function VoicePanelMicButtonTsx1(){const{runOnJS,handlePTTEnd}=this.__closure;runOnJS(handlePTTEnd)();}'};
object = {code: 'function VoicePanelMicButtonTsx2(event,manager){const{State,runOnJS,handleDragStart}=this.__closure;if(event.state!==State.BEGAN)return;manager.activate();runOnJS(handleDragStart)();}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/buttons/VoicePanelMicButton.tsx');
exports.PTTButton = PTTButton;
exports.MicButton = MicButton;
}
function useMuteHandlers(a0) { // fn#118889, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15723:384, offset: 0x024f343b, size: 144 bytes, params: 2, frame: 17
const env0_0 = a0;
const env0_1 = env0_4.useRef(null);
return (require(566) /* metro dependency 566: flux */).useStateFromStoresObject([ChannelStore, AuthenticationStore,
VoiceStateStore, MediaEngineStore, PermissionStore, ImpersonateStore, GameConsoleStore], _fun118890, [a0]);
}
function PTTButton({props, wrapperSpecs}) { // fn#118891, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15723:1401, offset: 0x024f3614, size: 913 bytes, params: 2, frame: 28
const env0_3 = undefined;
let env0_4 = undefined;
const styles = useStyles();
const binding = env0_4;
const useContext = binding.useContext;
const channelId = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).channelId;
let [property, env0_0] = env0_3(env0_4.useState(false), 2);
const {mute, onPress} = useMuteHandlers(channelId);
const value6 = ((a0) => {
var env0_0 = a0;
return (require(566) /* metro dependency 566: flux */).useStateFromStoresObject([ChannelStore,
AuthenticationStore,
VoiceStateStore, MediaEngineStore, PermissionStore, ImpersonateStore], _fun118893, [a0]);
})(channelId);
const r4 = value6.deaf ? value6.onPress : mute ? onPress : undefined;
const value7 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(false);
const value8 = (importDefault(15447) /* metro dependency 15447: useControlsLock */)();
env0_4 = env0_4.useRef({'active': false, 'dragging': false});
const value9 = env0_4.useCallback(_fun118894, [value8, value7, r4]);
const value10 = env0_4.useCallback(_fun118895, [value8, value7]);
const value11 = env0_4.useCallback(_fun118896, [value10]);
const value13 = env0_4.useMemo(_fun118898, [env0_4.useCallback(_fun118897, [value9]), value10]);
env0_4.useEffect(function() {
return _fun118902;
}, [value10]);
const value14 = (require(15527) /* metro dependency 15527: VoicePanelStyles */).useVoicePanelButtonStyles(wrapperSpecs);
const jsxRuntimeEnv0_14Binding = jsxRuntimeEnv0_14;
const GestureDetector = (require(5321) /* metro dependency 5321 */).GestureDetector;
const VoicePanelAnimatedButtonWrapper = importDefault(15528) /* metro dependency 15528: VoicePanelAnimatedButtonWrapper */;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
let string = intl.string;
let Q8gkVL = (require(1244) /* metro dependency 1244: indexNative */).t.Q8gkVL;
const r13 = property ? value14.iconBgSelected : value14.iconBg;
const MicrophoneIcon = (require(10280) /* metro dependency 10280: MicrophoneIcon */).MicrophoneIcon;
const gestureDetector = <GestureDetector gesture={value13}><VoicePanelAnimatedButtonWrapper onPressIn={value9} onPressOut={value11} props={props} pressed={value7} accessibilityLabel={Reflect.apply(string,
intl,
[Q8gkVL])} style={r13}><MicrophoneIcon color={property ? value14.iconFillSelected.color : value14.iconFill.color} size="lg" /></VoicePanelAnimatedButtonWrapper></GestureDetector>;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const items2 = [styles.text];
items2[1] = value14.iconFill;
string = intl.string;
Q8gkVL = (require(1244) /* metro dependency 1244: indexNative */).t.Q8gkVL;
return (
<>
{gestureDetector}
<Text style={items2} variant="text-xxs/medium">
{Reflect.apply(string, intl, [Q8gkVL])}
</Text>
</>
);
}
function MicButton({props, wrapperSpecs}) { // fn#118903, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15723:3410, offset: 0x024f3dc5, size: 298 bytes, params: 2, frame: 23
const binding = env0_4;
const useContext = binding.useContext;
const {mute, onPress, dominantMuteState} = useMuteHandlers(Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).channelId);
const value3 = (require(15527) /* metro dependency 15527: VoicePanelStyles */).useVoicePanelButtonStyles(wrapperSpecs);
const value4 = env0_4.useMemo(_fun118904, [value3, mute, dominantMuteState]);
const VoicePanelAnimatedButtonWrapper = importDefault(15528) /* metro dependency 15528: VoicePanelAnimatedButtonWrapper */;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
return (
<VoicePanelAnimatedButtonWrapper
props={props}
onPress={onPress}
accessibilityLabel={mute ? Reflect.apply(string, intl, [t.YqAjXy]) : Reflect.apply(string, intl,
[t.w4m945])}
style={mute ? value3.iconBgVoiceMuted : value3.iconBg}
>
{value4}
</VoicePanelAnimatedButtonWrapper>
);
}
function _fun118890() { // fn#118890, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15723:491, offset: 0x024f34cb, size: 329 bytes, params: 1, frame: 22
var r2;
var r7;
var currentUser;
var binding;
var info;
const channel = ChannelStore.getChannel(env0_0);
const r3 = channel != null ? (require(6952) /* metro dependency 6952: useMuteStates */).getMuteStates({channel: channel,
authenticationStore: AuthenticationStore, voiceStateStore: VoiceStateStore, mediaEngineStore: MediaEngineStore,
permissionStore: PermissionStore, impersonateStore: ImpersonateStore}) : {'selfMute': false, 'suppress': false,
'mute': false};
let current = env0_1.current;
const value5 = undefined;
const value6 = (current == null ? value5 : current.selfMute) !== r3.selfMute;
if (value6) {
currentUser = UserStore.getCurrentUser();
r2 = currentUser != null;
r7 = currentUser;
} else {
r2 = value6;
r7 = value5;
}
r2 = r2 && r7.isStaff();
if (r2) {
binding = env1_16;
info = binding.info;
current = env0_1.current;
Reflect.apply(info, binding, ['Self mute changed', current == null ? value5 : current.selfMute, '>',
r3.selfMute]);
}
env0_1.current = r3;
const voiceActionUtilsModule = require(10834) /* metro dependency 10834: VoiceActionUtils */;
const createMuteHandler = voiceActionUtilsModule.createMuteHandler;
const getAwaitingRemoteSessionInfo = GameConsoleStore.getAwaitingRemoteSessionInfo;
return Reflect.apply(createMuteHandler, voiceActionUtilsModule, [r3, Reflect.apply(getAwaitingRemoteSessionInfo,
GameConsoleStore, []) != null]);
}
function useDeafHandlers(a0) { // fn#118892, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15723:1575, owner: PTTButton.useDeafHandlers, offset: 0x024f39a5, size: 116 bytes, params: 2, frame: 17
const env0_0 = a0;
return (require(566) /* metro dependency 566: flux */).useStateFromStoresObject([ChannelStore, AuthenticationStore,
VoiceStateStore, MediaEngineStore, PermissionStore, ImpersonateStore], _fun118893, [a0]);
}
function _fun118894() { // fn#118894, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15723:1932, offset: 0x024f3a9c, size: 182 bytes, params: 1, frame: 16
var value2;
var moduleValue;
var binding;
if (!env0_4.current.active) {
if (env0_1 != null) {
env0_1();
}
env0_4.current.active = true;
value2 = environment.__proto__;
moduleValue = require(4081) /* metro dependency 4081: HapticUtilsNative */;
moduleValue.triggerHapticFeedback((require(4081) /* metro dependency 4081: HapticUtilsNative */).HapticFeedbackTypes.IMPACT_MEDIUM);
(require(10750) /* metro dependency 10750: MediaEngineActionCreators */).setPushToTalkState(true);
binding = env0_3;
binding.lock();
binding = env0_2;
binding.set(true);
env0_0(true);
}
}
function _fun118895() { // fn#118895, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15723:2150, offset: 0x024f3b52, size: 130 bytes, params: 1, frame: 13
var value2;
var binding;
let current = env0_4.current;
if (current.active) {
current = env0_4.current;
current.active = false;
current = env0_4.current;
current.dragging = false;
value2 = environment.__proto__;
(require(10750) /* metro dependency 10750: MediaEngineActionCreators */).setPushToTalkState(false);
binding = env0_3;
binding.unlock();
binding = env0_2;
binding.set(false);
env0_0(false);
}
}
function _fun118896() { // fn#118896, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15723:2302, offset: 0x024f3bd4, size: 35 bytes, params: 1, frame: 9
if (!env0_4.current.dragging) {
env0_6();
}
}
function _fun118897() { // fn#118897, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15723:2355, offset: 0x024f3bf7, size: 52 bytes, params: 1, frame: 10
if (!env0_4.current.dragging) {
env0_4.current.dragging = true;
env0_5();
}
}
function _fun118898() { // fn#118898, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15723:2428, offset: 0x024f3c2b, size: 246 bytes, params: 1, frame: 20
const Gesture = (require(5321) /* metro dependency 5321 */).Gesture;
const value3 = Gesture.Pan().manualActivation(true);
const onTouchesMove = value3.onTouchesMove;
let closure = n_118899;
const object2 = {};
const State = (require(5321) /* metro dependency 5321 */).State;
object2.State = State;
const runOnJS = (require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS;
object2.runOnJS = runOnJS;
object2.handleDragStart = env0_7;
closure.__closure = object2;
closure.__workletHash = 13866422602014;
closure.__initData = env1_19;
const value5 = Reflect.apply(onTouchesMove, value3, [closure]);
const onFinalize = value5.onFinalize;
closure = t_118900;
closure.__closure = {runOnJS: runOnJS, handlePTTEnd: env0_6};
closure.__workletHash = 12941114426646;
closure.__initData = env1_18;
return Reflect.apply(onFinalize, value5, [closure]);
}
function _fun118901() { // fn#118901, offset: 0x024f3dba, size: 11 bytes, params: 1, frame: 1
return _fun118902;
}
function _fun118904() { // fn#118904, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15723:3607, offset: 0x024f3eef, size: 195 bytes, params: 1, frame: 18
var r0;
var VoicePanelRiveMicButton;
var muteBinding;
var binding;
const dominantMuteStateBinding = dominantMuteState;
const DominantMuteState = (require(10834) /* metro dependency 10834: VoiceActionUtils */).DominantMuteState;
const SERVER_MUTE = DominantMuteState.SERVER_MUTE;
if (dominantMuteStateBinding === SERVER_MUTE) {
const MicrophoneDenyIcon = (require(9250) /* metro dependency 9250: MicrophoneDenyIcon */).MicrophoneDenyIcon;
r0 = <MicrophoneDenyIcon color={env0_2.iconFillRed.color} />;
} else {
VoicePanelRiveMicButton = (require(10835) /* metro dependency 10835: VoicePanelRiveMicButton */).VoicePanelRiveMicButton;
muteBinding = mute;
binding = env0_2;
r0 = <VoicePanelRiveMicButton color={muteBinding ? binding.iconFillRed.color : binding.iconFill.color} muted={mute} />;
}
return r0;
}
function _fun118893() { // fn#118893, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15723:1659, offset: 0x024f3a19, size: 131 bytes, params: 1, frame: 19
const value = environment.__proto__.__proto__;
const channel = ChannelStore.getChannel(env0_0);
return (require(10834) /* metro dependency 10834: VoiceActionUtils */).createDeafHandler(channel != null ? (require(10845) /* metro dependency 10845: useDeafStates */).getDeafStates(channel,
VoiceStateStore, MediaEngineStore, AuthenticationStore) : {'selfDeaf': false, 'deaf': false});
}
function n_118899({state}, a1) { // fn#118899, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15723:2501, offset: 0x024f3d21, size: 105 bytes, params: 3, frame: 14
var runOnJS;
var value2;
let value = environment.__proto__.__proto__;
const State = (require(5321) /* metro dependency 5321 */).State;
const BEGAN = State.BEGAN;
if (state === BEGAN) {
a1.activate();
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
runOnJS = value.runOnJS;
value2 = environment.__proto__;
Reflect.apply(runOnJS, value, [env1_7])();
}
}
function t_118900() { // fn#118900, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15723:2727, offset: 0x024f3d8a, size: 48 bytes, params: 1, frame: 12
let value = environment.__proto__.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value.runOnJS(env1_6)();
}
@@ -0,0 +1,25 @@
/* Metro module 10835; source: modules/voice_panel/native/controls/buttons/VoicePanelRiveMicButton.tsx; dependencies: [31, 27, 33, 3868, 9252, 10280, 2] */
function _fun83090(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#83090, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11021:6, offset: 0x01f0cf44, size: 152 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_2 = (require(27) /* metro dependency 27 */).View;
const env0_3 = (require(33) /* metro dependency 33 */).jsx;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/buttons/VoicePanelRiveMicButton.tsx');
exports.VoicePanelRiveMicButton = VoicePanelRiveMicButton;
}
function VoicePanelRiveMicButton({color, muted}) { // fn#83091, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11021:264, offset: 0x01f0cfdc, size: 203 bytes, params: 2, frame: 21
const MicrophoneRive = (require(3868) /* metro dependency 3868: native */).MicrophoneRive;
return (
<View style={{'width': 24, 'height': 24, 'pointerEvents': 'none'}}>
<MicrophoneRive
dataBinding={{fill: color, on: !muted}}
defaultViewModelInstance={muted ? 'Off' : 'On'}
fallback={((Component) => <Component color={color} />)(muted ? (require(9252) /* metro dependency 9252: MicrophoneSlashIcon */).MicrophoneSlashIcon : (require(10280) /* metro dependency 10280: MicrophoneIcon */).MicrophoneIcon)}
/>
</View>
);
}
@@ -0,0 +1,82 @@
/* Metro module 15543; source: modules/voice_panel/native/controls/buttons/VoicePanelScreenshareButton.tsx; dependencies: [31, 27, 1379, 661, 33, 1581, 12323, 15544, 4501, 697, 11794, 15527, 566, 44, 10794, 683, 1357, 15528, 1244, 6821, 2] */
function _fun118969(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118969, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15740:6, offset: 0x024f7204, size: 388 bytes, params: 8, frame: 21
var MobilePhoneShareIcon;
var ScreenArrowIcon;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(27) /* metro dependency 27 */).Image;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const env0_6 = (require(661) /* metro dependency 661: Constants */).AnalyticEvents;
let value = require(33) /* metro dependency 33 */;
const env0_7 = value.jsx;
const env0_8 = value.jsxs;
value = require(1581) /* metro dependency 1581: MetaQuestUtilsAndroid */;
if (value.isMetaQuest()) {
ScreenArrowIcon = (require(12323) /* metro dependency 12323: ScreenArrowIcon */).ScreenArrowIcon;
} else {
MobilePhoneShareIcon = (require(15544) /* metro dependency 15544: MobilePhoneShareIcon */).MobilePhoneShareIcon;
}
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
const object = {'width': '100%', 'height': '100%'};
object.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
const env0_10 = Reflect.apply(createStyles, value, [{circle: object, iconContainer: {'position': 'absolute',
'justifyContent': 'center', 'alignItems': 'center', 'width': '100%', 'height': '100%'}, icon: {'width': 24,
'height': 24}}]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/buttons/VoicePanelScreenshareButton.tsx');
exports.default = ScreenshareButton_118970;
}
function ScreenshareButton_118970({props, wrapperSpecs}) { // fn#118970, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15740:609, offset: 0x024f7388, size: 662 bytes, params: 2, frame: 27
const binding = env0_3;
const useContext = binding.useContext;
const env0_0 = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).channelId;
const styles = useStyles();
const value3 = (require(15527) /* metro dependency 15527: VoicePanelStyles */).useVoicePanelButtonStyles(wrapperSpecs);
const channel = (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelStore], function() {
return ChannelStore.getChannel(channelId);
});
(importDefault(44) /* metro dependency 44 */)(channel != null, 'null channel in VoicePanelScreenshareButton');
const {isActive, isFeatureEnabled, onPress,
imgSource} = (importDefault(10794) /* metro dependency 10794: useScreenshareUtils */)(channel);
const value5 = binding.useCallback(_fun118972, [isActive, isFeatureEnabled, onPress]);
let color = isFeatureEnabled ? value3.iconFill.color : value3.iconFillMuted.color;
const backgroundColor = isActive ? value3.iconBgSelected.backgroundColor : value3.iconBg.backgroundColor;
color = isActive ? value3.iconFillSelected.color : color;
const value6 = (importDefault(1357) /* metro dependency 1357: MobileVisualRefreshExperiment */)('ScreenshareButton');
const VoicePanelAnimatedButtonWrapper = importDefault(15528) /* metro dependency 15528: VoicePanelAnimatedButtonWrapper */;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
return (
<VoicePanelAnimatedButtonWrapper
onPress={value5}
disabled={!isFeatureEnabled}
props={props}
accessibilityLabel={isActive ? Reflect.apply(string, intl, [t.CpkXwZ]) : Reflect.apply(string, intl,
[t.fjBNo1])}
style={isActive ? value3.iconBgSelected : undefined}
>
{((Component) => <Component style={[styles.circle,
{backgroundColor: backgroundColor}]} />)(importDefault(6821) /* metro dependency 6821: NativeView */)}
{((Component) => <Component style={styles.iconContainer}>{value6 ? ((Component) => <Component color={color} />)(env0_9) : <Image source={imgSource} style={[styles.icon,
{tintColor: color}]} />}</Component>)(importDefault(6821) /* metro dependency 6821: NativeView */)}
</VoicePanelAnimatedButtonWrapper>
);
}
function _fun118972() { // fn#118972, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15740:963, offset: 0x024f761e, size: 89 bytes, params: 1, frame: 16
var value2;
var defaultImport;
if (isFeatureEnabled) {
value2 = environment.__proto__;
defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
defaultImport.track(AnalyticEvents.VOICE_PANEL_SCREENSHARE_BUTTON_TAPPED, {source: 'connected button',
was_active: isActive});
onPress();
}
}
@@ -0,0 +1,55 @@
/* Metro module 15541; source: modules/voice_panel/native/controls/buttons/VoicePanelSoundboardButton.tsx; dependencies: [31, 33, 4501, 697, 11794, 15527, 15542, 15528, 1244, 6821, 10284, 2] */
function _fun118963(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118963, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15738:6, offset: 0x024f6d3e, size: 243 bytes, params: 8, frame: 21
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(33) /* metro dependency 33 */;
const env0_4 = value.jsx;
const env0_5 = value.jsxs;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
const object = {'width': '100%', 'height': '100%'};
object.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
const env0_6 = Reflect.apply(createStyles, value, [{circle: object, iconContainer: {'position': 'absolute',
'justifyContent': 'center', 'alignItems': 'center', 'width': '100%', 'height': '100%'}}]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/buttons/VoicePanelSoundboardButton.tsx');
exports.default = SoundboardButton;
}
function SoundboardButton({props, wrapperSpecs}) { // fn#118964, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15738:454, offset: 0x024f6e31, size: 448 bytes, params: 2, frame: 26
var r0;
var VoicePanelAnimatedButtonWrapper;
var object2;
var intl;
var items2;
var value;
const binding = env0_3;
const useContext = binding.useContext;
const channelId = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).channelId;
const styles = useStyles();
const value2 = (require(15527) /* metro dependency 15527: VoicePanelStyles */).useVoicePanelButtonStyles(wrapperSpecs);
const backgroundColor = value2.iconBg.backgroundColor;
const defaultImport = importDefault(15542) /* metro dependency 15542: useSoundboardConfig */;
const SoundboardButtonLocation = (require(15542) /* metro dependency 15542: useSoundboardConfig */).SoundboardButtonLocation;
const VOICE_PANEL_CONTROLS = SoundboardButtonLocation.VOICE_PANEL_CONTROLS;
const {handlePress, disabled, visible} = defaultImport(channelId, VOICE_PANEL_CONTROLS);
if (visible) {
VoicePanelAnimatedButtonWrapper = importDefault(15528) /* metro dependency 15528: VoicePanelAnimatedButtonWrapper */;
object2 = {onPress: handlePress, disabled: disabled, props: props};
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.accessibilityLabel = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['6EJvHt']);
value = importDefault(6821) /* metro dependency 6821: NativeView */;
value = ((Component) => <Component style={[styles.circle, {backgroundColor: backgroundColor}]} />)(value);
items2 = [value];
value = importDefault(6821) /* metro dependency 6821: NativeView */;
items2[1] = ((Component) => <Component style={styles.iconContainer}>{((SoundboardIcon) => <SoundboardIcon color={disabled ? (importDefault(697) /* metro dependency 697: native */).colors.ICON_MUTED : value2.iconFill.color} />)((require(10284) /* metro dependency 10284: SoundboardIcon */).SoundboardIcon)}</Component>)(value);
value = <VoicePanelAnimatedButtonWrapper {...object2}>{items2}</VoicePanelAnimatedButtonWrapper>;
r0 = value;
} else {
r0 = null;
}
return r0;
}
@@ -0,0 +1,45 @@
/* Metro module 15527; source: modules/voice_panel/native/controls/buttons/VoicePanelStyles.tsx; dependencies: [4501, 697, 8621, 1357, 2] */
function _fun118905(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118905, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15724:6, offset: 0x024f3fb2, size: 135 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = (require(4501) /* metro dependency 4501: createStyles */).createStyles(_fun118906);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/buttons/VoicePanelStyles.tsx');
exports.useVoicePanelButtonStyles = function(a0) {
return useStyles(require(dependencyMap[2]).useDerivedStateFromSharedValue(a0, _fun118908),
importDefault(dependencyMap[3])('VoicePanelStyles'));
};
}
function _fun118906(a0, a1) { // fn#118906, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15724:120, offset: 0x024f4039, size: 384 bytes, params: 3, frame: 18
const object2 = {};
const BACKGROUND_MOD_STRONG = a1 ? 'transparent' : (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_MOD_STRONG;
object2.iconBg = {backgroundColor: BACKGROUND_MOD_STRONG};
const WHITE = (importDefault(697) /* metro dependency 697: native */).colors.WHITE;
object2.iconBgSelected = {backgroundColor: WHITE};
const object3 = {borderWidth: 1};
let BACKGROUND_VOICE_MUTED = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_VOICE_MUTED;
object3.borderColor = BACKGROUND_VOICE_MUTED;
BACKGROUND_VOICE_MUTED = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_VOICE_MUTED;
object3.backgroundColor = BACKGROUND_VOICE_MUTED;
object2.iconBgVoiceMuted = object3;
let colors = (importDefault(697) /* metro dependency 697: native */).colors;
object2.iconFill = {color: a0 ? colors.INTERACTIVE_TEXT_DEFAULT : a1 ? colors.ICON_STRONG : colors.WHITE};
const ICON_MUTED = (importDefault(697) /* metro dependency 697: native */).colors.ICON_MUTED;
object2.iconFillMuted = {color: ICON_MUTED};
const RED_400 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.RED_400;
object2.iconFillRed = {color: RED_400};
const BLACK = (importDefault(697) /* metro dependency 697: native */).colors.BLACK;
object2.iconFillSelected = {color: BLACK};
colors = (importDefault(697) /* metro dependency 697: native */).colors;
object2.iconBadgeIndicator = {backgroundColor: a0 ? colors.CONTROL_BRAND_FOREGROUND : colors.WHITE};
return object2;
}
function useVoicePanelButtonStyles(a0) { // fn#118907, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15724:884, offset: 0x024f41b9, size: 88 bytes, params: 2, frame: 16
return useStyles((require(8621) /* metro dependency 8621: useStateFromSharedValue */).useDerivedStateFromSharedValue(a0,
function(a0) {
return a0.drawerMode;
}), (importDefault(1357) /* metro dependency 1357: MobileVisualRefreshExperiment */)('VoicePanelStyles'));
}
@@ -0,0 +1,109 @@
/* Metro module 15539; source: modules/voice_panel/native/controls/buttons/VoicePanelVideoButton.tsx; dependencies: [31, 27, 7730, 1379, 1867, 4259, 3784, 33, 11794, 15527, 566, 7118, 4497, 15540, 9228, 10661, 15528, 1244, 3868, 9759, 10286, 2] */
function _fun118952(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118952, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15736:6, offset: 0x024f667c, size: 254 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(27) /* metro dependency 27 */).View;
const channelCallLifecycleStore = importDefault(7730) /* metro dependency 7730: ChannelCallLifecycleStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const guildStore = importDefault(1867) /* metro dependency 1867: GuildStore */;
const mediaEngineStore = importDefault(4259) /* metro dependency 4259: MediaEngineStore */;
const permissionStore = importDefault(3784) /* metro dependency 3784: PermissionStore */;
const env0_10 = (require(33) /* metro dependency 33 */).jsx;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/buttons/VoicePanelVideoButton.tsx');
exports.default = VideoButton_118954;
}
function VideoButtonRive({isVideoEnabled, color}) { // fn#118953, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15736:185, offset: 0x024f677a, size: 204 bytes, params: 2, frame: 22
const CameraRive = (require(3868) /* metro dependency 3868: native */).CameraRive;
return (
<View style={{'width': 24, 'height': 24, 'pointerEvents': 'none'}}>
<CameraRive
dataBinding={{fill: color, on: isVideoEnabled}}
defaultViewModelInstance={isVideoEnabled ? 'CamOn' : 'CamOff'}
fallback={((Component) => <Component color={color} />)(isVideoEnabled ? (require(9759) /* metro dependency 9759: VideoIcon */).VideoIcon : (require(10286) /* metro dependency 10286: VideoSlashIcon */).VideoSlashIcon)}
/>
</View>
);
}
function VideoButton_118954({props, wrapperSpecs}) { // fn#118954, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15736:585, offset: 0x024f6846, size: 433 bytes, params: 2, frame: 24
var object2;
let binding = env0_3;
const useContext = binding.useContext;
const channelId = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).channelId;
const value2 = (require(15527) /* metro dependency 15527: VoicePanelStyles */).useVoicePanelButtonStyles(wrapperSpecs);
const value3 = (require(566) /* metro dependency 566: flux */).useStateFromStores([GuildStore, PermissionStore,
ChannelStore], _fun118955);
const value4 = (require(566) /* metro dependency 566: flux */).useStateFromStores([MediaEngineStore], function() {
return MediaEngineStore.isVideoEnabled();
});
var env0_3 = value4;
const value5 = binding.useCallback(_fun118957, [channelId, value4, value3]);
const VoicePanelAnimatedButtonWrapper = importDefault(15528) /* metro dependency 15528: VoicePanelAnimatedButtonWrapper */;
object2 = {onPress: value5, props: props};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
object2.accessibilityLabel = value4 ? Reflect.apply(string, intl, [t.EnX2Jl]) : Reflect.apply(string, intl,
[t['v8K+8W']]);
object2.style = value4 ? value2.iconBgSelected : value2.iconBg;
binding = env0_3;
const useMemo = binding.useMemo;
return (
<VoicePanelAnimatedButtonWrapper {...object2}>
{Reflect.apply(useMemo, binding, [_fun118960, [value2.iconFill.color, value2.iconFillSelected.color,
value4]])}
</VoicePanelAnimatedButtonWrapper>
);
}
function _fun118955() { // fn#118955, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15736:748, offset: 0x024f69f7, size: 99 bytes, params: 1, frame: 19
const value = environment.__proto__;
const channel = ChannelStore.getChannel(channelId);
return channel != null && (channel.isPrivate() || (require(7118) /* metro dependency 7118: StreamPermissionUtils */).canStreamInChannel(channel,
GuildStore, PermissionStore, false));
}
function _fun118957() { // fn#118957, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15736:926, offset: 0x024f6a6d, size: 209 bytes, params: 1, frame: 20
var closure;
var value;
if (env0_2) {
if (ChannelStore.getChannel(channelId) != null) {
closure = animateToggleVideo;
if (env0_3) {
closure();
} else if (ChannelCallLifecycleStore.isReactingToThermalState()) {
(require(10661) /* metro dependency 10661: openIgnoreThermalStateAlert */).openIgnoreThermalStateAlert(function() {
return animateToggleVideo();
});
} else {
closure();
}
}
} else {
value = require(4497) /* metro dependency 4497: useAlertStoreNative */;
value.openAlert((require(15540) /* metro dependency 15540: VoicePanelNoVideoPermissionsAlert */).VOICE_PANEL_NO_VIDEO_PERMS_KEY,
((Component) => <Component />)(importDefault(15540) /* metro dependency 15540: VoicePanelNoVideoPermissionsAlert */));
}
}
function _fun118960() { // fn#118960, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15736:1436, offset: 0x024f6b6b, size: 70 bytes, params: 1, frame: 15
const binding = env0_3;
const binding2 = env0_1;
return (
<VideoButtonRive
isVideoEnabled={binding}
color={binding ? binding2.iconFillSelected.color : binding2.iconFill.color}
/>
);
}
function animateToggleVideo() { // fn#118958, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15736:994, offset: 0x024f6b3e, size: 45 bytes, params: 1, frame: 12
const value = environment.__proto__.__proto__;
(require(9228) /* metro dependency 9228: CallsUtils */).handleToggleVideo(env0_0);
}
@@ -0,0 +1,18 @@
/* Metro module 15515; source: modules/voice_panel/native/controls/trackVoicePanelTabOpened.tsx; dependencies: [4605, 661, 683, 2] */
function _fun118827(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118827, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15712:6, offset: 0x024f0979, size: 212 bytes, params: 8, frame: 19
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const readStateStore = importDefault(4605) /* metro dependency 4605: ReadStateStore */;
const env0_3 = (require(661) /* metro dependency 661: Constants */).AnalyticEvents;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/trackVoicePanelTabOpened.tsx');
exports.default = function(a0, a1, a2) {
var r5;
r5 = ReadStateStore.hasUnread(a0) || ReadStateStore.getMentionCount(a0) > 0;
var defaultImport = importDefault(dependencyMap[2]);
var VOICE_PANEL_TAB_OPENED = AnalyticEvents.VOICE_PANEL_TAB_OPENED;
defaultImport.track(VOICE_PANEL_TAB_OPENED, {tab: a1, source: a2, is_chat_badged: r5});
};
exports.VoicePanelTabAnalyticsSources = {STORE: 'store', GESTURE: 'gesture', PREJOIN_BUTTON: 'prejoin button',
CONNECTED_BUTTON: 'connected button', VOICE_CONTROLS: 'voice controls', HEADER_BUTTON: 'header button'};
}
@@ -0,0 +1,336 @@
/* Metro module 15525; source: modules/voice_panel/native/controls/useControlsButtons.tsx; dependencies: [31, 4259, 11793, 661, 33, 15526, 15529, 15535, 15537, 15539, 15541, 15543, 15546, 15453, 1581, 11794, 15390, 566, 4017, 11801, 8621, 2] */
function _fun118869(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118869, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15722:6, offset: 0x024f27dc, size: 376 bytes, params: 8, frame: 19
const env0_0 = require;
const _arrayLikeToArray_118872 = 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 mediaEngineStore = importDefault(4259) /* metro dependency 4259: MediaEngineStore */;
const voicePanelControlsConstantsModule = require(11793) /* metro dependency 11793: VoicePanelControlsConstants */;
const env0_5 = voicePanelControlsConstantsModule.CONTROLS_BUTTON_SIZE_LARGE;
const env0_6 = voicePanelControlsConstantsModule.CONTROLS_BUTTON_SIZE_NORMAL;
const env0_7 = (require(661) /* metro dependency 661: Constants */).InputModes;
const env0_8 = (require(33) /* metro dependency 33 */).jsx;
object = {mic: mic, ptt: ptt, micConnected: micConnected, connect: connect_118876, chat: chat,
disconnectCancel: disconnectCancel, video: video, soundboard: soundboard, screenshare: screenshare,
drawerToggle: drawerToggle};
object = {code: 'function useControlsButtonsTsx1(){const{getControlsDefaultWidth,windowDimensions,safeArea}=this.__closure;return getControlsDefaultWidth(windowDimensions.get().width,safeArea.get().left,safeArea.get().right);}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/useControlsButtons.tsx');
exports.default = useControlsButtons;
}
function _createForOfIteratorHelperLoose_118870(a0, a1) { // fn#118870, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15722:232, offset: 0x024f2954, 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 _fun118871;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_118872(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_118872(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_118872(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun118871;
}
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 mic(a0, a1) { // fn#118873, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15722:1153, offset: 0x024f2ac8, size: 59 bytes, params: 3, frame: 15
const MicButton = (require(15526) /* metro dependency 15526: VoicePanelMicButton */).MicButton;
return <MicButton {...a1} key={a0} />;
}
function ptt(a0, a1) { // fn#118874, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15722:1195, offset: 0x024f2b03, size: 59 bytes, params: 3, frame: 15
const PTTButton = (require(15526) /* metro dependency 15526: VoicePanelMicButton */).PTTButton;
return <PTTButton {...a1} key={a0} />;
}
function connect_118876(a0, a1) { // fn#118876, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15722:1292, offset: 0x024f2b3e, size: 53 bytes, params: 3, frame: 15
return ((Component) => <Component {...a1} key={a0} />)(importDefault(15529) /* metro dependency 15529: VoicePanelConnectButton */);
}
function chat(a0, a1) { // fn#118877, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15722:1324, offset: 0x024f2b73, size: 53 bytes, params: 3, frame: 15
return ((Component) => <Component {...a1} key={a0} />)(importDefault(15535) /* metro dependency 15535: VoicePanelChatButton */);
}
function disconnectCancel(a0, a1) { // fn#118878, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15722:1368, offset: 0x024f2ba8, size: 53 bytes, params: 3, frame: 15
return ((Component) => <Component {...a1} key={a0} />)(importDefault(15537) /* metro dependency 15537: VoicePanelDisconnectCancelButton */);
}
function video(a0, a1) { // fn#118879, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15722:1401, offset: 0x024f2bdd, size: 53 bytes, params: 3, frame: 15
return ((Component) => <Component {...a1} key={a0} />)(importDefault(15539) /* metro dependency 15539: VoicePanelVideoButton */);
}
function soundboard(a0, a1) { // fn#118880, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15722:1439, offset: 0x024f2c12, size: 53 bytes, params: 3, frame: 15
return ((Component) => <Component {...a1} key={a0} />)(importDefault(15541) /* metro dependency 15541: VoicePanelSoundboardButton */);
}
function screenshare(a0, a1) { // fn#118881, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15722:1479, offset: 0x024f2c47, size: 53 bytes, params: 3, frame: 15
return ((Component) => <Component {...a1} key={a0} />)(importDefault(15543) /* metro dependency 15543: VoicePanelScreenshareButton */);
}
function drawerToggle(a0, a1) { // fn#118882, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15722:1520, offset: 0x024f2c7c, size: 53 bytes, params: 3, frame: 15
return ((Component) => <Component {...a1} key={a0} />)(importDefault(15546) /* metro dependency 15546: VoicePanelDrawerToggleButton */);
}
function useControlsButtons() { // fn#118883, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15722:1879, offset: 0x024f2cb1, size: 341 bytes, params: 1, frame: 26
const binding = env0_3;
const {channelId, windowDimensions,
safeArea} = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const value3 = (importDefault(15390) /* metro dependency 15390: useIsConnectedToVoiceChannel */)(channelId);
const defaultImport = importDefault(15453) /* metro dependency 15453: MobileGoLiveEntrypointExperiment */;
const useConfig = defaultImport.useConfig;
const treatment = Reflect.apply(useConfig, defaultImport, [{location: 'VoicePanelControlButtons'}]).treatment;
const value4 = (require(566) /* metro dependency 566: flux */).useStateFromStores([MediaEngineStore], function() {
return MediaEngineStore.getMode() === InputModes.PUSH_TO_TALK;
});
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useDerivedValue = reanimatedRexportModule.useDerivedValue;
const closure = useControlsButtonsN;
const getControlsDefaultWidth = (require(11801) /* metro dependency 11801: VoicePanelControlsUtils */).getControlsDefaultWidth;
closure.__closure = {getControlsDefaultWidth: getControlsDefaultWidth, windowDimensions: windowDimensions,
safeArea: safeArea};
closure.__workletHash = 16456936876254;
closure.__initData = env0_10;
let value = Reflect.apply(useDerivedValue, reanimatedRexportModule, [closure]);
value = (importDefault(8621) /* metro dependency 8621: useStateFromSharedValue */)(value);
return binding.useMemo(_fun118886, [value3, value4, value, treatment]);
}
function useControlsButtonsN() { // fn#118885, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15722:2175, owner: useControlsButtons.n, offset: 0x024f2e27, size: 93 bytes, params: 1, frame: 16
let value = environment.__proto__;
value = require(11801) /* metro dependency 11801: VoicePanelControlsUtils */;
const getControlsDefaultWidth = value.getControlsDefaultWidth;
const windowDimensionsBinding = windowDimensions;
let get = windowDimensionsBinding.get;
const width = Reflect.apply(get, windowDimensionsBinding, []).width;
const safeAreaBinding = safeArea;
get = safeAreaBinding.get;
const left = Reflect.apply(get, safeAreaBinding, []).left;
get = safeAreaBinding.get;
return Reflect.apply(getControlsDefaultWidth, value, [width, left, Reflect.apply(get, safeAreaBinding, []).right]);
}
function _fun118886() { // fn#118886, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15722:2437, offset: 0x024f2e84, size: 875 bytes, params: 1, frame: 25
var environment;
var r8;
var r2;
var r9;
var r1;
var value2;
var value3;
const MobileGoLiveEntrypointTreatment = (require(15453) /* metro dependency 15453: MobileGoLiveEntrypointExperiment */).MobileGoLiveEntrypointTreatment;
var value7;
var length;
var value9;
var value14;
var width;
var value15;
var value16;
var value17;
var value18;
var value19;
var value20;
var value21;
var value22;
var value23;
const env0_0 = false;
const env0_1 = 0;
let binding = env0_2;
const binding2 = env0_4;
const treatmentBinding = treatment;
const items2 = [];
const push = items2.push;
if (binding) {
value3 = environment.__proto__;
Reflect.apply(push, items2, [{'type': 'icon-normal', 'key': 'connected-video', render: env1_9.video}]);
if (!binding2) {
items2.push({'type': 'icon-normal', 'key': 'connected-mic', render: env1_9.micConnected});
}
if (treatmentBinding === MobileGoLiveEntrypointTreatment.SCREENSHARE_REPLACES_CHAT) {
items2.push({'type': 'icon-normal', 'key': 'connected-screenshare', render: env1_9.screenshare});
} else {
items2.push({'type': 'icon-normal', 'key': 'connected-chat', render: env1_9.chat});
}
if (binding2) {
items2.push({'type': 'icon-large', 'key': 'connected-ptt', render: env1_9.ptt});
}
if (treatmentBinding === MobileGoLiveEntrypointTreatment.SCREENSHARE_REPLACES_SOUNDBOARD) {
items2.push({'type': 'icon-normal', 'key': 'connected-screenshare', render: env1_9.screenshare});
} else {
items2.push({'type': 'icon-normal', 'key': 'connected-soundboard', render: env1_9.soundboard});
}
items2.push({'type': 'icon-normal', 'key': 'connected-disconnect', render: env1_9.disconnectCancel});
} else {
value2 = environment.__proto__;
binding = env1_9;
Reflect.apply(push, items2, [{'type': 'icon-normal', 'key': 'disconnected-mute', render: binding.mic}]);
items2.push({'type': 'label', 'key': 'disconnected-connect', render: binding.connect});
items2.push({'type': 'icon-normal', 'key': 'disconnected-chat', render: binding.chat});
}
const metaQuestUtilsAndroidModule = require(1581) /* metro dependency 1581: MetaQuestUtilsAndroid */;
if (metaQuestUtilsAndroidModule.isMetaQuest()) {
items2.push({'type': 'icon-normal', 'key': 'drawer-toggle', render: env1_9.drawerToggle});
}
const value5 = items2.map(_fun118887);
const value6 = 16;
if (env0_0) {
r8 = value6;
} else {
binding = env0_5;
value7 = binding - env0_1 * CONTROLS_BUTTON_SIZE_LARGE;
length = value5.length;
value9 = (length - env0_1) * CONTROLS_BUTTON_SIZE_NORMAL;
length = value5.length;
r8 = (value7 - value9 - 32) / (length - 1);
}
const value12 = _createForOfIteratorHelperLoose_118870(value5);
const value13 = value12();
let done = value13.done;
if (!done) {
r2 = value13;
r9 = value6;
while (true) {
value14 = r2.value;
width = value14.width;
if (width !== -1) {
r1 = width;
} else {
length = value5.length;
value15 = length - 1;
value16 = value15 * CONTROLS_BUTTON_SIZE_NORMAL;
length = value5.length;
value17 = length - 1;
binding = env0_5;
value18 = 32 + value16;
value19 = binding - (value18 + value17 * r8);
value14.width = value19;
r1 = value19;
}
value20 = env0_5 / 2;
value21 = r1 / 2;
value14.x = r9 - value20 + value21;
value22 = r9 + (r1 + r8);
value23 = value12();
done = value23.done;
if (done) {
break;
}
r2 = value23;
r9 = value22;
continue;
}
}
return value5;
}
function _fun118887(a0) { // fn#118887, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15722:3555, offset: 0x024f31ef, size: 139 bytes, params: 2, frame: 16
var r6;
var r1;
var binding;
if (a0.type !== 'label') {
}
const value = environment.__proto__.__proto__;
if (a0.type !== 'icon-large') {
r1 = CONTROLS_BUTTON_SIZE_NORMAL;
} else {
binding = env0_1;
env0_1 = binding + 1;
r1 = CONTROLS_BUTTON_SIZE_LARGE;
r6 = binding;
}
const object2 = {};
copyDataProperties(object2, a0, r6);
object2['height'] = r1;
object2['width'] = a0.type === 'label' ? -1 : r1;
object2['x'] = 0;
object2['y'] = 0;
return object2;
}
@@ -0,0 +1,30 @@
/* Metro module 15447; source: modules/voice_panel/native/controls/useControlsLock.tsx; dependencies: [31, 11794, 2] */
function _fun118235(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118235, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15644:6, offset: 0x024d275f, size: 117 bytes, params: 8, frame: 17
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importAll(31) /* metro dependency 31 */;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/useControlsLock.tsx');
exports.default = useControlsLock;
}
function useControlsLock(a0) { // fn#118236, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15644:205, offset: 0x024d27d4, size: 115 bytes, params: 2, frame: 15
const env0_0 = a0;
const binding = env0_2;
const useContext = binding.useContext;
const env0_1 = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).generateStateLocker;
const property = binding.useState(_fun118237)[0];
binding.useLayoutEffect(function() {
return _fun118239;
}, [property]);
return property;
}
function _fun118238() { // fn#118238, offset: 0x024d2847, size: 11 bytes, params: 1, frame: 1
return _fun118239;
}
function _fun118239() { // fn#118239, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15644:339, offset: 0x024d2852, size: 19 bytes, params: 1, frame: 9
return env1_2.unlock();
}
@@ -0,0 +1,59 @@
/* Metro module 15514; source: modules/voice_panel/native/controls/useDrawerToggle.tsx; dependencies: [31, 11793, 11794, 4017, 8621, 15515, 1244, 2] */
function _fun118823(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118823, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15711:6, offset: 0x024f06df, size: 159 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(11793) /* metro dependency 11793: VoicePanelControlsConstants */).VoicePanelControlsModes;
object = {code: 'function useDrawerToggleTsx1(){const{controlsSpecs,VoicePanelControlsModes}=this.__closure;return controlsSpecs.get().mode===VoicePanelControlsModes.DRAWER;}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/useDrawerToggle.tsx');
exports.default = useDrawerToggle;
}
function useDrawerToggle(a0) { // fn#118824, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15711:408, offset: 0x024f077e, size: 331 bytes, params: 2, frame: 24
var object2;
const env0_0 = a0;
const binding = env0_3;
const {controlsSpecs, connected,
dismissPanel} = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useDerivedValue = reanimatedRexportModule.useDerivedValue;
const closure = function() {
return controlsSpecs.get().mode === VoicePanelControlsModes.DRAWER;
};
closure.__closure = {controlsSpecs: controlsSpecs, VoicePanelControlsModes: VoicePanelControlsModes};
closure.__workletHash = 900483810235;
closure.__initData = env0_5;
const value4 = (importDefault(8621) /* metro dependency 8621: useStateFromSharedValue */)(Reflect.apply(useDerivedValue,
reanimatedRexportModule, [closure]));
const value5 = binding.useCallback(_fun118826, [a0, dismissPanel, connected, controlsSpecs]);
const value6 = (importDefault(8621) /* metro dependency 8621: useStateFromSharedValue */)(connected);
object2 = {isDrawerOpen: value4, handlePress: value5};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
object2.accessibilityLabel = value4 ? Reflect.apply(string, intl, [t['awDmr/']]) : Reflect.apply(string, intl,
[t.OXW7dL]);
object2.ariaHidden = !value6;
return object2;
}
function _fun118826() { // fn#118826, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15711:706, offset: 0x024f08f1, size: 136 bytes, params: 1, frame: 15
var binding;
var VoicePanelTabAnalyticsSources;
var value;
const controlsSpecsBinding = controlsSpecs;
const get = controlsSpecsBinding.get;
const mode = Reflect.apply(get, controlsSpecsBinding, []).mode;
const DRAWER = VoicePanelControlsModes.DRAWER;
if (mode === DRAWER) {
dismissPanel();
} else {
binding = env0_0;
value = connected.get();
VoicePanelTabAnalyticsSources = (require(15515) /* metro dependency 15515: trackVoicePanelTabOpened */).VoicePanelTabAnalyticsSources;
binding({tab: 'settings',
source: value ? VoicePanelTabAnalyticsSources.CONNECTED_BUTTON : VoicePanelTabAnalyticsSources.PREJOIN_BUTTON});
}
}
@@ -0,0 +1,26 @@
/* Metro module 15516; source: modules/voice_panel/native/controls/utils/VoicePanelControlUtils.tsx; dependencies: [11624, 2] */
function _fun118829(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118829, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15713:6, offset: 0x024f0abf, size: 119 bytes, params: 8, frame: 17
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
object = {code: 'function getDrawerSpec_VoicePanelControlUtilsTsx1(height,top){const{roundToNearestPixel}=this.__closure;const maxHeight=height-top;return{minHeight:roundToNearestPixel(maxHeight*0.65),maxHeight:maxHeight};}'};
const value = _fun118830();
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/utils/VoicePanelControlUtils.tsx');
exports.getDrawerSpec = value;
}
function _fun118830() { // fn#118830, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15713:316, offset: 0x024f0b36, size: 74 bytes, params: 1, frame: 14
const closure = function(a0, a1) {
var value = a0 - a1;
var object = {};
object.minHeight = importDefault(dependencyMap[0])(0.65 * value);
object.maxHeight = value;
return object;
};
const object2 = {};
object2.roundToNearestPixel = importDefault(11624) /* metro dependency 11624: roundToNearestPixel */;
closure.__closure = object2;
closure.__workletHash = 3647675988513;
closure.__initData = env0_2;
return closure;
}
@@ -0,0 +1,300 @@
/* Metro module 15410; source: modules/voice_panel/native/controls/utils/VoicePanelFloatingCTAUtils.tsx; dependencies: [57, 31, 27, 4606, 15411, 4117, 1379, 1385, 33, 4048, 11794, 15390, 9127, 632, 9077, 9039, 9035, 4080, 9052, 15412, 9219, 7975, 9133, 1244, 5312, 15413, 10859, 15414, 7014, 8621, 3968, 7684, 1365, 15415, 10284, 7212, 2] */
function _fun117870(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#117870, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:6, offset: 0x024c3af9, size: 381 bytes, params: 8, frame: 22
const env0_0 = require;
const closure = useFloatingCTAProps;
const closure2 = getBadConnectionCTAProps;
const closure3 = getDismissableCTAProps;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
const env0_5 = (require(27) /* metro dependency 27 */).Pressable;
const channelRTCStore = importDefault(4606) /* metro dependency 4606: ChannelRTCStore */;
const eventBannerStore = importDefault(15411) /* metro dependency 15411: EventBannerStore */;
const env0_8 = (require(4117) /* metro dependency 4117: GuildScheduledEventStore */).isGuildScheduledEventActive;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const env0_10 = (require(1385) /* metro dependency 1385: GuildScheduledEventsConstants */).GuildScheduledEventEntityTypes;
const env0_11 = (require(33) /* metro dependency 33 */).jsx;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/utils/VoicePanelFloatingCTAUtils.tsx');
exports.FLOATING_CTA_HIDE_TIMEOUT = 5000;
exports.OverrideFloatingCTA = {BAD_CONNECTION: 'BAD_CONNECTION'};
exports.useShouldShowFloatingCTA = useShouldShowFloatingCTA;
exports.useFloatingCTAProps = closure;
exports.getBadConnectionCTAProps = closure2;
exports.getDismissableCTAProps = closure3;
}
function useFloatingCTAProps(a0) { // fn#117871, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:321, offset: 0x024c3c76, size: 122 bytes, params: 2, frame: 16
const binding = env0_4;
const useContext = binding.useContext;
let value = (importDefault(8621) /* metro dependency 8621: useStateFromSharedValue */)(Reflect.apply(useContext,
binding, [importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).showFloatingCTA);
value = useOverrideFloatingCTAProps(value);
return value ?? useGuildEventControlsProps(a0) ?? useCallInviteProps(a0);
}
function getBadConnectionCTAProps(a0) { // fn#117882, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:2391, offset: 0x024c437e, size: 348 bytes, params: 2, frame: 21
const env0_0 = a0;
const object2 = {};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.uv1tVh);
object2.subLabel = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['gQ14+g']);
const RowButton = (require(7975) /* metro dependency 7975: RowButtonNative */).RowButton;
const Icon = RowButton.Icon;
const CircleErrorIcon = (require(7684) /* metro dependency 7684: CircleErrorIcon */).CircleErrorIcon;
object2.icon = <Icon IconComponent={CircleErrorIcon} variant="translucent" />;
object2.onPress = onPress_117883;
const pressableProps = {'accessibilityRole': 'button', 'accessibilityLabel': null, 'hitSlop': 4,
accessibilityLabel: intl.string((require(1244) /* metro dependency 1244: indexNative */).t.cpT0Cq),
onPress: onPress_117884};
const XSmallIcon = (require(5312) /* metro dependency 5312: XSmallIcon */).XSmallIcon;
object2.trailing = <Pressable {...pressableProps}><XSmallIcon color="interactive-icon-default" /></Pressable>;
return object2;
}
function handleSoundboardMobileFloatingCtaClose() { // fn#117885, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:3008, offset: 0x024c454b, size: 62 bytes, params: 1, frame: 14
const value = require(3968) /* metro dependency 3968: DismissibleContentUnsafeUtils */;
const UNSAFE_markDismissibleContentAsDismissed = value.UNSAFE_markDismissibleContentAsDismissed;
const DismissibleContent = (require(1365) /* metro dependency 1365: dismissible_content */).DismissibleContent;
const SOUNDBOARD_MOBILE_FLOATING_CTA = DismissibleContent.SOUNDBOARD_MOBILE_FLOATING_CTA;
Reflect.apply(UNSAFE_markDismissibleContentAsDismissed, value, [SOUNDBOARD_MOBILE_FLOATING_CTA]);
}
function getDismissableCTAProps({dismissableContent, channel}) { // fn#117886, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:3420, offset: 0x024c4589, size: 310 bytes, params: 2, frame: 19
var object2;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const DismissibleContent = (require(1365) /* metro dependency 1365: dismissible_content */).DismissibleContent;
const VOICE_PANEL_BAD_CONNECTION_CTA = DismissibleContent.VOICE_PANEL_BAD_CONNECTION_CTA;
if (VOICE_PANEL_BAD_CONNECTION_CTA === dismissableContent) {
return getBadConnectionCTAProps();
}
const SOUNDBOARD_MOBILE_FLOATING_CTA = DismissibleContent.SOUNDBOARD_MOBILE_FLOATING_CTA;
if (SOUNDBOARD_MOBILE_FLOATING_CTA === dismissableContent) {
object2 = {};
object2.icon = ((SoundboardIcon) => <SoundboardIcon color="interactive-icon-default" />)((require(10284) /* metro dependency 10284: SoundboardIcon */).SoundboardIcon);
object2.onPress = onPress_117887;
object2.label = (require(7212) /* metro dependency 7212: getDeviceSpecificString */).getDeviceSpecificString({quest: t.XLlWUe},
t.IJgkPX);
object2.trailing = <CloseSoundboardMobileFloatingCtaIcon />;
return object2;
}
DismissibleContent.DONUT_MOBILE_NUX;
return null;
}
function CloseSoundboardMobileFloatingCtaIcon() { // fn#117888, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:3209, offset: 0x024c470e, size: 142 bytes, params: 1, frame: 19
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const cpT0Cq = (require(1244) /* metro dependency 1244: indexNative */).t.cpT0Cq;
const handleSoundboardMobileFloatingCtaCloseBinding = handleSoundboardMobileFloatingCtaClose;
const XSmallIcon = (require(5312) /* metro dependency 5312: XSmallIcon */).XSmallIcon;
return (
<Pressable
accessibilityRole="button"
accessibilityLabel={Reflect.apply(string, intl, [cpT0Cq])}
onPress={handleSoundboardMobileFloatingCtaCloseBinding}
>
<XSmallIcon color="interactive-icon-default" />
</Pressable>
);
}
function useShouldShowFloatingCTA(a0) { // fn#117889, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:4355, offset: 0x024c479c, size: 193 bytes, params: 2, frame: 17
const env0_0 = a0;
const property = env0_3((require(7014) /* metro dependency 7014: useGetDismissibleContent */).useGetDismissibleContent((importDefault(15414) /* metro dependency 15414: useChannelFloatingCTAContent */)(a0)),
1)[0];
const channel = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([ChannelStore],
_fun117890);
return env0_4.useMemo(_fun117891, [property, channel]) != null || useFloatingCTAProps(channel) != null;
}
function useOverrideFloatingCTAProps(a0) { // fn#117872, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:402, owner: useFloatingCTAProps.useOverrideFloatingCTAProps, offset: 0x024c3cf0, size: 95 bytes, params: 2, frame: 17
const env0_0 = a0;
const binding = env1_4;
const useContext = binding.useContext;
return env1_4.useMemo(_fun117873, [Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).setShowFloatingCTA, a0]);
}
function useGuildEventControlsProps(a0) { // fn#117875, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:602, owner: useFloatingCTAProps.useGuildEventControlsProps, offset: 0x024c3d91, size: 842 bytes, params: 2, frame: 28
var scheduled_start_time;
var name;
var entity_type;
var STAGE_INSTANCE;
var moduleValue5;
var getGuildScheduledEventHeaderProps;
var text;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const value2 = undefined;
const value3 = (importDefault(4048) /* metro dependency 4048: useTheme */)();
let binding = env1_4;
const useContext = binding.useContext;
const value4 = (importDefault(15390) /* metro dependency 15390: useIsConnectedToVoiceChannel */)(Reflect.apply(useContext,
binding, [importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).channelId);
const value5 = (require(9127) /* metro dependency 9127: useGuildScheduledEvents */).useImminentUpcomingGuildEvents(a0 == null ? value2 : a0.id);
const useStateFromStoresModule = require(632) /* metro dependency 632: useStateFromStores */;
const useStateFromStores = useStateFromStoresModule.useStateFromStores;
let object = [EventBannerStore];
const value6 = Reflect.apply(useStateFromStores, useStateFromStoresModule, [object, _fun117876, [value5]]);
const useManageResourcePermissionsModule = require(9077) /* metro dependency 9077: useManageResourcePermissions */;
const useManageResourcePermissions = useManageResourcePermissionsModule.useManageResourcePermissions;
const canManageGuildEvent2 = Reflect.apply(useManageResourcePermissions, useManageResourcePermissionsModule,
[a0]).canManageGuildEvent(value6);
const r1 = value6 != null && isGuildScheduledEventActive(value6);
const r3 = (require(9039) /* metro dependency 9039: ScheduleUtils */).getNextRecurrenceIdInEvent(value6) ?? value2;
const value9 = (importDefault(9035) /* metro dependency 9035: useGuildScheduledEventUserCount */)(value6 == null ? value2 : value6.guild_id,
value6 == null ? value2 : value6.id, r3);
binding = env1_4;
let useCallback = binding.useCallback;
const value10 = Reflect.apply(useCallback, binding, [_fun117878, [value6, r3]]);
binding = env1_4;
useCallback = binding.useCallback;
if (value4) {
if (value6 == null) {
return value2;
}
if (canManageGuildEvent2) {
if (r1) {
return value2;
}
scheduled_start_time = value6.scheduled_start_time;
name = value6.name;
entity_type = value6.entity_type;
STAGE_INSTANCE = GuildScheduledEventEntityTypes.STAGE_INSTANCE;
moduleValue5 = require(9219) /* metro dependency 9219: GuildScheduledEventHeaderUtils */;
getGuildScheduledEventHeaderProps = moduleValue5.getGuildScheduledEventHeaderProps;
object = {};
object.eventTimeData = (require(9039) /* metro dependency 9039: ScheduleUtils */).getEventTimeData(scheduled_start_time);
object.isStage = entity_type === STAGE_INSTANCE;
object.theme = value3;
object.event = value6;
text = Reflect.apply(getGuildScheduledEventHeaderProps, moduleValue5, [object]).text;
object = {onPress: value10};
object.icon = ((Icon) => <Icon IconComponent={(require(9133) /* metro dependency 9133: CalendarIcon */).CalendarIcon} variant="translucent" />)((require(7975) /* metro dependency 7975: RowButtonNative */).RowButton.Icon);
object.label = name;
object.subLabel = '' + text + ' • ' + intl.formatToPlainString(t.NywdIj, {count: value9});
object.trailing = <Pressable accessibilityRole="button" accessibilityLabel={intl.string(t.cpT0Cq)} onPress={Reflect.apply(useCallback,
binding, [_fun117879,
[value6]])}>{((XSmallIcon) => <XSmallIcon color="interactive-icon-default" />)((require(5312) /* metro dependency 5312: XSmallIcon */).XSmallIcon)}</Pressable>;
return object;
}
}
return value2;
}
function useCallInviteProps(a0) { // fn#117880, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:1880, owner: useFloatingCTAProps.useCallInviteProps, offset: 0x024c41bb, size: 376 bytes, params: 2, frame: 20
var r0;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const env0_0 = a0;
const binding = env1_4;
const useContext = binding.useContext;
const value2 = undefined;
const value3 = (importDefault(15390) /* metro dependency 15390: useIsConnectedToVoiceChannel */)(Reflect.apply(useContext,
binding, [importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).channelId);
const useStateFromStoresModule = require(632) /* metro dependency 632: useStateFromStores */;
const useStateFromStores = useStateFromStoresModule.useStateFromStores;
let object = [ChannelRTCStore];
const value4 = Reflect.apply(useStateFromStores, useStateFromStoresModule, [object, _fun117881]);
const useInviteMembersCallbackModule = require(15413) /* metro dependency 15413: useInviteMembersCallback */;
const useInviteMembersCallback = useInviteMembersCallbackModule.useInviteMembersCallback;
if (a0 != null) {
if (value3) {
if (value4) {
object = {};
object.label = intl.string(t.N4nebq);
object.subLabel = intl.string(t.o2XPr2);
object.icon = ((Icon) => <Icon IconComponent={(require(10859) /* metro dependency 10859: GroupPlusIcon */).GroupPlusIcon} variant="translucent" />)((require(7975) /* metro dependency 7975: RowButtonNative */).RowButton.Icon);
object.onPress = Reflect.apply(useInviteMembersCallback, useInviteMembersCallbackModule,
[a0 == null ? value2 : a0.id]);
r0 = object;
} else {
r0 = value2;
}
} else {
r0 = value2;
}
} else {
r0 = value2;
}
return r0;
}
function getBadConnectionCTAPropsOnPress() { // fn#117883, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:2636, owner: getBadConnectionCTAProps.onPress, offset: 0x024c44da, size: 30 bytes, params: 1, frame: 11
return env0_0?.();
}
function getBadConnectionCTAPropsOnPress_117884() { // fn#117884, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:2777, owner: getBadConnectionCTAProps.onPress, offset: 0x024c44f8, size: 83 bytes, params: 1, frame: 13
const value = environment.__proto__;
const DismissibleContent = (require(1365) /* metro dependency 1365: dismissible_content */).DismissibleContent;
const VOICE_PANEL_BAD_CONNECTION_CTA = DismissibleContent.VOICE_PANEL_BAD_CONNECTION_CTA;
(require(3968) /* metro dependency 3968: DismissibleContentUnsafeUtils */).UNSAFE_markDismissibleContentAsDismissed(VOICE_PANEL_BAD_CONNECTION_CTA);
if (env0_0 != null) {
env0_0();
}
}
function getDismissableCTAPropsOnPress() { // fn#117887, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:3740, owner: getDismissableCTAProps.onPress, offset: 0x024c46bf, size: 79 bytes, params: 1, frame: 12
var value;
const channelBinding = channel;
if (channelBinding != null) {
value = environment.__proto__;
value = require(15415) /* metro dependency 15415: SoundboardActionCreators */;
value.showSoundboardSoundPickerActionSheet({channel: channelBinding,
analyticsSource: 'SOUNDBOARD_MOBILE_FLOATING_CTA'});
}
value = environment.__proto__;
handleSoundboardMobileFloatingCtaClose();
}
function _fun117891() { // fn#117891, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:4531, offset: 0x024c485d, size: 38 bytes, params: 1, frame: 12
return getDismissableCTAProps({dismissableContent: env0_1, channel: channel});
}
function _fun117873() { // fn#117873, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:508, offset: 0x024c3d4f, size: 48 bytes, params: 1, frame: 12
var environment;
const binding = env0_0;
const value = environment.__proto__.__proto__;
const BAD_CONNECTION = env2_12.BAD_CONNECTION;
return binding !== BAD_CONNECTION ? null : getBadConnectionCTAProps(function() {
return setShowFloatingCTA(null);
});
}
function _fun117876() { // fn#117876, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:806, offset: 0x024c40db, size: 41 bytes, params: 1, frame: 11
const value = env0_0.find(function(a0) {
return !EventBannerStore.isEventDismissed(a0.id);
});
const value2 = null;
return value2 != value ? value : value2;
}
function _fun117878() { // fn#117878, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:1110, offset: 0x024c4125, size: 88 bytes, params: 1, frame: 15
var value2;
var moduleValue;
if (env0_1 != null) {
value2 = environment.__proto__.__proto__;
(importDefault(4080) /* metro dependency 4080: ActionSheetActionCreators */).hideActionSheet();
moduleValue = require(9052) /* metro dependency 9052: GuildScheduledEventModalActionCreators */;
moduleValue.openStartGuildEventModal(env0_1, env0_2);
}
}
function _fun117879() { // fn#117879, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:1218, offset: 0x024c417d, size: 62 bytes, params: 1, frame: 12
var value2;
var moduleValue;
if (env0_1 != null) {
value2 = environment.__proto__.__proto__;
moduleValue = require(15412) /* metro dependency 15412: GuildScheduledEventsNoticesActionCreators */;
moduleValue.dismissEventBanner(env0_1.id);
}
}
function _fun117881() { // fn#117881, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15607:1999, offset: 0x024c4333, size: 75 bytes, params: 1, frame: 12
return env0_0?.id != null && ChannelRTCStore.getParticipants(env0_0.id).length === 1;
}
@@ -0,0 +1,192 @@
/* Metro module 11644; source: modules/voice_panel/native/controls/utils/createUseAnimatedScrollLock.tsx; dependencies: [31, 477, 4017, 2] */
function _fun89251(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#89251, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11830:6, offset: 0x020067d7, size: 240 bytes, params: 8, frame: 18
let env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
let env0_2 = (require(477) /* metro dependency 477: PlatformUtils */).isAndroid();
value = value.createContext(function() {
return {};
});
object = {code: 'function onBeginDrag_createUseAnimatedScrollLockTsx1(_,context){const{isDragScrolling}=this.__closure;context.momentumEndCount=0;isDragScrolling.set(true);}'};
object = {code: 'function onEndDrag_createUseAnimatedScrollLockTsx2(event){const{isDragScrolling,scrollLocked}=this.__closure;var _event$velocity$y,_event$velocity;isDragScrolling.set(false);if(Math.abs((_event$velocity$y=(_event$velocity=event.velocity)===null||_event$velocity===void 0?void 0:_event$velocity.y)!==null&&_event$velocity$y!==void 0?_event$velocity$y:0)===0){scrollLocked.set(false);}}'};
object = {code: 'function onMomentumEnd_createUseAnimatedScrollLockTsx3(event,context){const{IS_ANDROID,scrollLocked}=this.__closure;if(IS_ANDROID){var _context$momentumEndC;let count=(_context$momentumEndC=context===null||context===void 0?void 0:context.momentumEndCount)!==null&&_context$momentumEndC!==void 0?_context$momentumEndC:0;count+=1;if(count===3){scrollLocked.set(false);}else if(context!=null){context.momentumEndCount=count;}}else{scrollLocked.set(false);}}'};
object = {code: 'function onScroll_createUseAnimatedScrollLockTsx4(event){const{isDragScrolling,IS_ANDROID,scrollTo,scrollerRef,scrollOffsetValue,scrollLocked,onScrollHandler,runOnJS,onScrollHandlerWorkletized}=this.__closure;var _onScrollHandlerWorkl;const newScrollPosition=event.contentOffset.y;if(isDragScrolling.get()!==true){let scrollPosition=newScrollPosition;if(IS_ANDROID&&scrollPosition<0){scrollPosition=0;scrollTo(scrollerRef,0,0,false);}scrollOffsetValue.set(scrollPosition);}else{const isUp=newScrollPosition<scrollOffsetValue.get();if(scrollLocked.get()||isUp&&newScrollPosition<=0){if(!scrollLocked.get()){scrollLocked.set(true);}scrollTo(scrollerRef,0,0,false);scrollOffsetValue.set(0);}else{scrollOffsetValue.set(newScrollPosition);}}const{width:width,height:height}=event.layoutMeasurement;const{width:contentWidth,height:contentHeight}=event.contentSize;onScrollHandler!=null&&runOnJS(onScrollHandler)({width:width,height:height,offset:newScrollPosition,contentWidth:contentWidth,contentHeight:contentHeight});(_onScrollHandlerWorkl=onScrollHandlerWorkletized)===null||_onScrollHandlerWorkl===void 0||_onScrollHandlerWorkl({width:width,height:height,offset:newScrollPosition,contentWidth:contentWidth,contentHeight:contentHeight});}'};
object = {code: 'function createUseAnimatedScrollLockTsx5(){const{scrollLocked}=this.__closure;return{showsVerticalScrollIndicator:!scrollLocked.get()};}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/controls/utils/createUseAnimatedScrollLock.tsx');
exports.ControlsGestureScrollLock = value;
exports.createUseAnimatedScrollLock = function(a0, a1, a2, a3) {
var env0_0 = a0;
var env0_1 = a1;
var env0_2 = a2;
var env0_3 = a3;
return _fun89254;
};
}
function createUseAnimatedScrollLock(a0, a1, a2, a3) { // fn#89253, offset: 0x020068c7, size: 39 bytes, params: 5, frame: 2
const env0_0 = a0;
const env0_1 = a1;
const env0_2 = a2;
const env0_3 = a3;
return _fun89254;
}
function _fun89254() { // fn#89254, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11830:2804, offset: 0x020068ee, size: 491 bytes, params: 1, frame: 28
var environment;
let value = a0;
const r0 = value !== undefined ? value : {};
const onScrollHandler = r0.onScrollHandler;
const env0_0 = onScrollHandler;
const onScrollHandlerWorkletized = r0.onScrollHandlerWorkletized;
value = environment.__proto__;
let value2 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useAnimatedRef();
const object3 = {};
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedScrollHandler = reanimatedRexportModule.useAnimatedScrollHandler;
const object4 = {};
let closure = function(a0, a1) {
a1.momentumEndCount = 0;
importAll.set(true);
};
closure.__closure = {isDragScrolling: importAll};
closure.__workletHash = 16433590303176;
closure.__initData = env1_3;
object4.onBeginDrag = closure;
closure = function(a0) {
var r7;
importAll.set(false);
var Math = global.Math;
var abs = Math.abs;
var velocity = a0.velocity;
var value2 = undefined;
r7 = velocity == null ? value2 : velocity.y;
var value3 = 0;
if (value3 === Reflect.apply(abs, Math, [r7 ?? value3])) {
require.set(false);
}
return value2;
};
closure.__closure = {isDragScrolling: importAll, scrollLocked: require};
closure.__workletHash = 1594981610850;
closure.__initData = env1_4;
object4.onEndDrag = closure;
closure = onMomentumEnd;
const binding = env1_2;
closure.__closure = {IS_ANDROID: binding, scrollLocked: require};
closure.__workletHash = 17525906195822;
closure.__initData = env1_5;
object4.onMomentumEnd = closure;
closure = onScroll_89258;
const object5 = {isDragScrolling: importAll, IS_ANDROID: binding};
object5.scrollTo = reanimatedRexportModule.scrollTo;
object5.scrollerRef = value2;
object5.scrollOffsetValue = importDefault;
object5.scrollLocked = require;
object5.onScrollHandler = onScrollHandler;
object5.runOnJS = reanimatedRexportModule.runOnJS;
object5.onScrollHandlerWorkletized = onScrollHandlerWorkletized;
closure.__closure = object5;
closure.__workletHash = 13271628494164;
closure.__initData = env1_6;
object4.onScroll = closure;
object3.onScroll = Reflect.apply(useAnimatedScrollHandler, reanimatedRexportModule, [object4]);
const moduleValue3 = reanimatedRexportModule;
const useAnimatedProps = moduleValue3.useAnimatedProps;
closure = function() {
var object = {};
object.showsVerticalScrollIndicator = !require.get();
return object;
};
closure.__closure = {scrollLocked: require};
closure.__workletHash = 3670657775473;
closure.__initData = env1_7;
object3.animatedProps = Reflect.apply(useAnimatedProps, moduleValue3, [closure]);
object3.scrollerRef = value2;
object3.gestureRef = env0_0;
return object3;
}
function onMomentumEnd(a0, a1) { // fn#89257, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11830:3325, offset: 0x02006b5e, size: 112 bytes, params: 3, frame: 13
var momentumEndCount;
let value = environment.__proto__.__proto__;
if (env2_2) {
value = undefined;
momentumEndCount = a1 == null ? value : a1.momentumEndCount;
value = 0;
value = (momentumEndCount ?? value) + 1;
if (value === 3) {
value = environment.__proto__;
require.set(false);
} else if (a1 != null) {
a1.momentumEndCount = value;
}
} else {
value = environment.__proto__;
require.set(false);
}
}
function onScroll_89258({contentOffset, layoutMeasurement, contentSize}) { // fn#89258, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11830:3572, offset: 0x02006bce, size: 447 bytes, params: 2, frame: 22
var r3;
var value3;
var value4;
var value6;
var moduleValue2;
var value9;
var value10;
var moduleValue3;
const y = contentOffset.y;
if (importAll.get() !== true) {
value6 = environment.__proto__.__proto__;
if (env2_2 && y < 0) {
moduleValue2 = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value9 = 0;
moduleValue2.scrollTo(env0_2, value9, value9, false);
r3 = value9;
} else {
r3 = y;
}
importDefault.set(r3);
} else {
get = importDefault.get;
value3 = y < Reflect.apply(get, importDefault, []);
get = require.get;
if (Reflect.apply(get, require, [])) {
if (!require.get()) {
require.set(true);
}
value4 = environment.__proto__.__proto__;
(require(4017) /* metro dependency 4017: ReanimatedRexport */).scrollTo(env0_2, 0, 0, false);
importDefault.set(0);
} else if (value3) {
if (y <= 0) {
if (!require.get()) {
require.set(true);
}
value4 = environment.__proto__.__proto__;
(require(4017) /* metro dependency 4017: ReanimatedRexport */).scrollTo(env0_2, 0, 0, false);
importDefault.set(0);
} else {
importDefault.set(y);
}
} else {
importDefault.set(y);
}
}
const width = layoutMeasurement.width;
const height = layoutMeasurement.height;
const width2 = contentSize.width;
const height2 = contentSize.height;
if (onScrollHandler != null) {
value10 = environment.__proto__.__proto__;
moduleValue3 = require(4017) /* metro dependency 4017: ReanimatedRexport */;
moduleValue3.runOnJS(onScrollHandler)({width: width, height: height, offset: y, contentWidth: width2,
contentHeight: height2});
}
if (onScrollHandlerWorkletized != null) {
onScrollHandlerWorkletized({width: width, height: height, offset: y, contentWidth: width2,
contentHeight: height2});
}
}
@@ -0,0 +1,228 @@
/* Metro module 9241; source: modules/voice_panel/native/header/VoicePanelAudioOutputActionSheet.tsx; dependencies: [31, 27, 4295, 9232, 1379, 4296, 9240, 661, 33, 4501, 4080, 632, 9242, 9243, 1244, 7988, 7987, 6242, 9228, 9324, 9325, 9326, 3968, 1365, 9436, 6275, 6758, 6821, 2] */
function _fun72247(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72247, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9426:6, offset: 0x01d3fbb9, size: 371 bytes, params: 8, frame: 20
const env0_0 = require;
const closeActionSheet_72248 = function() {
importDefault(dependencyMap[10]).hideActionSheet(VOICE_PANEL_AUDIO_OUTPUT_ACTION_SHEET_KEY);
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(27) /* metro dependency 27 */).ScrollView;
const gameConsoleStore = importDefault(4295) /* metro dependency 4295: GameConsoleStore */;
const audioManagerStoreAndroid = importDefault(9232) /* metro dependency 9232: AudioManagerStoreAndroid */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const sessionsStore = importDefault(4296) /* metro dependency 4296: SessionsStore */;
const env0_9 = (require(9240) /* metro dependency 9240: VoicePanelHeaderConstants */).VOICE_PANEL_AUDIO_OUTPUT_ACTION_SHEET_KEY;
const env0_10 = (require(661) /* metro dependency 661: Constants */).PlatformTypes;
const value2 = require(33) /* metro dependency 33 */;
const env0_11 = value2.jsx;
const env0_12 = value2.jsxs;
const env0_13 = (require(4501) /* metro dependency 4501: createStyles */).createStyles({sectionContainer: {'marginTop': 0,
'marginBottom': 24}});
value = value.memo(VoicePanelAudioOutputActionSheet);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/header/VoicePanelAudioOutputActionSheet.tsx');
exports.default = value;
}
function VoicePanelAudioPhoneOutputSection() { // fn#72249, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9426:399, offset: 0x01d3fd56, size: 324 bytes, params: 1, frame: 23
var r0;
var VoicePanelFormSection;
var intl;
const styles = useStyles();
const {activeDevice,
availableDevices} = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStoresObject([AudioManagerStoreAndroid],
function() {
var object = {};
object.activeDevice = AudioManagerStoreAndroid.getActiveAudioDevice();
object.availableDevices = AudioManagerStoreAndroid.getAudioDevices();
return object;
});
const env0_1 = env0_3.useCallback(function(a0) {
require(dependencyMap[12]).setAudioOutputDevice(a0);
closeActionSheet_72248();
}, []);
if (availableDevices.length > 0) {
VoicePanelFormSection = (require(9243) /* metro dependency 9243: FormComponents */).VoicePanelFormSection;
var voicePanelFormSectionProps = {style: styles.sectionContainer};
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
voicePanelFormSectionProps.title = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.CxyS15);
voicePanelFormSectionProps.hasIcons = true;
r0 = <VoicePanelFormSection {...voicePanelFormSectionProps}>{((TableRadioGroup) => <TableRadioGroup defaultValue={activeDevice.deviceId} onChange={onChange_72252} hasIcons>{availableDevices.map(_fun72254)}</TableRadioGroup>)((require(7988) /* metro dependency 7988: TableRadioGroupNative */).TableRadioGroup)}</VoicePanelFormSection>;
} else {
r0 = null;
}
return r0;
}
function VoicePanelAudioConsoleSection({channel}) { // fn#72255, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9426:1275, offset: 0x01d4000c, size: 540 bytes, params: 2, frame: 25
var r0;
var VoicePanelFormSection;
var intl;
var TableRadioGroup;
var object3;
var value;
const styles = useStyles();
const value2 = (importDefault(9324) /* metro dependency 9324: useGameConsoleAccounts */)();
const env0_2 = (importDefault(9325) /* metro dependency 9325: useVoiceStateForRemoteSession */)();
const useStateFromStoresModule = require(632) /* metro dependency 632: useStateFromStores */;
const useStateFromStores = useStateFromStoresModule.useStateFromStores;
let object = [GameConsoleStore];
const awaitingRemoteSessionInfo = Reflect.apply(useStateFromStores, useStateFromStoresModule, [object, function() {
return GameConsoleStore.getAwaitingRemoteSessionInfo();
}]);
const env0_3 = awaitingRemoteSessionInfo;
const value3 = env0_3.useMemo(_fun72258, [awaitingRemoteSessionInfo,
useStateFromStoresModule.useStateFromStores([SessionsStore], _fun72257)]);
const value4 = env0_3.useCallback(_fun72259, [value2, channel]);
const dismissibleContentUnsafeUtilsModule = require(3968) /* metro dependency 3968: DismissibleContentUnsafeUtils */;
const UNSAFE_useIsDismissibleContentDismissed = dismissibleContentUnsafeUtilsModule.UNSAFE_useIsDismissibleContentDismissed;
const DismissibleContent = (require(1365) /* metro dependency 1365: dismissible_content */).DismissibleContent;
const DONUT_MOBILE_NUX = DismissibleContent.DONUT_MOBILE_NUX;
env0_3.useEffect(_fun72261, [value2, !Reflect.apply(UNSAFE_useIsDismissibleContentDismissed,
dismissibleContentUnsafeUtilsModule, [DONUT_MOBILE_NUX])]);
if (value2.length > 0) {
VoicePanelFormSection = (require(9243) /* metro dependency 9243: FormComponents */).VoicePanelFormSection;
object = {};
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object.title = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.q22XnQ);
object.style = styles.sectionContainer;
object.hasIcons = true;
TableRadioGroup = (require(7988) /* metro dependency 7988: TableRadioGroupNative */).TableRadioGroup;
object3 = {defaultValue: value3, onChange: value4, hasIcons: true};
value = value2.map(_fun72262);
value = <VoicePanelFormSection {...object}><TableRadioGroup {...object3}>{value.filter(function(a0) {
return (0, global.Boolean)(a0);
})}</TableRadioGroup></VoicePanelFormSection>;
r0 = value;
} else {
r0 = null;
}
return r0;
}
function VoicePanelAudioOutputActionSheet({channelId, isConnectedToVoiceChannel}) { // fn#72264, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9426:2748, offset: 0x01d40506, size: 321 bytes, params: 2, frame: 26
var r0;
var BottomSheet;
var BottomSheetTitleHeader;
var intl;
const channel = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([ChannelStore],
function() {
return ChannelStore.getChannel(channelId);
});
if (channel == null) {
r0 = null;
} else {
BottomSheet = (require(6275) /* metro dependency 6275: BottomSheetNative */).BottomSheet;
BottomSheetTitleHeader = (require(6758) /* metro dependency 6758: BottomSheetTitleHeaderNative */).BottomSheetTitleHeader;
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
r0 = <BottomSheet header={<BottomSheetTitleHeader title={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.iwxPM3)} />}><ScrollView>{((Component) => <Component>{isConnectedToVoiceChannel && <VoicePanelAudioPhoneOutputSection />}<VoicePanelAudioConsoleSection channel={channel} /></Component>)(importDefault(6821) /* metro dependency 6821: NativeView */)}</ScrollView></BottomSheet>;
}
return r0;
}
function VoicePanelAudioPhoneOutputSectionOnChange(a0) { // fn#72252, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9426:902, owner: VoicePanelAudioPhoneOutputSection.onChange, offset: 0x01d3fef8, size: 55 bytes, params: 2, frame: 12
const env0_0 = a0;
const value2 = availableDevices.find(_fun72253);
if (value2 != null) {
env0_1(value2);
}
}
function _fun72254(a0) { // fn#72254, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9426:983, offset: 0x01d3ff45, size: 199 bytes, params: 2, frame: 23
const value = environment.__proto__;
const value2 = undefined;
const TableRadioRow = (require(7987) /* metro dependency 7987: TableRadioRowNative */).TableRadioRow;
const tableRadioRowProps = {value: a0.deviceId};
const TableRowIcon = (require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon;
tableRadioRowProps.icon = <TableRowIcon source={(require(9228) /* metro dependency 9228: CallsUtils */).audioDeviceToIconMap[a0.simpleDeviceType]} />;
tableRadioRowProps.label = (require(9228) /* metro dependency 9228: CallsUtils */).getAudioDeviceToDisplayText(a0);
let deviceName = a0.deviceName;
deviceName = (deviceName == null ? value2 : deviceName.length) > 0 ? a0.deviceName : value2;
tableRadioRowProps.subLabel = deviceName;
return <TableRadioRow {...tableRadioRowProps} key={a0.deviceId} />;
}
function _fun72257() { // fn#72257, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9426:1472, offset: 0x01d4023b, size: 62 bytes, params: 1, frame: 14
const value = environment.__proto__;
return SessionsStore.getSessionById(env0_2?.sessionId ?? '');
}
function _fun72258() { // fn#72258, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9426:1566, offset: 0x01d40279, size: 88 bytes, params: 1, frame: 6
const awaitingRemoteSessionInfoBinding = awaitingRemoteSessionInfo;
const value2 = undefined;
return (awaitingRemoteSessionInfoBinding == null ? value2 : awaitingRemoteSessionInfo.type) ?? (sessionById == null || sessionById.clientInfo == null ? value2 : sessionById.clientInfo.os) ?? '';
}
function _fun72259(a0) { // fn#72259, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9426:1707, offset: 0x01d402d1, size: 108 bytes, params: 2, frame: 15
var environment;
var value3;
var moduleValue;
const env0_0 = a0;
const value2 = env0_1.find(_fun72260);
if (value2 != null) {
value3 = environment.__proto__;
moduleValue = require(9326) /* metro dependency 9326: useOnConnectToConsole */;
moduleValue.onConnectToConsole(channel, value2);
closeActionSheet_72248();
} else {
value = environment.__proto__;
closeActionSheet_72248();
}
}
function _fun72261() { // fn#72261, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9426:1949, offset: 0x01d4033d, size: 92 bytes, params: 1, frame: 14
var value;
if (result && env0_1.length > 0) {
value = environment.__proto__;
value = require(3968) /* metro dependency 3968: DismissibleContentUnsafeUtils */;
value.UNSAFE_markDismissibleContentAsDismissed((require(1365) /* metro dependency 1365: dismissible_content */).DismissibleContent.DONUT_MOBILE_NUX);
}
}
function _fun72262(a0) { // fn#72262, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9426:2293, offset: 0x01d40399, size: 345 bytes, params: 2, frame: 23
var r6;
var r0;
var object2;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
var TableRadioRow;
var TableRowIcon;
let type = a0.type;
let value = environment.__proto__;
const XBOX = PlatformTypes.XBOX;
if (XBOX === type) {
object2 = {};
object2.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.Nfvo72);
object2.variant = 'xbox';
r6 = object2;
} else if (PlatformTypes.PLAYSTATION !== type) {
r6 = null;
} else {
object2 = {};
object2.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.fFl4jo);
object2.variant = 'playstation';
r6 = object2;
}
const value3 = r6 != null;
if (value3) {
TableRadioRow = (require(7987) /* metro dependency 7987: TableRadioRowNative */).TableRadioRow;
object2 = {};
TableRowIcon = (require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon;
value = importDefault(9436) /* metro dependency 9436: getConsoleIcon */;
type = a0.type;
object2.icon = <TableRowIcon source={value(type)} variant={r6.variant} />;
object2.label = r6.label;
type = a0.type;
object2.value = type;
type = a0.type;
value = <TableRadioRow {...object2} key={type} />;
r0 = value;
} else {
r0 = value3;
}
return r0;
}
function _fun72253({deviceId}) { // fn#72253, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9426:920, offset: 0x01d3ff2f, size: 22 bytes, params: 2, frame: 2
return deviceId === env0_0;
}
@@ -0,0 +1,95 @@
/* Metro module 15477; source: modules/voice_panel/native/header/VoicePanelConsoleFacepile.tsx; dependencies: [31, 661, 33, 4501, 697, 9436, 1244, 9324, 1360, 6821, 1305, 2] */
function _fun118461(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118461, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15674:6, offset: 0x024dc278, size: 313 bytes, params: 8, frame: 23
var object3;
const env0_0 = require;
const closure = getConsoleInfo;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(661) /* metro dependency 661: Constants */).PlatformTypes;
const env0_5 = (require(33) /* metro dependency 33 */).jsx;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object3 = {};
const object4 = {'borderRadius': null, 'padding': 8, 'margin': -3, 'borderWidth': 3};
object4.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
const BACKGROUND_BASE_LOW = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOW;
object4.borderColor = BACKGROUND_BASE_LOW;
object3.consoleIconContainer = object4;
const WHITE = (importDefault(697) /* metro dependency 697: native */).colors.WHITE;
object3.consoleIcon = {tintColor: WHITE};
const env0_6 = Reflect.apply(createStyles, createStylesModule, [object3]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/header/VoicePanelConsoleFacepile.tsx');
exports.default = VoicePanelConsoleFacepile;
exports.getConsoleInfo = closure;
}
function getConsoleInfo(a0) { // fn#118462, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15674:352, offset: 0x024dc3b1, size: 398 bytes, params: 2, frame: 18
var object2;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const type = a0.type;
const XBOX = PlatformTypes.XBOX;
if (XBOX === type) {
object2 = {};
object2.icon = (importDefault(9436) /* metro dependency 9436: getConsoleIcon */)(a0.type);
object2.color = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.PLATFORM_XBOX;
object2.connectLabel = intl.string(t.QN7HXV);
object2.connectSublabel = intl.string(t['M/Ld86']);
return object2;
}
const PLAYSTATION = PlatformTypes.PLAYSTATION;
if (PLAYSTATION === type) {
object2 = {};
object2.icon = (importDefault(9436) /* metro dependency 9436: getConsoleIcon */)(a0.type);
object2.color = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.PLATFORM_PLAYSTATION;
object2.connectLabel = intl.string(t['3qLlTS']);
object2.connectSublabel = intl.string(t['/uR9x1']);
return object2;
}
return null;
}
function VoicePanelConsoleFacepile() { // fn#118463, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15674:928, offset: 0x024dc53f, size: 160 bytes, params: 1, frame: 18
const styles = useStyles();
const value2 = (importDefault(9324) /* metro dependency 9324: useGameConsoleAccounts */)();
const binding = env0_3;
const value3 = binding.useMemo(_fun118464, [value2]);
const value4 = binding.useCallback(_fun118465, [styles]);
const SummarizedIconRow = (require(1305) /* metro dependency 1305: native */).SummarizedIconRow;
return (
<SummarizedIconRow
items={value3}
renderItem={value4}
offsetAmount={-3}
/>
);
}
function _fun118464() { // fn#118464, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15674:1000, offset: 0x024dc5df, size: 64 bytes, params: 1, frame: 13
const binding = env0_1;
const value2 = binding.map(getConsoleInfo);
return value2.filter((require(1360) /* metro dependency 1360: GlobalUtils */).isNotNullish);
}
function _fun118465(a0) { // fn#118465, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15674:1078, offset: 0x024dc61f, size: 164 bytes, params: 2, frame: 20
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const stylesBinding = styles;
const items2 = [stylesBinding.consoleIconContainer];
items2[1] = {backgroundColor: a0.color};
const Icon = (require(1305) /* metro dependency 1305: native */).Icon;
const consoleIcon = stylesBinding.consoleIcon;
const Icon2 = (require(1305) /* metro dependency 1305: native */).Icon;
const Sizes = Icon2.Sizes;
const MEDIUM = Sizes.MEDIUM;
return (
<NativeView style={items2}>
<Icon
style={consoleIcon}
size={MEDIUM}
source={a0.icon}
/>
</NativeView>
);
}
@@ -0,0 +1,644 @@
/* Metro module 15452; source: modules/voice_panel/native/header/VoicePanelHeader.tsx; dependencies: [57, 31, 27, 4606, 4107, 10753, 1226, 1379, 4259, 3793, 4607, 1878, 11795, 11798, 11793, 4299, 482, 33, 4501, 697, 4017, 4577, 8141, 4563, 6821, 11794, 10860, 566, 10755, 15388, 1244, 10764, 8842, 10765, 4559, 15390, 15453, 4805, 3860, 11799, 4504, 15454, 15413, 15455, 5286, 15456, 8899, 9293, 9256, 3868, 14955, 15457, 8709, 15459, 9322, 677, 15470, 10858, 15480, 15481, 2] */
function _fun118266(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118266, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:6, offset: 0x024d38af, size: 1186 bytes, params: 8, frame: 28
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
let value = importAll(31) /* metro dependency 31 */;
const value2 = require(27) /* metro dependency 27 */;
const StyleSheet = value2.StyleSheet;
value2.Platform;
const channelRTCStore = importDefault(4606) /* metro dependency 4606: ChannelRTCStore */;
const experimentStore = importDefault(4107) /* metro dependency 4107: ExperimentStore */;
const stageMusicStore = importDefault(10753) /* metro dependency 10753: StageMusicStore */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const mediaEngineStore = importDefault(4259) /* metro dependency 4259: MediaEngineStore */;
const relationshipStore = importDefault(3793) /* metro dependency 3793: RelationshipStore */;
const speakingStore = importDefault(4607) /* metro dependency 4607: SpeakingStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const voicePanelConstantsModule = require(11795) /* metro dependency 11795: VoicePanelConstants */;
const MODE_CHANGE_PHYSICS = voicePanelConstantsModule.MODE_CHANGE_PHYSICS;
const env0_16 = voicePanelConstantsModule.UI_SHOW_HIDE_PHYSICS;
const env0_17 = voicePanelConstantsModule.VoicePanelModes;
const env0_18 = voicePanelConstantsModule.DRAWER_SPRING_PHYSICS_GESTURE_ACTIVE;
const EDGE_GUTTER = (require(11798) /* metro dependency 11798: VoicePanelCardConstants */).EDGE_GUTTER;
const env0_20 = (require(11793) /* metro dependency 11793: VoicePanelControlsConstants */).VoicePanelControlsModes;
const env0_21 = (require(4299) /* metro dependency 4299: CallConstants */).ParticipantTypes;
const env0_22 = (require(482) /* metro dependency 482: Constants */).ThemeTypes;
const value4 = require(33) /* metro dependency 33 */;
const env0_23 = value4.jsx;
const env0_24 = value4.jsxs;
object2 = {duration: 300};
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {};
object2.headerWrapper = {'zIndex': 1, 'position': 'absolute', 'top': 0, 'left': 0, 'width': '100%',
'paddingBottom': null, 'overflow': 'hidden', paddingBottom: EDGE_GUTTER};
const object4 = {};
copyDataProperties(object4, StyleSheet.absoluteFillObject, undefined);
object4['opacity'] = 0.7;
object2.blurStyles = object4;
object2.leftWrapper = {'position': 'relative', 'justifyContent': 'flex-start', 'flexDirection': 'row',
'alignItems': 'center', 'flexShrink': 1, 'gap': 12};
object2.rightWrapper = {'flexDirection': 'row', 'alignItems': 'center', 'gap': 12, 'paddingLeft': 12};
object2.headerOuter = {'flexDirection': 'row', 'alignItems': 'center'};
object2.headerInner = {'flexDirection': 'row', 'alignItems': 'center', 'flexShrink': 1, 'flexGrow': 1};
object2.headerContentWrapper = {position: 'relative'};
object2.stroke = {height: StyleSheet.hairlineWidth, opacity: 0.2};
object2.strokeAlt = {height: StyleSheet.hairlineWidth, opacity: 0.8};
object2.strokeContainer = {'position': 'absolute', 'left': 0, 'right': 0, 'bottom': 0,
height: StyleSheet.hairlineWidth};
const object5 = {'width': 12, 'height': 12, 'borderRadius': null, 'padding': 2};
object5.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object2.focusedSpeakingDotWrapper = object5;
const object6 = {'width': 8, 'height': 8};
object6.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object2.focusedSpeakingDot = object6;
object2.shieldIconMargin = {marginLeft: -8};
const env0_26 = Reflect.apply(createStyles, createStylesModule, [object2]);
object2 = {DOWN: 0};
object2[0] = 'DOWN';
object2.LEFT = 1;
object2[1] = 'LEFT';
object2 = {};
copyDataProperties(object2, MODE_CHANGE_PHYSICS, undefined);
object2['overshootClamping'] = true;
object2 = {code: 'function VoicePanelHeaderTsx1(){const{isHeaderHidden,focused,scrollPosition}=this.__closure;return!isHeaderHidden.get()&&(focused.get()!=null||scrollPosition.get()>0);}'};
object2 = {code: 'function VoicePanelHeaderTsx2(){const{withSpring,showHeaderBlur}=this.__closure;return{blurAmount:withSpring(showHeaderBlur.get()?0.3:0)};}'};
object2 = {code: 'function VoicePanelHeaderTsx3(){const{withSpring,showHeaderBlur,HEADER_CHANGE_PHYSICS}=this.__closure;return{opacity:withSpring(showHeaderBlur.get()?1:0,HEADER_CHANGE_PHYSICS)};}'};
const env0_32 = value.memo(_fun118270);
object2 = {code: 'function VoicePanelHeaderTsx4(){const{focused,controlsSpecs,VoicePanelControlsModes,speaking}=this.__closure;return focused.get()!=null&&controlsSpecs.get().mode!==VoicePanelControlsModes.HIDDEN&&speaking.get();}'};
object2 = {code: 'function VoicePanelHeaderTsx5(){const{showSpeakingIndicator}=this.__closure;return{opacity:showSpeakingIndicator.get()?1:0};}'};
const env0_35 = value.memo(_fun118274);
object2 = {code: 'function VoicePanelHeaderTsx6(){const{focused}=this.__closure;var _focused$get;return(_focused$get=focused.get())===null||_focused$get===void 0?void 0:_focused$get.id;}'};
object2 = {code: 'function VoicePanelHeaderTsx7(manualId,previousManualId){const{runOnJS,handleFocusChange}=this.__closure;if(manualId!==previousManualId){runOnJS(handleFocusChange)(manualId);}}'};
object2 = {code: 'function VoicePanelHeaderTsx8(){const{calculateVoicePanelHeaderSpecs,safeArea,edgeGutter,mode,VoicePanelModes,gestureState,connected,EDGE_GUTTER}=this.__closure;const specs=calculateVoicePanelHeaderSpecs(safeArea.get(),edgeGutter);if(mode.get()===VoicePanelModes.PIP||gestureState.get().active&&!gestureState.get().requiresPop&&connected.get()||mode.get()===VoicePanelModes.DISMISSED&&connected.get()){return-(specs.height+EDGE_GUTTER);}return 0;}'};
object2 = {code: 'function VoicePanelHeaderTsx9(){const{calculateVoicePanelHeaderSpecs,safeArea,edgeGutter,mode,VoicePanelModes,connected,EDGE_GUTTER,withTiming,OPACITY_TIMING,withSpring,yOffset,wrapperOffset,DRAWER_SPRING_PHYSICS_GESTURE_ACTIVE,UI_SHOW_HIDE_PHYSICS}=this.__closure;const specs=calculateVoicePanelHeaderSpecs(safeArea.get(),edgeGutter);const pipMode=mode.get()===VoicePanelModes.PIP;const height=!connected.get()?specs.height-specs.paddingTop+EDGE_GUTTER:specs.height;const paddingTop=!connected.get()?EDGE_GUTTER:specs.paddingTop;return{...specs,paddingTop:paddingTop,borderTopLeftRadius:!connected.get()?24:0,borderTopRightRadius:!connected.get()?24:0,height:height,opacity:withTiming(pipMode||mode.get()===VoicePanelModes.DISMISSED?0:1,OPACITY_TIMING),transform:[{translateY:withSpring(yOffset.get(),!connected.get()&&wrapperOffset.get().gestureActive?DRAWER_SPRING_PHYSICS_GESTURE_ACTIVE:UI_SHOW_HIDE_PHYSICS)}]};}'};
object2 = {code: 'function VoicePanelHeaderTsx10(){const{controlsSpecs,VoicePanelControlsModes,isScreenReaderEnabled}=this.__closure;return controlsSpecs.get().mode===VoicePanelControlsModes.HIDDEN&&!isScreenReaderEnabled;}'};
object2 = {code: 'function VoicePanelHeaderTsx11(){const{calculateVoicePanelHeaderSpecs,safeArea,edgeGutter,withTiming,isHeaderHidden,OPACITY_TIMING,withSpring,MODE_CHANGE_PHYSICS}=this.__closure;const{height:height}=calculateVoicePanelHeaderSpecs(safeArea.get(),edgeGutter);return{opacity:withTiming(isHeaderHidden.get()?0:1,OPACITY_TIMING),transform:[{translateY:withSpring(isHeaderHidden.get()?-height:0,MODE_CHANGE_PHYSICS)}]};}'};
object2 = {code: "function VoicePanelHeaderTsx12(){const{isHeaderHidden}=this.__closure;return{pointerEvents:isHeaderHidden.get()?'none':'box-none',importantForAccessibility:isHeaderHidden.get()?'no-hide-descendants':'auto',accessibilityElementsHidden:isHeaderHidden.get()};}"};
value = value.memo(VoicePanelHeader);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/header/VoicePanelHeader.tsx');
exports.default = value;
}
function MusicMuteButton_118267({channelId}) { // fn#118267, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:4219, offset: 0x024d3d51, size: 310 bytes, params: 2, frame: 22
var r0;
var defaultImport;
var intl;
var string;
var t;
const speaker = importDefault(dependencyMap[26])(channelId)?.speaker;
const value5 = require(dependencyMap[27]).useStateFromStores([StageMusicStore], function() {
return StageMusicStore.isMuted();
});
const moduleValue2 = require(dependencyMap[28]);
const useShowStageMusicMuteButton = moduleValue2.useShowStageMusicMuteButton;
if (Reflect.apply(useShowStageMusicMuteButton, moduleValue2, [channelId])) {
if (speaker) {
defaultImport = importDefault(dependencyMap[29]);
intl = require(dependencyMap[30]).intl;
string = intl.string;
t = require(dependencyMap[30]).t;
r0 = ((Component) => <Component accessibilityLabel={value5 ? Reflect.apply(string, intl,
[t.ScHlfl]) : Reflect.apply(string, intl,
[t.zqxfrf])} icon={importDefault(value5 ? dependencyMap[31] : dependencyMap[32])} onPress={onPress_118269} />)(defaultImport);
} else {
r0 = null;
}
} else {
r0 = null;
}
return r0;
}
function _fun118270({isHeaderHidden, scrollPosition, focused}) { // fn#118270, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:2078, offset: 0x024d3eca, size: 563 bytes, params: 2, frame: 25
const styles = useStyles();
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useDerivedValue = reanimatedRexportModule.useDerivedValue;
let closure = l_118271;
closure.__closure = {isHeaderHidden: isHeaderHidden, focused: focused, scrollPosition: scrollPosition};
closure.__workletHash = 8127245112238;
closure.__initData = env0_29;
const value2 = Reflect.apply(useDerivedValue, reanimatedRexportModule, [closure]);
const moduleValue2 = reanimatedRexportModule;
const useAnimatedProps = moduleValue2.useAnimatedProps;
closure = c_118272;
closure.__closure = {withSpring: (require(4577) /* metro dependency 4577: spring */).withSpring,
showHeaderBlur: value2};
closure.__workletHash = 10074943135400;
closure.__initData = env0_30;
const value3 = Reflect.apply(useAnimatedProps, moduleValue2, [closure]);
const moduleValue3 = reanimatedRexportModule;
const useAnimatedStyle = moduleValue3.useAnimatedStyle;
closure = u_118273;
closure.__closure = {withSpring: (require(4577) /* metro dependency 4577: spring */).withSpring,
showHeaderBlur: value2, HEADER_CHANGE_PHYSICS: env0_28};
closure.__workletHash = 2825977044105;
closure.__initData = env0_31;
return ((Component) => <Component style={[StyleSheet.absoluteFill, Reflect.apply(useAnimatedStyle, moduleValue3,
[closure])]} pointerEvents="none">{((Component) => <Component style={styles.blurStyles} blurStyle="ultra-thin" blurTheme="dark" animatedProps={value3} />)(importDefault(4563) /* metro dependency 4563: VisualEffectViewAnimated */)}{((Component) => <Component style={styles.strokeContainer}>{((Component) => <Component style={styles.stroke} />)(importDefault(6821) /* metro dependency 6821: NativeView */)}{((Component) => <Component style={styles.strokeAlt} />)(importDefault(6821) /* metro dependency 6821: NativeView */)}</Component>)(importDefault(6821) /* metro dependency 6821: NativeView */)}</Component>)(importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */);
}
function _fun118274() { // fn#118274, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:3405, offset: 0x024d41d4, size: 412 bytes, params: 1, frame: 24
const id = AuthenticationStore.getId();
const binding = env0_4;
const {focused,
controlsSpecs} = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const value4 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(SpeakingStore.isSpeaking(id));
binding.useLayoutEffect(function() {
var closure = _fun118276;
var env0_0 = closure;
closure();
SpeakingStore.addReactChangeListener(closure);
return _fun118277;
}, [id, value4]);
const styles = useStyles();
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useDerivedValue = reanimatedRexportModule.useDerivedValue;
let closure = u_118278;
closure.__closure = {focused: focused, controlsSpecs: controlsSpecs,
VoicePanelControlsModes: VoicePanelControlsModes, speaking: value4};
closure.__workletHash = 5466722752449;
closure.__initData = env0_33;
const value5 = Reflect.apply(useDerivedValue, reanimatedRexportModule, [closure]);
const moduleValue3 = reanimatedRexportModule;
const useAnimatedStyle = moduleValue3.useAnimatedStyle;
closure = __118279;
closure.__closure = {showSpeakingIndicator: value5};
closure.__workletHash = 16177124708898;
closure.__initData = env0_34;
return ((Component) => <Component style={[styles.focusedSpeakingDotWrapper, Reflect.apply(useAnimatedStyle,
moduleValue3,
[closure])]} pointerEvents="none">{((Component) => <Component style={styles.focusedSpeakingDot} />)(importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */)}</Component>)(importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */);
}
function VoicePanelHeader({wrapperOffset, gestureState, layout}) { // fn#118280, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:7284, offset: 0x024d4454, size: 2964 bytes, params: 2, frame: 55
var object2;
var r42;
var r26;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
var string;
var t;
var VoicePanelIconButton;
var object15;
const styles = useStyles();
let binding = env0_4;
const value3 = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const guildId = value3.guildId;
const channelId = value3.channelId;
const channelType = value3.channelType;
const focused = value3.focused;
const env0_3 = focused;
const controlsSpecs = value3.controlsSpecs;
var env0_4 = controlsSpecs;
const mode = value3.mode;
const safeArea = value3.safeArea;
const connected = value3.connected;
const scrollPosition = value3.scrollPosition;
const value4 = (require(4559) /* metro dependency 4559: useIsScreenReaderEnabledNative */).useIsScreenReaderEnabled();
const value5 = (importDefault(15390) /* metro dependency 15390: useIsConnectedToVoiceChannel */)(channelId);
const defaultImport = importDefault(15453) /* metro dependency 15453: MobileGoLiveEntrypointExperiment */;
const useConfig = defaultImport.useConfig;
const treatment = Reflect.apply(useConfig, defaultImport, [{location: 'VoicePanelHeader'}]).treatment;
const value6 = (require(566) /* metro dependency 566: flux */).useStateFromStores([UserStore, RelationshipStore,
ChannelStore, ExperimentStore], _fun118281, [channelId]);
let useState = binding.useState;
const value7 = Reflect.apply(useState, binding, [undefined]);
const binding2 = env0_3;
const value8 = binding2(value7, 2);
const property = value8[0];
const env0_9 = value8[1];
useState = binding.useState;
const value10 = binding2(Reflect.apply(useState, binding, [null]), 2);
const property2 = value10[0];
const env0_10 = value10[1];
const value11 = binding.useCallback(_fun118282, [channelId]);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
let closure = VoicePanelHeaderI;
closure.__closure = {focused: focused};
closure.__workletHash = 7943480174143;
closure.__initData = env0_36;
const closure2 = VoicePanelHeaderF;
closure2.__closure = {runOnJS: reanimatedRexportModule.runOnJS, handleFocusChange: value11};
closure2.__workletHash = 13084116412140;
closure2.__initData = env0_37;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
const useTokenModule = require(3860) /* metro dependency 3860: useToken */;
const useToken = useTokenModule.useToken;
const VOICE_PANEL_GUTTER = (importDefault(697) /* metro dependency 697: native */).modules.mobile.VOICE_PANEL_GUTTER;
const value12 = Reflect.apply(useToken, useTokenModule, [VOICE_PANEL_GUTTER]);
const moduleValue5 = reanimatedRexportModule;
let useDerivedValue = moduleValue5.useDerivedValue;
closure = VoicePanelHeaderHe;
object2 = {calculateVoicePanelHeaderSpecs: importDefault(11799) /* metro dependency 11799: calculateVoicePanelHeaderSpecs */,
safeArea: safeArea, edgeGutter: value12, mode: mode};
object2.VoicePanelModes = VoicePanelModes;
object2.gestureState = gestureState;
object2.connected = connected;
object2.EDGE_GUTTER = EDGE_GUTTER;
closure.__closure = object2;
closure.__workletHash = 13290333964417;
closure.__initData = env0_38;
const value13 = Reflect.apply(useDerivedValue, moduleValue5, [closure]);
const moduleValue6 = reanimatedRexportModule;
let useAnimatedStyle = moduleValue6.useAnimatedStyle;
closure = VoicePanelHeader_e;
object2 = {calculateVoicePanelHeaderSpecs: importDefault(11799) /* metro dependency 11799: calculateVoicePanelHeaderSpecs */,
safeArea: safeArea, edgeGutter: value12, mode: mode, VoicePanelModes: VoicePanelModes, connected: connected,
EDGE_GUTTER: EDGE_GUTTER};
object2.withTiming = (require(4504) /* metro dependency 4504: timing */).withTiming;
binding = env0_25;
object2.OPACITY_TIMING = binding;
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.yOffset = value13;
object2.wrapperOffset = wrapperOffset;
object2.DRAWER_SPRING_PHYSICS_GESTURE_ACTIVE = DRAWER_SPRING_PHYSICS_GESTURE_ACTIVE;
object2.UI_SHOW_HIDE_PHYSICS = UI_SHOW_HIDE_PHYSICS;
closure.__closure = object2;
closure.__workletHash = 11065699618122;
closure.__initData = env0_39;
const value14 = Reflect.apply(useAnimatedStyle, moduleValue6, [closure]);
const moduleValue7 = reanimatedRexportModule;
useDerivedValue = moduleValue7.useDerivedValue;
closure = VoicePanelHeaderPe;
closure.__closure = {controlsSpecs: controlsSpecs, VoicePanelControlsModes: VoicePanelControlsModes,
isScreenReaderEnabled: value4};
closure.__workletHash = 16725581527938;
closure.__initData = env0_40;
const value15 = Reflect.apply(useDerivedValue, moduleValue7, [closure]);
const moduleValue8 = reanimatedRexportModule;
useAnimatedStyle = moduleValue8.useAnimatedStyle;
closure = VoicePanelHeaderSe;
object2 = {calculateVoicePanelHeaderSpecs: importDefault(11799) /* metro dependency 11799: calculateVoicePanelHeaderSpecs */,
safeArea: safeArea, edgeGutter: value12};
object2.withTiming = (require(4504) /* metro dependency 4504: timing */).withTiming;
object2.isHeaderHidden = value15;
object2.OPACITY_TIMING = binding;
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.MODE_CHANGE_PHYSICS = MODE_CHANGE_PHYSICS;
closure.__closure = object2;
closure.__workletHash = 13148362186846;
closure.__initData = env0_41;
const value16 = Reflect.apply(useAnimatedStyle, moduleValue8, [closure]);
const moduleValue9 = reanimatedRexportModule;
const useAnimatedProps = moduleValue9.useAnimatedProps;
closure = VoicePanelHeaderFe;
closure.__closure = {isHeaderHidden: value15};
closure.__workletHash = 4740985143159;
closure.__initData = env0_42;
const value17 = Reflect.apply(useAnimatedProps, moduleValue9, [closure]);
const value18 = (require(15454) /* metro dependency 15454: useCanInviteMembers */).useCanInviteMembers(channelId);
const value19 = (require(15413) /* metro dependency 15413: useInviteMembersCallback */).useInviteMembersCallback(channelId);
const value20 = (importDefault(15455) /* metro dependency 15455: useVoicePanelNavArrowPressed */)();
(require(5286) /* metro dependency 5286: useNavigatorBackPressHandlerNative */).useNavigatorBackPressHandler(value20);
const r9 = property2 != null ? env0_27.LEFT : env0_27.DOWN;
const LEFT = env0_27.LEFT;
if (r9 === LEFT) {
r42 = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['9M6OdC']);
} else {
string = intl.string;
t = (require(1244) /* metro dependency 1244: indexNative */).t;
r42 = value5 ? Reflect.apply(string, intl, [t.RLCTQG]) : Reflect.apply(string, intl, [t['5lPjGj']]);
}
const defaultImport2 = importDefault(15456) /* metro dependency 15456: useStableParticipant */;
const getId = AuthenticationStore.getId;
const value25 = (require(566) /* metro dependency 566: flux */).useStateFromStores([MediaEngineStore], _fun118290,
[defaultImport2(Reflect.apply(getId, AuthenticationStore, []), channelId, guildId)]);
binding = env0_4;
const value26 = binding.useCallback(_fun118292, []);
const value27 = binding.useMemo(_fun118294, [r9]);
const value28 = (require(9293) /* metro dependency 9293: useIsSecureFramesUIEnabled */).useIsSecureFramesUIEnabled({channelId: channelId});
const useIsSecureFramesVerifiedModule = require(9256) /* metro dependency 9256: useIsSecureFramesVerified */;
const useIsUserSecureFramesVerified = useIsSecureFramesVerifiedModule.useIsUserSecureFramesVerified;
let USER = ParticipantTypes.USER;
const value29 = Reflect.apply(useIsUserSecureFramesVerified, useIsSecureFramesVerifiedModule,
[{userId: property2 !== USER ? null : property ?? null, channelId: channelId}]);
const moduleValue16 = useIsSecureFramesVerifiedModule;
const useIsStreamSecureFramesVerified = moduleValue16.useIsStreamSecureFramesVerified;
let STREAM = ParticipantTypes.STREAM;
const value30 = Reflect.apply(useIsStreamSecureFramesVerified, moduleValue16,
[{streamKey: property2 !== STREAM ? null : property ?? null, channelId: channelId}]);
STREAM = ParticipantTypes.STREAM;
const r38 = STREAM === property2 ? value30 : !(ParticipantTypes.USER !== property2) && value29;
const ThemeContextProvider = (require(3868) /* metro dependency 3868: native */).ThemeContextProvider;
const MIDNIGHT = value5 ? ThemeTypes.MIDNIGHT : undefined;
const ReanimatedNativeView = importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */;
const items3 = [styles.headerWrapper, value14];
const env0_322 = ((Component) => <Component isHeaderHidden={value15} scrollPosition={scrollPosition} focused={focused} />)(env0_32);
const r8 = value5 && ((Component) => <Component baseColor={(importDefault(697) /* metro dependency 697: native */).colors.BLACK} minHeight={0} />)(importDefault(14955) /* metro dependency 14955: ThemedHeaderBackgroundGradient */);
const defaultImport5 = ReanimatedNativeView;
USER = ParticipantTypes.USER;
const r12 = property2 !== USER ? null : ((Component) => <Component isHeaderHidden={value15} />)(importDefault(15457) /* metro dependency 15457: VoicePanelHeaderUserState */);
const defaultImport7 = ReanimatedNativeView;
const items6 = [styles.headerOuter, value16];
const value38 = ((Component) => <Component style={styles.leftWrapper} pointerEvents="box-none">{((Component) => <Component icon={importDefault(8709) /* metro dependency 8709 */} accessibilityLabel={r42} onPress={value20} style={value27} />)(importDefault(15388) /* metro dependency 15388: VoicePanelIconButton */)}<ReanimatedNativeView style={styles.headerInner}>{((Component) => <Component />)(importDefault(15459) /* metro dependency 15459: VoicePanelTitleButton */)}{value28 && r38 ? ((ShieldLockIcon) => <ShieldLockIcon size="xs" color={(importDefault(697) /* metro dependency 697: native */).colors.TEXT_SUBTLE} style={styles.shieldIconMargin} />)((require(9322) /* metro dependency 9322: ShieldLockIcon */).ShieldLockIcon) : null}</ReanimatedNativeView></Component>)(importDefault(6821) /* metro dependency 6821: NativeView */);
const defaultImport12 = ReanimatedNativeView;
const items10 = [((Component) => <Component />)(env0_35)];
const ChannelTypes = (require(677) /* metro dependency 677: ChannelTypes */).ChannelTypes;
const GUILD_STAGE_VOICE = ChannelTypes.GUILD_STAGE_VOICE;
items10[1] = channelType === GUILD_STAGE_VOICE && <MusicMuteButton_118267 channelId={channelId} />;
items10[2] = ((Component) => <Component isConnectedToVoiceChannel={value5} channelId={channelId} />)(importDefault(15470) /* metro dependency 15470: VoicePanelHeaderSpeaker */);
if (value18) {
VoicePanelIconButton = importDefault(15388) /* metro dependency 15388: VoicePanelIconButton */;
r26 = <VoicePanelIconButton icon={importDefault(10858) /* metro dependency 10858 */} accessibilityLabel={intl.formatToPlainString((require(1244) /* metro dependency 1244: indexNative */).t['dHHb/2'],
{channelName: value6})} onPress={value19} />;
} else {
r26 = value18;
}
items10[3] = r26;
items10[4] = value25 != null ? ((Component) => <Component icon={importDefault(15480) /* metro dependency 15480 */} onPress={value26} accessibilityLabel={value25} />)(importDefault(15388) /* metro dependency 15388: VoicePanelIconButton */) : null;
const MobileGoLiveEntrypointTreatment = (require(15453) /* metro dependency 15453: MobileGoLiveEntrypointExperiment */).MobileGoLiveEntrypointTreatment;
const SCREENSHARE_REPLACES_CHAT = MobileGoLiveEntrypointTreatment.SCREENSHARE_REPLACES_CHAT;
items10[5] = treatment === SCREENSHARE_REPLACES_CHAT && ((Component) => <Component channelId={channelId} />)(importDefault(15481) /* metro dependency 15481: VoicePanelHeaderChatButton */);
return (
<ThemeContextProvider theme={MIDNIGHT}>
<ReanimatedNativeView
style={items3}
pointerEvents="box-none"
layout={layout}
>
{env0_322}
{r8}
{((Component) => <Component style={styles.headerContentWrapper} pointerEvents="box-none" layout={layout}>{r12}{((Component) => <Component style={items6} animatedProps={value17}>{value38}{((Component) => <Component style={styles.rightWrapper} layout={layout}>{items10}</Component>)(defaultImport12)}</Component>)(defaultImport7)}</Component>)(defaultImport5)}
</ReanimatedNativeView>
</ThemeContextProvider>
);
}
function MusicMuteButton_118267OnPress() { // fn#118269, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:4552, owner: MusicMuteButton_118267.onPress, offset: 0x024d3e9a, size: 48 bytes, params: 1, frame: 11
const value = environment.__proto__;
return (require(10765) /* metro dependency 10765: StageMusicActionCreators */).updateStageMusicMuted(!env0_0);
}
function l_118271() { // fn#118271, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:2181, offset: 0x024d40fd, size: 68 bytes, params: 1, frame: 11
var r1;
var r0;
var value5;
var value;
const value2 = isHeaderHidden.get();
if (value2) {
r0 = !value2;
} else {
value5 = focused.get() != null;
if (value5) {
r1 = value5;
} else {
value = scrollPosition.get();
value = value > 0;
r1 = value;
}
r0 = r1;
}
return r0;
}
function c_118272() { // fn#118272, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:2374, offset: 0x024d4141, size: 75 bytes, params: 1, frame: 13
const object2 = {};
let value = environment.__proto__;
value = require(4577) /* metro dependency 4577: spring */;
object2.blurAmount = value.withSpring(env0_3.get() ? 0.3 : 0);
return object2;
}
function u_118273() { // fn#118273, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:2569, offset: 0x024d418c, size: 72 bytes, params: 1, frame: 15
const object2 = {};
const springModule = require(4577) /* metro dependency 4577: spring */;
object2.opacity = springModule.withSpring(env0_3.get() ? 1 : 0, env1_28);
return object2;
}
function _fun118275() { // fn#118275, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:3549, offset: 0x024d4370, size: 46 bytes, params: 1, frame: 12
const closure = handleChange_118276;
closure();
SpeakingStore.addReactChangeListener(closure);
return function() {
SpeakingStore.removeReactChangeListener(handleChange_118276);
};
}
function u_118278() { // fn#118278, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:3763, offset: 0x024d43e6, size: 78 bytes, params: 1, frame: 11
return focused.get() != null && controlsSpecs.get().mode !== VoicePanelControlsModes.HIDDEN && env0_3.get();
}
function __118279() { // fn#118279, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:3972, offset: 0x024d4434, size: 32 bytes, params: 1, frame: 10
const object2 = {};
object2.opacity = env0_4.get() ? 1 : 0;
return object2;
}
function _fun118281() { // fn#118281, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:7678, offset: 0x024d4fe8, size: 139 bytes, params: 1, frame: 19
var intl;
const value = environment.__proto__;
const channel = ChannelStore.getChannel(channelId);
let r0 = channel != null ? (require(4805) /* metro dependency 4805: useChannelName */).computeChannelName(channel,
UserStore, RelationshipStore) : undefined;
if (r0 == null) {
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
r0 = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.zLZPmk);
}
return r0;
}
function _fun118282(a0) { // fn#118282, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:7941, offset: 0x024d5073, size: 79 bytes, params: 2, frame: 17
var r3;
var value3;
var participant;
const binding = env0_10;
const channelIdBinding = channelId;
const value2 = null;
if (value2 == a0) {
r3 = value2;
} else {
value3 = environment.__proto__;
participant = ChannelRTCStore.getParticipant(channelIdBinding, a0);
r3 = value2 == participant ? value2 : participant.type;
}
binding(r3);
env0_9(a0);
}
function VoicePanelHeaderI() { // fn#118283, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:8112, owner: VoicePanelHeader.I, offset: 0x024d50c2, size: 34 bytes, params: 1, frame: 10
return focused.get()?.id;
}
function VoicePanelHeaderF(a0, a1) { // fn#118284, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:8236, owner: VoicePanelHeader.f, offset: 0x024d50e4, size: 61 bytes, params: 3, frame: 13
var value;
if (a0 !== a1) {
value = environment.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value.runOnJS(env0_11)(a0);
}
}
function VoicePanelHeaderHe() { // fn#118285, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:8507, owner: VoicePanelHeader.he, offset: 0x024d5121, size: 203 bytes, params: 1, frame: 16
var r0;
var gestureStateBinding;
var connectedBinding;
var value6;
var DISMISSED;
var value7;
const value = environment.__proto__;
const value4 = (importDefault(11799) /* metro dependency 11799: calculateVoicePanelHeaderSpecs */)(safeArea.get(),
env0_12);
const value5 = mode.get();
const PIP = VoicePanelModes.PIP;
if (value5 === PIP) {
r0 = -(value4.height + EDGE_GUTTER);
} else {
gestureStateBinding = gestureState;
if (gestureStateBinding.get().active) {
gestureStateBinding = gestureState;
if (gestureStateBinding.get().requiresPop) {
value6 = mode.get();
DISMISSED = VoicePanelModes.DISMISSED;
value7 = 0;
r0 = value6 !== DISMISSED ? value7 : connected.get() ? -(value4.height + EDGE_GUTTER) : value7;
} else {
connectedBinding = connected;
if (connectedBinding.get()) {
r0 = -(value4.height + EDGE_GUTTER);
} else {
value6 = mode.get();
DISMISSED = VoicePanelModes.DISMISSED;
value7 = 0;
r0 = value6 !== DISMISSED ? value7 : connected.get() ? -(value4.height + EDGE_GUTTER) : value7;
}
}
} else {
value6 = mode.get();
DISMISSED = VoicePanelModes.DISMISSED;
value7 = 0;
r0 = value6 !== DISMISSED ? value7 : connected.get() ? -(value4.height + EDGE_GUTTER) : value7;
}
}
return r0;
}
function VoicePanelHeader_e() { // fn#118286, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:8894, owner: VoicePanelHeader._e, offset: 0x024d51ec, size: 434 bytes, params: 1, frame: 19
const defaultImport = importDefault(11799) /* metro dependency 11799: calculateVoicePanelHeaderSpecs */;
const safeAreaBinding = safeArea;
let get = safeAreaBinding.get;
const value4 = defaultImport(Reflect.apply(get, safeAreaBinding, []), env0_12);
const value5 = mode.get();
const PIP = VoicePanelModes.PIP;
const value6 = connected.get();
const height = value4.height;
const r7 = value6 ? height : height - value4.paddingTop + EDGE_GUTTER;
connectedBinding = connected;
get = connectedBinding.get;
const r8 = Reflect.apply(get, connectedBinding, []) ? value4.paddingTop : EDGE_GUTTER;
const object2 = {};
copyDataProperties(object2, value4, undefined);
object2['paddingTop'] = r8;
const value9 = connected.get();
const value10 = 24;
object2['borderTopLeftRadius'] = value9 ? 0 : value10;
connectedBinding = connected;
get = connectedBinding.get;
object2['borderTopRightRadius'] = Reflect.apply(get, connectedBinding, []) ? 0 : value10;
object2['height'] = r7;
const timingModule = require(4504) /* metro dependency 4504: timing */;
object2['opacity'] = timingModule.withTiming(value5 === PIP ? 0 : mode.get() !== VoicePanelModes.DISMISSED ? 1 : 0,
env1_25);
const springModule = require(4577) /* metro dependency 4577: spring */;
const withSpring = springModule.withSpring;
const value17 = env0_13.get();
connectedBinding = connected;
get = connectedBinding.get;
object2['transform'] = [{translateY: Reflect.apply(withSpring, springModule, [value17, Reflect.apply(get,
connectedBinding,
[]) ? UI_SHOW_HIDE_PHYSICS : wrapperOffset.get().gestureActive ? DRAWER_SPRING_PHYSICS_GESTURE_ACTIVE : UI_SHOW_HIDE_PHYSICS])}];
return object2;
}
function VoicePanelHeaderPe() { // fn#118287, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:9654, owner: VoicePanelHeader.pe, offset: 0x024d539e, size: 50 bytes, params: 1, frame: 10
const controlsSpecsBinding = controlsSpecs;
const get = controlsSpecsBinding.get;
const mode = Reflect.apply(get, controlsSpecsBinding, []).mode;
const HIDDEN = VoicePanelControlsModes.HIDDEN;
return mode === HIDDEN && !env0_8;
}
function VoicePanelHeaderSe() { // fn#118288, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:9868, owner: VoicePanelHeader.Se, offset: 0x024d53d0, size: 191 bytes, params: 1, frame: 18
const height = (importDefault(11799) /* metro dependency 11799: calculateVoicePanelHeaderSpecs */)(safeArea.get(),
env0_12).height;
const object3 = {};
const timingModule = require(4504) /* metro dependency 4504: timing */;
object3.opacity = timingModule.withTiming(env0_14.get() ? 0 : 1, env1_25);
const object4 = {};
const springModule = require(4577) /* metro dependency 4577: spring */;
object4.translateY = springModule.withSpring(env0_14.get() ? -height : 0, MODE_CHANGE_PHYSICS);
object3.transform = [object4];
return object3;
}
function VoicePanelHeaderFe() { // fn#118289, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:10311, owner: VoicePanelHeader.fe, offset: 0x024d548f, size: 87 bytes, params: 1, frame: 11
const object2 = {};
object2.pointerEvents = env0_14.get() ? 'none' : 'box-none';
object2.importantForAccessibility = env0_14.get() ? 'no-hide-descendants' : 'auto';
object2.accessibilityElementsHidden = env0_14.get();
return object2;
}
function _fun118290() { // fn#118290, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:10912, offset: 0x024d54e6, size: 520 bytes, params: 1, frame: 17
var facing;
var r2;
var moduleValue2;
var value4;
var property;
var value6;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
var videoDevices;
if (env0_16 != null) {
var value3 = undefined;
var moduleValue = require(15456) /* metro dependency 15456: useStableParticipant */;
if (moduleValue.isStableUserParticipant(env0_16)) {
moduleValue2 = require(15456) /* metro dependency 15456: useStableParticipant */;
if (moduleValue2.stableParticipantHasVideo(env0_16)) {
videoDevices = MediaEngineStore.getVideoDevices();
value4 = global.Object.keys(videoDevices);
if (value4.length < 2) {
return undefined;
}
property = videoDevices[MediaEngineStore.getVideoDeviceId()];
facing = property == null ? value3 : property.facing;
value6 = value4.find(_fun118291);
r2 = value6 != null ? videoDevices[value6] == null ? value3 : videoDevices[value6].facing : value3;
return facing == null || r2 == null ? intl.string(t['t9eQ/g']) : facing !== 'back' ? facing !== 'front' ? intl.string(t['t9eQ/g']) : r2 === 'back' ? intl.string(t['7YZ/Si']) : intl.string(t['t9eQ/g']) : r2 === 'front' ? intl.string(t['/R1SBx']) : facing !== 'front' ? intl.string(t['t9eQ/g']) : r2 === 'back' ? intl.string(t['7YZ/Si']) : intl.string(t['t9eQ/g']);
}
return undefined;
}
}
}
function _fun118292() { // fn#118292, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:11478, offset: 0x024d56ee, size: 112 bytes, params: 1, frame: 14
var environment;
const value = environment.__proto__;
const env0_0 = MediaEngineStore.getVideoDeviceId();
const Object = global.Object;
const keys = Object.keys;
const getVideoDevices = MediaEngineStore.getVideoDevices;
const value3 = Reflect.apply(keys, Object, [Reflect.apply(getVideoDevices, MediaEngineStore, [])]).find(_fun118293);
if (value3 != null) {
(importDefault(8899) /* metro dependency 8899: AudioActionCreators */).setVideoDevice(value3);
}
}
function _fun118294() { // fn#118294, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:11618, offset: 0x024d575e, size: 59 bytes, params: 1, frame: 5
const binding = env0_15;
const value = environment.__proto__;
const LEFT = env1_27.LEFT;
return {transform: [{rotateZ: binding !== LEFT ? '0deg' : '90deg'}]};
}
function handleChange_118276() { // fn#118276, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15649:3571, offset: 0x024d439e, size: 43 bytes, params: 1, frame: 13
const binding = env1_3;
binding.set(SpeakingStore.isSpeaking(env1_0));
}
@@ -0,0 +1,64 @@
/* Metro module 15481; source: modules/voice_panel/native/header/VoicePanelHeaderChatButton.tsx; dependencies: [31, 661, 33, 4501, 697, 1239, 15482, 6821, 15388, 6682, 1244, 2] */
function _fun118471(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118471, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15678:6, offset: 0x024dc8f6, size: 327 bytes, params: 8, frame: 22
var object3;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(661) /* metro dependency 661: Constants */).ComponentActions;
let 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;
object3 = {badgeContainer: {'position': 'absolute', 'top': -2, 'right': -2}};
const object4 = {'width': 8, 'height': 8};
object4.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object3.badge = object4;
const RED_400 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.RED_400;
object3.redBG = {backgroundColor: RED_400};
const WHITE = (importDefault(697) /* metro dependency 697: native */).colors.WHITE;
object3.whiteBG = {backgroundColor: WHITE};
const env0_7 = Reflect.apply(createStyles, value, [object3]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/header/VoicePanelHeaderChatButton.tsx');
exports.default = VoicePanelHeaderChatButton;
}
function VoicePanelHeaderChatButton({channelId}) { // fn#118472, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15678:510, offset: 0x024dca3d, size: 385 bytes, params: 2, frame: 28
var r5;
var value;
const styles = useStyles();
const value2 = env0_3.useCallback(function() {
var ComponentDispatch = require(dependencyMap[5]).ComponentDispatch;
ComponentDispatch.dispatch(ComponentActions.VOICE_PANEL_OPEN_CHAT_TAB);
}, []);
const value3 = (importDefault(15482) /* metro dependency 15482: useChatBadge */)(channelId);
const r12 = value3 === 'mention' ? styles.redBG : styles.whiteBG;
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const VoicePanelIconButton = importDefault(15388) /* metro dependency 15388: VoicePanelIconButton */;
const object = {};
const ChatIcon = (require(6682) /* metro dependency 6682: ChatIcon */).ChatIcon;
const WHITE = (importDefault(697) /* metro dependency 697: native */).colors.WHITE;
object.icon = <ChatIcon color={WHITE} size="sm" />;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object.accessibilityLabel = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['5KxXrK']);
object.onPress = value2;
const voicePanelIconButton = <VoicePanelIconButton {...object} />;
const value5 = value3 != null;
if (value5) {
value = NativeView;
value = ((Component) => <Component style={styles.badgeContainer}>{((Component) => <Component style={[styles.badge,
r12]} />)(importDefault(6821) /* metro dependency 6821: NativeView */)}</Component>)(value);
r5 = value;
} else {
r5 = value5;
}
return (
<NativeView>
{voicePanelIconButton}
{r5}
</NativeView>
);
}
@@ -0,0 +1,9 @@
/* Metro module 9240; source: modules/voice_panel/native/header/VoicePanelHeaderConstants.tsx; dependencies: [2] */
function _fun72246(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72246, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9425:6, offset: 0x01d3fb57, size: 98 bytes, params: 8, frame: 15
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/header/VoicePanelHeaderConstants.tsx');
exports.VOICE_PANEL_SETTINGS_KEY = 'voice-panel-settings-action-sheet';
exports.VOICE_PANEL_AUDIO_OUTPUT_ACTION_SHEET_KEY = 'VoicePanelAudioOutputActionSheet';
}
@@ -0,0 +1,432 @@
/* Metro module 15470; source: modules/voice_panel/native/header/VoicePanelHeaderSpeaker.tsx; dependencies: [29, 31, 27, 15471, 4295, 15472, 9229, 1379, 4296, 661, 33, 15474, 15447, 9228, 9438, 9325, 632, 9436, 9324, 15478, 477, 9239, 9230, 1244, 9236, 9238, 15479, 9326, 3968, 1365, 6821, 15388, 12764, 2] */
function _fun118397(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118397, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15667:6, offset: 0x024da3bc, size: 398 bytes, params: 8, frame: 19
const env0_0 = require;
const _arrayLikeToArray_118400 = 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 env0_3 = ['ref'];
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_4 = importDefault(29) /* metro dependency 29 */;
let value = importAll(31) /* metro dependency 31 */;
const env0_6 = (require(27) /* metro dependency 27 */).NativeModules;
const env0_7 = (require(15471) /* metro dependency 15471: ConsoleVoiceUpsellStore */).setVoiceUpsellDismissed;
const gameConsoleStore = importDefault(4295) /* metro dependency 4295: GameConsoleStore */;
const stageChannelAudioStore = importDefault(15472) /* metro dependency 15472: StageChannelAudioStore */;
const audioRouteStoreNative = importDefault(9229) /* metro dependency 9229: AudioRouteStoreNative */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const sessionsStore = importDefault(4296) /* metro dependency 4296: SessionsStore */;
const env0_13 = (require(661) /* metro dependency 661: Constants */).PlatformTypes;
let value2 = require(33) /* metro dependency 33 */;
const env0_14 = value2.jsx;
const env0_15 = value2.Fragment;
const env0_16 = value2.jsxs;
const env0_17 = [];
const env0_18 = value.memo(function({targetRef, canShowTooltip}) {
importDefault(dependencyMap[11])(targetRef, canShowTooltip);
return null;
});
value = value.memo(VoicePanelHeaderSpeaker);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/header/VoicePanelHeaderSpeaker.tsx');
exports.default = value;
}
function _createForOfIteratorHelperLoose_118398(a0, a1) { // fn#118398, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15667:312, offset: 0x024da54a, 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 _fun118399;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_118400(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_118400(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_118400(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun118399;
}
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 VoicePanelHeaderSpeaker({isConnectedToVoiceChannel, channelId, style}) { // fn#118402, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15667:1325, offset: 0x024da6f0, size: 822 bytes, params: 2, frame: 27
var moduleValue6;
const closure = children_118403;
const value2 = (importDefault(15447) /* metro dependency 15447: useControlsLock */)();
const value3 = (require(9228) /* metro dependency 9228: CallsUtils */).useMaskedSpeakerStates();
const toggleAudio = value3.toggleAudio;
const env0_5 = value3.routeSource;
const env0_6 = value3.isAudioRouteEnabled;
const value4 = (importDefault(9438) /* metro dependency 9438: useIsVideoMode */)();
const env0_8 = (importDefault(9325) /* metro dependency 9325: useVoiceStateForRemoteSession */)();
const awaitingRemoteSessionInfo = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([GameConsoleStore],
function() {
return GameConsoleStore.getAwaitingRemoteSessionInfo();
});
const env0_10 = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([StageChannelAudioStore],
function() {
return StageChannelAudioStore.getQueueAudioSwap();
});
const sessionById = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([SessionsStore],
_fun118406);
let binding = env0_5;
const env0_12 = binding.useMemo(_fun118407, [awaitingRemoteSessionInfo, sessionById]);
const value5 = (importDefault(9324) /* metro dependency 9324: useGameConsoleAccounts */)();
const value6 = value5.length > 0;
const value7 = (importDefault(15478) /* metro dependency 15478: useCanConnect */)(channelId);
const r4 = value7.canConnect && !value7.isAtMaxCapacity && (isConnectedToVoiceChannel || value6);
binding = env0_5;
const env0_15 = binding.useCallback(_fun118408, [channelId, isConnectedToVoiceChannel, toggleAudio]);
if (r4) {
moduleValue6 = require(477) /* metro dependency 477: PlatformUtils */;
return moduleValue6.isAndroid() ? closure() : value6 ? <>{((Component) => <Component targetRef={binding.useRef(null)} canShowTooltip={isConnectedToVoiceChannel} />)(env0_18)}{((MenuPopout) => <MenuPopout menuItems={binding.useMemo(_fun118410,
[value5, channelId, isConnectedToVoiceChannel,
(require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([AudioRouteStoreNative],
function() {
return AudioRouteStoreNative.getCurrentRouteType();
}), value4])} position="bottom" align="end" onRequestOpen={binding.useCallback(_fun118417,
[value2])} onRequestClose={value2.unlock}>{closure}</MenuPopout>)((require(12764) /* metro dependency 12764: MenuPopout */).MenuPopout)}</> : closure();
}
return null;
}
function VoicePanelHeaderSpeakerChildren(a0) { // fn#118403, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15667:3561, owner: VoicePanelHeaderSpeaker.children, offset: 0x024daa26, size: 373 bytes, params: 2, frame: 25
const r2 = a0 ?? ({onPress: env0_15, ref: undefined});
const ref = r2.ref;
value = environment.__proto__;
const binding = env1_4;
const value2 = undefined;
const value3 = binding(r2, env1_3);
const jsxRuntimeEnv1_15Binding = jsxRuntimeEnv1_15;
const env1_182 = ((Component) => <Component targetRef={env0_17} canShowTooltip={env0_14 && isConnectedToVoiceChannel} />)(env1_18);
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const defaultImportProps = {style: style, ref: env0_17};
const VoicePanelIconButton = importDefault(15388) /* metro dependency 15388: VoicePanelIconButton */;
const defaultImport2Props = {ref: ref, ...value3};
defaultImport2Props['disabled'] = queueAudioSwap;
defaultImport2Props['overrideVariant'] = isConnectedToVoiceChannel && isAudioRouteEnabled ? 'primary-overlay' : value2;
defaultImport2Props['loading'] = awaitingRemoteSessionInfo != null;
defaultImport2Props['icon'] = env0_12 ?? routeSource;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
defaultImport2Props['accessibilityLabel'] = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.dnI0AL);
return (
<>
{env1_182}
<NativeView {...defaultImportProps}>
<VoicePanelIconButton {...defaultImport2Props} />
</NativeView>
</>
);
}
function _fun118406() { // fn#118406, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15667:1720, offset: 0x024dabc3, size: 62 bytes, params: 1, frame: 14
const value = environment.__proto__;
return SessionsStore.getSessionById(env0_8?.sessionId ?? '');
}
function _fun118407() { // fn#118407, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15667:1814, offset: 0x024dac01, size: 113 bytes, params: 1, frame: 14
var r0;
var value;
const awaitingRemoteSessionInfoBinding = awaitingRemoteSessionInfo;
const value2 = null;
const value3 = undefined;
const type = value2 == awaitingRemoteSessionInfoBinding ? value3 : awaitingRemoteSessionInfo.type;
const r2 = value2 != type ? type : value2 == sessionById || value2 == sessionById.clientInfo ? value3 : sessionById.clientInfo.os;
if (value2 != r2) {
value = environment.__proto__;
value = (importDefault(9436) /* metro dependency 9436: getConsoleIcon */)(r2);
r0 = value;
} else {
r0 = value2;
}
return r0;
}
function _fun118408() { // fn#118408, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15667:2056, offset: 0x024dac72, size: 106 bytes, params: 1, frame: 14
let value = environment.__proto__;
const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */;
if (platformUtilsModule.isAndroid()) {
value = require(9239) /* metro dependency 9239: showAudioOutputSelector */;
value.showAudioOutputSelector(channelId, isConnectedToVoiceChannel);
} else {
toggleAudio(channelId, isConnectedToVoiceChannel);
}
}
function _fun118410() { // fn#118410, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15667:2219, offset: 0x024dacef, size: 571 bytes, params: 1, frame: 20
var environment;
var r4;
var r3;
var items2;
var binding;
var currentRouteTypeBinding;
const RouteTypes = (require(9230) /* metro dependency 9230: VoiceCallTypes */).RouteTypes;
var SPEAKER;
var value3;
var push;
var object4;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
var string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
var gvQIzx;
var RECEIVER;
var value4;
var object5;
var wwTN1g;
var object6;
var dnI0AL;
var closure;
var value5;
var done;
var value6;
var value7;
let value = environment.__proto__;
const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */;
if (!platformUtilsModule.isAndroid()) {
reducibleJoin13: while (true) {
if (env0_13.length !== 0) {
items2 = [];
var env0_0 = items2;
binding = env0_7;
reducibleJoin4: while (true) {
if (binding) {
r4 = binding;
break reducibleJoin4;
}
currentRouteTypeBinding = currentRouteType;
SPEAKER = RouteTypes.SPEAKER;
value3 = currentRouteTypeBinding !== SPEAKER;
r4 = value3;
break reducibleJoin4;
}
reducibleJoin6: while (true) {
if (r4) {
break reducibleJoin6;
}
push = items2.push;
object4 = {};
string = intl.string;
gvQIzx = t.gvQIzx;
object4.label = Reflect.apply(string, intl, [gvQIzx]);
object4.iconSource = importDefault(9236) /* metro dependency 9236 */;
object4.showIconFirst = false;
object4.action = action_118411;
Reflect.apply(push, items2, [object4]);
break reducibleJoin6;
}
binding = env0_7;
reducibleJoin8: while (true) {
if (binding) {
r4 = binding;
break reducibleJoin8;
}
currentRouteTypeBinding = currentRouteType;
RECEIVER = RouteTypes.RECEIVER;
value4 = currentRouteTypeBinding !== RECEIVER;
r4 = value4;
break reducibleJoin8;
}
reducibleJoin10: while (true) {
if (r4) {
break reducibleJoin10;
}
push = items2.push;
object5 = {};
string = intl.string;
wwTN1g = t.wwTN1g;
object5.label = Reflect.apply(string, intl, [wwTN1g]);
object5.iconSource = importDefault(9238) /* metro dependency 9238 */;
object5.showIconFirst = false;
object5.action = action_118412;
Reflect.apply(push, items2, [object5]);
break reducibleJoin10;
}
push = items2.push;
object6 = {};
string = intl.string;
dnI0AL = t.dnI0AL;
object6.label = Reflect.apply(string, intl, [dnI0AL]);
object6.iconSource = importDefault(15479) /* metro dependency 15479 */;
object6.showIconFirst = false;
object6.action = action_118413;
Reflect.apply(push, items2, [object6]);
closure = _loop_118414;
value = _createForOfIteratorHelperLoose_118398(env0_13);
value5 = value();
done = value5.done;
if (!done) {
r3 = value5;
reducibleLoop11: while (true) {
value6 = r3.value;
closure(value6);
value7 = value();
done = value7.done;
if (done) {
break reducibleLoop11;
}
r3 = value7;
continue reducibleLoop11;
}
}
return items2;
}
break reducibleJoin13;
}
}
return env1_17;
}
function _fun118417() { // fn#118417, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15667:3401, offset: 0x024db133, size: 90 bytes, params: 1, frame: 15
const dismissibleContentUnsafeUtilsModule = require(3968) /* metro dependency 3968: DismissibleContentUnsafeUtils */;
const UNSAFE_markDismissibleContentAsDismissed = dismissibleContentUnsafeUtilsModule.UNSAFE_markDismissibleContentAsDismissed;
const DismissibleContent = (require(1365) /* metro dependency 1365: dismissible_content */).DismissibleContent;
const DONUT_MOBILE_NUX = DismissibleContent.DONUT_MOBILE_NUX;
Reflect.apply(UNSAFE_markDismissibleContentAsDismissed, dismissibleContentUnsafeUtilsModule, [DONUT_MOBILE_NUX]);
setVoiceUpsellDismissed(true);
env0_3.lock();
}
function action_118411() { // fn#118411, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15667:2418, offset: 0x024daf2a, size: 39 bytes, params: 1, frame: 12
const value = environment.__proto__.__proto__;
const AudioRoutePicker = NativeModules.AudioRoutePicker;
return AudioRoutePicker?.toggleSpeaker(false);
}
function action_118412() { // fn#118412, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15667:2633, offset: 0x024daf51, size: 39 bytes, params: 1, frame: 12
const value = environment.__proto__.__proto__;
const AudioRoutePicker = NativeModules.AudioRoutePicker;
return AudioRoutePicker?.toggleSpeaker(true);
}
function action_118413() { // fn#118413, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15667:2810, offset: 0x024daf78, size: 50 bytes, params: 1, frame: 14
let value = environment.__proto__.__proto__;
value = require(9239) /* metro dependency 9239: showAudioOutputSelector */;
value.showAudioOutputSelector(channelId, isConnectedToVoiceChannel);
}
function _loop_118414(a0) { // fn#118414, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15667:2873, offset: 0x024dafaa, size: 318 bytes, params: 2, frame: 20
var environment;
var binding;
var push;
var object2;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const env0_0 = a0;
let type = a0.type;
const value = environment.__proto__.__proto__;
const XBOX = PlatformTypes.XBOX;
if (type === XBOX) {
binding = env0_0;
push = binding.push;
object2 = {};
object2.label = intl.string(t['qVE/VF']);
object2.iconSource = (importDefault(9436) /* metro dependency 9436: getConsoleIcon */)(a0.type);
object2.showIconFirst = false;
object2.action = action_118415;
Reflect.apply(push, binding, [object2]);
}
type = a0.type;
const PLAYSTATION = PlatformTypes.PLAYSTATION;
if (type === PLAYSTATION) {
binding = env0_0;
push = binding.push;
object2 = {};
object2.label = intl.string(t.vzfxmY);
object2.iconSource = (importDefault(9436) /* metro dependency 9436: getConsoleIcon */)(a0.type);
object2.showIconFirst = false;
object2.action = action_118416;
Reflect.apply(push, binding, [object2]);
}
}
function _loop_118414Action() { // fn#118415, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15667:3013, owner: _loop_118414.action, offset: 0x024db0e8, size: 75 bytes, params: 1, frame: 13
const value = environment.__proto__.__proto__.__proto__;
const channel = ChannelStore.getChannel(channelId);
if (channel != null) {
(require(9326) /* metro dependency 9326: useOnConnectToConsole */).onConnectToConsole(channel, env0_0);
}
}
@@ -0,0 +1,257 @@
/* Metro module 15457; source: modules/voice_panel/native/header/VoicePanelHeaderUserState.tsx; dependencies: [31, 4606, 33, 4017, 8554, 4501, 697, 15458, 15456, 9244, 6821, 11794, 566, 4504, 2] */
function _fun118311(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118311, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15654:6, offset: 0x024d60eb, size: 470 bytes, params: 8, frame: 25
var object3;
const env0_0 = require;
const _arrayLikeToArray_118314 = 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 closure = useVoicePanelHeaderUserStateIcons;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const channelRTCStore = importDefault(4606) /* metro dependency 4606: ChannelRTCStore */;
const env0_5 = (require(33) /* metro dependency 33 */).jsx;
const reanimatedRexport = importDefault(4017) /* metro dependency 4017: ReanimatedRexport */;
const createAnimatedComponent = reanimatedRexport.createAnimatedComponent;
const BackgroundBlurView = (require(8554) /* metro dependency 8554: native */).BackgroundBlurView;
const env0_6 = Reflect.apply(createAnimatedComponent, reanimatedRexport, [BackgroundBlurView]);
object3 = {duration: 100};
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object3 = {};
const object5 = {'position': 'absolute', 'top': 0, 'left': 0, 'borderRadius': null, 'padding': 6};
object5.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object3.container = object5;
object3.iconContainer = {flexDirection: 'row'};
const object6 = {'width': 20, 'height': 20, 'borderRadius': null, 'alignItems': 'center',
'justifyContent': 'center'};
object6.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object3.floatingIconWrapper = object6;
const WHITE = (importDefault(697) /* metro dependency 697: native */).colors.WHITE;
object3.floatingIcon = {'width': 12, 'height': 12, tintColor: WHITE};
object3.leftMargin = {marginLeft: 4};
const env0_8 = Reflect.apply(createStyles, createStylesModule, [object3]);
object3 = {code: 'function VoicePanelHeaderUserStateTsx1(){const{withTiming,isHeaderHidden,OPACITY_TIMING}=this.__closure;return{opacity:withTiming(isHeaderHidden.get()?1:0,OPACITY_TIMING)};}'};
value = value.memo(VoicePanelHeaderUserState);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/header/VoicePanelHeaderUserState.tsx');
exports.default = value;
exports.useVoicePanelHeaderUserStateIcons = closure;
}
function _createForOfIteratorHelperLoose_118312(a0, a1) { // fn#118312, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15654:136, offset: 0x024d62c1, 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 _fun118313;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_118314(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_118314(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_118314(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun118313;
}
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 useVoicePanelHeaderUserStateIcons(a0, a1, a2) { // fn#118315, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15654:1490, offset: 0x024d6435, size: 595 bytes, params: 4, frame: 31
var r2;
var leftMargin;
var value5;
const VoicePanelCardUserStateIconType = (require(15458) /* metro dependency 15458: useVoicePanelCardUserStateIcons */).VoicePanelCardUserStateIconType;
var USER_VIDEO_ICON;
var push;
var jsxRuntimeEnv0_5Binding;
const BackgroundBlurView = (require(8554) /* metro dependency 8554: native */).BackgroundBlurView;
var object;
var floatingIconWrapper;
var jsxRuntimeEnv0_5Binding2;
var VideoIcon;
var videoIconState;
var MUTE_DEAFEN_ICON;
var object2;
var withLeftMargin;
var jsxRuntimeEnv0_5Binding3;
var MuteDeafenIcon;
var muteDeafenIconState;
var value6;
const value2 = undefined;
const styles = useStyles();
const items2 = [];
const _createForOfIteratorHelperLoose_118312Binding = _createForOfIteratorHelperLoose_118312;
const defaultImport = importDefault(15458) /* metro dependency 15458: useVoicePanelCardUserStateIcons */;
let type = a0 == null ? value2 : a0.type;
const useStableParticipantModule = require(15456) /* metro dependency 15456: useStableParticipant */;
const value3 = _createForOfIteratorHelperLoose_118312Binding(defaultImport(type,
useStableParticipantModule.isStableParticipantWithUser(a0) ? a0.user.id : value2, a1));
const value4 = value3();
let done = value4.done;
if (!done) {
r2 = value4;
while (true) {
value5 = r2.value;
type = value5.type;
USER_VIDEO_ICON = VoicePanelCardUserStateIconType.USER_VIDEO_ICON;
if (type === USER_VIDEO_ICON) {
push = items2.push;
jsxRuntimeEnv0_5Binding = jsxRuntimeEnv0_5;
var backgroundBlurViewProps = {blurTheme: 'dark', style: styles.floatingIconWrapper};
jsxRuntimeEnv0_5Binding2 = jsxRuntimeEnv0_5;
VideoIcon = (require(9244) /* metro dependency 9244: VoiceStateIcons */).VideoIcon;
videoIconState = value5.videoIconState;
Reflect.apply(push, items2,
[<BackgroundBlurView {...backgroundBlurViewProps} key="video"><VideoIcon style={styles.floatingIcon} state={videoIconState} /></BackgroundBlurView>]);
}
type = value5.type;
MUTE_DEAFEN_ICON = VoicePanelCardUserStateIconType.MUTE_DEAFEN_ICON;
if (type !== MUTE_DEAFEN_ICON) {
continue;
}
push = items2.push;
jsxRuntimeEnv0_5Binding = jsxRuntimeEnv0_5;
object2 = {blurTheme: 'dark'};
floatingIconWrapper = styles.floatingIconWrapper;
withLeftMargin = value5.withLeftMargin;
if (!withLeftMargin) {
leftMargin = value2;
continue;
}
leftMargin = styles.leftMargin;
object2.style = [floatingIconWrapper, leftMargin];
jsxRuntimeEnv0_5Binding3 = jsxRuntimeEnv0_5;
MuteDeafenIcon = (require(9244) /* metro dependency 9244: VoiceStateIcons */).MuteDeafenIcon;
muteDeafenIconState = value5.muteDeafenIconState;
Reflect.apply(push, items2,
[<BackgroundBlurView {...object2} key="mute-deafen"><MuteDeafenIcon style={styles.floatingIcon} state={muteDeafenIconState} /></BackgroundBlurView>]);
value6 = value3();
done = value6.done;
if (done) {
break;
}
r2 = value6;
continue;
}
}
if (items2.length !== 0) {
return ((Component) => <Component style={[styles.iconContainer,
a2]}>{items2}</Component>)(importDefault(6821) /* metro dependency 6821: NativeView */);
}
return value2;
}
function VoicePanelHeaderUserState({isHeaderHidden}) { // fn#118316, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15654:2525, offset: 0x024d6688, size: 317 bytes, params: 2, frame: 24
const {channelId,
guildId} = env0_3.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const styles = useStyles();
const fluxModule = require(566) /* metro dependency 566: flux */;
const useStateFromStores = fluxModule.useStateFromStores;
const value4 = useVoicePanelHeaderUserStateIcons((importDefault(15456) /* metro dependency 15456: useStableParticipant */)(Reflect.apply(useStateFromStores,
fluxModule, [[ChannelRTCStore], _fun118317]), channelId, guildId), guildId);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
const closure = VoicePanelHeaderUserStateS;
closure.__closure = {withTiming: (require(4504) /* metro dependency 4504: timing */).withTiming,
isHeaderHidden: isHeaderHidden, OPACITY_TIMING: env0_7};
closure.__workletHash = 7032221979181;
closure.__initData = env0_9;
return value4 == null ? null : ((Component) => <Component blurTheme="dark" style={[styles.container,
Reflect.apply(useAnimatedStyle, reanimatedRexportModule,
[closure])]} pointerEvents="none">{value4}</Component>)(env0_6);
}
function _fun118317() { // fn#118317, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15654:2679, offset: 0x024d67c5, size: 43 bytes, params: 1, frame: 11
const value = environment.__proto__;
return ChannelRTCStore.getSelectedParticipant(channelId)?.id;
}
function VoicePanelHeaderUserStateS() { // fn#118318, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15654:2836, owner: VoicePanelHeaderUserState.s, offset: 0x024d67f0, size: 72 bytes, params: 1, frame: 15
const object2 = {};
const timingModule = require(4504) /* metro dependency 4504: timing */;
object2.opacity = timingModule.withTiming(isHeaderHidden.get() ? 1 : 0, env1_7);
return object2;
}
@@ -0,0 +1,23 @@
/* Metro module 15461; source: modules/voice_panel/native/header/VoicePanelSettingsActionCreators.tsx; dependencies: [4080, 15462, 1962, 2] */
function _fun118344(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118344, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15658:6, offset: 0x024d7d41, size: 130 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/header/VoicePanelSettingsActionCreators.tsx');
exports.VOICE_PANEL_SETTINGS_ACTION_SHEET_KEY = 'VoicePanelSettingsActionSheet';
exports.closeVoicePanelSettingsActionSheet = closeVoicePanelSettingsActionSheet;
exports.openVoicePanelSettingsActionSheet = openVoicePanelSettingsActionSheet;
}
function closeVoicePanelSettingsActionSheet() { // fn#118345, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15658:313, offset: 0x024d7dc3, size: 43 bytes, params: 1, frame: 12
(importDefault(4080) /* metro dependency 4080: ActionSheetActionCreators */).hideActionSheet('VoicePanelSettingsActionSheet');
}
function openVoicePanelSettingsActionSheet(a0, a1) { // fn#118346, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15658:423, offset: 0x024d7dee, size: 95 bytes, params: 3, frame: 16
const defaultImport = importDefault(dependencyMap[0]);
const openLazy = defaultImport.openLazy;
let value = require(dependencyMap[2]);
value = value(dependencyMap[1], dependencyMap.paths);
Reflect.apply(openLazy, defaultImport, [value, 'VoicePanelSettingsActionSheet', {guildId: a0, channelId: a1}]);
}
@@ -0,0 +1,29 @@
/* Metro module 15462; source: modules/voice_panel/native/header/VoicePanelSettingsActionSheet.tsx; dependencies: [31, 33, 4501, 6275, 6277, 6618, 15463, 2] */
function _fun118347(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118347, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15659:6, offset: 0x024d7e4d, size: 190 bytes, params: 8, frame: 21
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const env0_3 = (require(33) /* metro dependency 33 */).jsx;
const env0_4 = (require(4501) /* metro dependency 4501: createStyles */).createStyles({wrapper: {gap: 24}});
value = value.memo(VoicePanelSettingsActionSheet);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/header/VoicePanelSettingsActionSheet.tsx');
exports.default = value;
}
function VoicePanelSettingsActionSheet({guildId, channelId}) { // fn#118348, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15659:177, offset: 0x024d7f0b, size: 190 bytes, params: 2, frame: 23
const styles = useStyles();
const BottomSheet = (require(6275) /* metro dependency 6275: BottomSheetNative */).BottomSheet;
const BottomSheetScrollView = (require(6277) /* metro dependency 6277 */).BottomSheetScrollView;
const SafeAreaPaddingView = (require(6618) /* metro dependency 6618: SafeAreaView */).SafeAreaPaddingView;
return (
<BottomSheet startExpanded scrollable>
<BottomSheetScrollView>
<SafeAreaPaddingView bottom style={styles.wrapper}>
{((Component) => <Component guildId={guildId} channelId={channelId} />)(importDefault(15463) /* metro dependency 15463: VoicePanelSettingsOverview */)}
</SafeAreaPaddingView>
</BottomSheetScrollView>
</BottomSheet>
);
}
@@ -0,0 +1,547 @@
/* Metro module 15463; source: modules/voice_panel/native/header/VoicePanelSettingsOverview.tsx; dependencies: [31, 1378, 4606, 7730, 1226, 1379, 4259, 3784, 1878, 4300, 661, 4299, 9277, 33, 4501, 697, 566, 15464, 4805, 9293, 9256, 6821, 4573, 9322, 1244, 6705, 12, 3857, 15461, 9212, 6238, 6242, 13957, 8151, 6243, 694, 6808, 3829, 8899, 7712, 8148, 10813, 4080, 15465, 1962, 9279, 9298, 15466, 15454, 15413, 11319, 9243, 15467, 7002, 15468, 9248, 15469, 9759, 10793, 10859, 10858, 2] */
function _fun118349(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118349, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:6, offset: 0x024d7fc9, size: 642 bytes, params: 8, frame: 25
const env0_0 = require;
const _arrayLikeToArray_118352 = 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 closure = VoicePanelSettingsOverviewHeader;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const embeddedActivitiesStore = importDefault(1378) /* metro dependency 1378: EmbeddedActivitiesStore */;
const channelRTCStore = importDefault(4606) /* metro dependency 4606: ChannelRTCStore */;
const channelCallLifecycleStore = importDefault(7730) /* metro dependency 7730: ChannelCallLifecycleStore */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const mediaEngineStore = importDefault(4259) /* metro dependency 4259: MediaEngineStore */;
const permissionStore = importDefault(3784) /* metro dependency 3784: PermissionStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const sortedVoiceStateStore = importDefault(4300) /* metro dependency 4300: SortedVoiceStateStore */;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_13 = constantsModule.AnalyticsSections;
const env0_14 = constantsModule.Permissions;
const env0_15 = constantsModule.RPC_APPLICATION_LOGGING_CATEGORY;
const env0_16 = (require(4299) /* metro dependency 4299: CallConstants */).isStreamParticipant;
const env0_17 = (require(9277) /* metro dependency 9277: SecureFramesConstants */).SECURE_FRAMES_CALL_VERIFICATION_BOTTOM_SHEET_KEY;
let value3 = require(33) /* metro dependency 33 */;
const env0_18 = value3.jsx;
const env0_19 = value3.jsxs;
const env0_20 = value3.Fragment;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
const object = {'flexDirection': 'row', 'alignItems': 'center', 'backgroundColor': null, 'borderRadius': null,
'marginTop': 8, 'padding': 4, 'gap': 4};
const BACKGROUND_SURFACE_HIGH = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_SURFACE_HIGH;
object.backgroundColor = BACKGROUND_SURFACE_HIGH;
object.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
const env0_21 = Reflect.apply(createStyles, createStylesModule, [{headerContainer: {alignItems: 'center'},
channelTitleWrapper: {'flexDirection': 'row', 'alignItems': 'center', 'justifyContent': 'center',
'marginTop': 8}, channelTitle: {textAlign: 'center'}, channelSubtitle: {'marginTop': 4, 'marginHorizontal': 16,
'textAlign': 'center'}, secureFrames: object, secureFramesIcon: {marginStart: 4}}]);
value = value.memo(VoicePanelSettingsOverview);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/header/VoicePanelSettingsOverview.tsx');
exports.default = value;
exports.VoicePanelSettingsOverviewHeader = closure;
}
function _createForOfIteratorHelperLoose_118350(a0, a1) { // fn#118350, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:423, offset: 0x024d824b, 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 _fun118351;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_118352(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_118352(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_118352(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun118351;
}
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 VoicePanelSettingsOverviewHeader({guildId, channelId}) { // fn#118353, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:1807, offset: 0x024d83bf, size: 743 bytes, params: 2, frame: 33
var r14;
var r5;
var ShieldLockIcon;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
var NativeView;
var items4;
const styles = useStyles();
const value2 = (require(566) /* metro dependency 566: flux */).useStateFromStores([SortedVoiceStateStore],
_fun118354);
const value4 = (importDefault(4805) /* metro dependency 4805: useChannelName */)((require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelStore],
function() {
return ChannelStore.getChannel(channelId);
}, [channelId]));
const value5 = (require(9293) /* metro dependency 9293: useIsSecureFramesUIEnabled */).useIsSecureFramesUIEnabled({channelId: channelId});
const value6 = (require(9256) /* metro dependency 9256: useIsSecureFramesVerified */).useIsCallSecureFramesVerified({channelId: channelId});
const NativeView2 = importDefault(6821) /* metro dependency 6821: NativeView */;
const defaultImport2 = NativeView2;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const text = <Text style={styles.channelTitle} variant="heading-lg/bold" lineClamp={1} accessibilityRole="header">{value4}</Text>;
if (value6) {
ShieldLockIcon = (require(9322) /* metro dependency 9322: ShieldLockIcon */).ShieldLockIcon;
r14 = <ShieldLockIcon style={styles.secureFramesIcon} size="xs" accessibilityLabel={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.mR9cf3)} />;
} else {
r14 = value6;
}
const items3 = [((Component) => <Component style={styles.channelTitleWrapper}>{text}{r14}</Component>)(defaultImport2)];
items3[1] = <Text style={styles.channelSubtitle} variant="text-sm/medium" accessibilityRole="summary">{value2}</Text>;
if (value5) {
NativeView = NativeView2;
var defaultImport3Props = {style: styles.secureFrames};
items4 = [((LockIcon) => <LockIcon size="xxs" color="status-positive" />)((require(6705) /* metro dependency 6705: LockIcon */).LockIcon)];
items4[1] = <Text variant="text-xs/medium" color="status-positive">{intl.string((require(1244) /* metro dependency 1244: indexNative */).t['3BogKe'])}</Text>;
r5 = <NativeView {...defaultImport3Props}>{items4}</NativeView>;
} else {
r5 = value5;
}
items3[2] = r5;
return (
<NativeView2 style={styles.headerContainer}>
{items3}
</NativeView2>
);
}
function ShareActivityLogsButton() { // fn#118357, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:2923, offset: 0x024d871c, size: 239 bytes, params: 1, frame: 21
const value2 = env0_3.useCallback(_fun118358, []);
const TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
const object2 = {onPress: value2};
const TableRowIcon = (require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon;
const WrenchIcon = (require(13957) /* metro dependency 13957: WrenchIcon */).WrenchIcon;
object2.icon = <TableRowIcon IconComponent={WrenchIcon} source={importDefault(8151) /* metro dependency 8151 */} />;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.iQzQs3);
const TableRowArrow = (require(6243) /* metro dependency 6243: TableRowArrowNative */).TableRowArrow;
object2.trailing = <TableRowArrow />;
return <TableRow {...object2} />;
}
function ActivityDebugToggle() { // fn#118359, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:3476, offset: 0x024d88eb, size: 300 bytes, params: 1, frame: 22
var object2;
const showActivitiesDebugOverlay = (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelCallLifecycleStore],
function() {
return ChannelCallLifecycleStore.getShowActivitiesDebugOverlay();
});
const value2 = env0_3.useCallback(_fun118361, []);
const TableSwitchRow = (require(6808) /* metro dependency 6808: TableSwitchRowNative */).TableSwitchRow;
object2 = {};
const TableRowIcon = (require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon;
const WrenchIcon = (require(13957) /* metro dependency 13957: WrenchIcon */).WrenchIcon;
object2.icon = <TableRowIcon IconComponent={WrenchIcon} source={importDefault(8151) /* metro dependency 8151 */} />;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.accessibilityHint = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['qv5/SP']);
object2.value = showActivitiesDebugOverlay;
object2.onValueChange = value2;
object2.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['qv5/SP']);
return <TableSwitchRow {...object2} />;
}
function VoicePanelSettingsOverview({guildId, channelId}) { // fn#118362, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:3972, offset: 0x024d8a63, size: 3104 bytes, params: 2, frame: 56
const TableRowArrow = (require(6243) /* metro dependency 6243: TableRowArrowNative */).TableRowArrow;
var r13;
const VoicePanelFormSection = (require(9243) /* metro dependency 9243: FormComponents */).VoicePanelFormSection;
const TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
var object6;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
var object18;
var items5;
var map;
const channel = (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelStore], function() {
return ChannelStore.getChannel(channelId);
});
const DeveloperMode = (require(3829) /* metro dependency 3829: UserSettings */).DeveloperMode;
const value2 = DeveloperMode.useSetting();
const voiceStatesForChannelAlt = (require(566) /* metro dependency 566: flux */).useStateFromStores([SortedVoiceStateStore],
function() {
return SortedVoiceStateStore.getVoiceStatesForChannelAlt(channelId, guildId);
});
const env0_3 = voiceStatesForChannelAlt;
let value3 = (require(566) /* metro dependency 566: flux */).useStateFromStoresArray([UserStore], _fun118365,
[channel, voiceStatesForChannelAlt]);
let value4 = (require(566) /* metro dependency 566: flux */).useStateFromStores([MediaEngineStore], function() {
return MediaEngineStore.isSelfDeaf();
});
const value5 = env0_3.useCallback(_fun118368, []);
const voiceParticipantsHidden = (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelRTCStore],
function() {
return ChannelRTCStore.getVoiceParticipantsHidden(channelId);
});
const value6 = (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelRTCStore,
AuthenticationStore], function() {
var value3 = ChannelRTCStore.getSelectedParticipant(channelId);
var isStreamParticipant2 = isStreamParticipant(value3);
var value4 = null;
return isStreamParticipant2 ? value3.stream.ownerId === AuthenticationStore.getId() ? value4 : value3.id : value4;
});
const value7 = env0_3.useCallback(_fun118371, [channelId, voiceParticipantsHidden]);
const value8 = env0_3.useCallback(_fun118372, [channelId]);
const value9 = env0_3.useCallback(_fun118373, [guildId]);
const value10 = env0_3.useCallback(function() {
importDefault(dependencyMap[42]).openLazy(require(dependencyMap[44])(dependencyMap[43], dependencyMap.paths),
SECURE_FRAMES_CALL_VERIFICATION_BOTTOM_SHEET_KEY, {channelId: channelId});
}, [channelId]);
const value11 = env0_3.useCallback(_fun118375, [channelId, value6]);
const value12 = (require(9298) /* metro dependency 9298: useIsEmptyRTCConnection */).useIsCallRTCConnectionEmpty();
const value13 = (require(9298) /* metro dependency 9298: useIsEmptyRTCConnection */).useIsStreamRTCConnectionEmpty(value6);
const value14 = (require(566) /* metro dependency 566: flux */).useStateFromStores([EmbeddedActivitiesStore],
_fun118376, []);
const value15 = (importDefault(15466) /* metro dependency 15466: useCanSetVoiceChannelStatus */)(channel);
const value16 = (require(566) /* metro dependency 566: flux */).useStateFromStores([PermissionStore], function() {
var MANAGE_CHANNELS = Permissions.MANAGE_CHANNELS;
return PermissionStore.canWithPartialContext(MANAGE_CHANNELS, {channelId: channelId});
}, [channelId]);
const value17 = (require(15454) /* metro dependency 15454: useCanInviteMembers */).useCanInviteMembers(channelId);
const value18 = (require(15413) /* metro dependency 15413: useInviteMembersCallback */).useInviteMembersCallback(channelId);
const value19 = (importDefault(11319) /* metro dependency 11319: useShowChannelOptInNotice */)(channel);
const value20 = (require(9293) /* metro dependency 9293: useIsSecureFramesUIEnabled */).useIsSecureFramesUIEnabled({channelId: channelId});
const jsxRuntimeEnv0_20Binding = jsxRuntimeEnv0_20;
const items3 = [<VoicePanelSettingsOverviewHeader guildId={guildId} channelId={channelId} />];
items3[1] = value19 ? <VoicePanelFormSection hasIcons={false}>{((Component) => <Component channel={channel} analyticsSection={AnalyticsSections.CHANNEL_ACTION_SHEET} />)(importDefault(15467) /* metro dependency 15467: VoicePanelChannelOptInNotice */)}</VoicePanelFormSection> : null;
let r5 = value16 || value15;
if (r5) {
if (value16) {
r13 = <TableRow onPress={value8} label={intl.string(t.XPDhcc)} subLabel={intl.string(t.w7ZEot)} trailing={<TableRowArrow />} />;
} else {
r13 = value16;
}
r5 = <VoicePanelFormSection hasIcons={false}>{r13}</VoicePanelFormSection>;
}
items3[2] = r5;
const object = {onPress: value9};
const TableRowIcon = (require(6242) /* metro dependency 6242: TableRowIconNative */).TableRowIcon;
const SettingsIcon = (require(7002) /* metro dependency 7002: SettingsIcon */).SettingsIcon;
object.icon = <TableRowIcon IconComponent={SettingsIcon} source={importDefault(15468) /* metro dependency 15468 */} />;
let string = intl.string;
const NiTd0e = (require(1244) /* metro dependency 1244: indexNative */).t.NiTd0e;
object.label = Reflect.apply(string, intl, [NiTd0e]);
object.subLabel = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['16SG+O']);
object.trailing = <TableRowArrow />;
const items4 = [<TableRow {...object} />];
const TableSwitchRow = (require(6808) /* metro dependency 6808: TableSwitchRowNative */).TableSwitchRow;
const object2 = {};
const HeadphonesSlashIcon = (require(9248) /* metro dependency 9248: HeadphonesSlashIcon */).HeadphonesSlashIcon;
object2.icon = <TableRowIcon IconComponent={HeadphonesSlashIcon} source={importDefault(15469) /* metro dependency 15469 */} />;
object2.accessibilityHint = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.wjcRFX);
object2.value = value4;
object2.onValueChange = value5;
object2.label = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.wjcRFX);
string = intl.string;
const M3VN2U = (require(1244) /* metro dependency 1244: indexNative */).t.M3VN2U;
object2.subLabel = Reflect.apply(string, intl, [M3VN2U]);
items4[1] = <TableSwitchRow {...object2} />;
const object3 = {};
const VideoIcon = (require(9759) /* metro dependency 9759: VideoIcon */).VideoIcon;
object3.icon = <TableRowIcon IconComponent={VideoIcon} source={importDefault(10793) /* metro dependency 10793 */} />;
string = intl.string;
let ZMTRyc = (require(1244) /* metro dependency 1244: indexNative */).t.ZMTRyc;
object3.accessibilityHint = Reflect.apply(string, intl, [ZMTRyc]);
object3.value = voiceParticipantsHidden;
object3.onValueChange = value7;
string = intl.string;
ZMTRyc = (require(1244) /* metro dependency 1244: indexNative */).t.ZMTRyc;
object3.label = Reflect.apply(string, intl, [ZMTRyc]);
string = intl.string;
const MlpCFS = (require(1244) /* metro dependency 1244: indexNative */).t.MlpCFS;
object3.subLabel = Reflect.apply(string, intl, [MlpCFS]);
items4[2] = <TableSwitchRow {...object3} />;
let r24 = value20 && value6 == null && !value12;
if (r24) {
r24 = <TableRow onPress={value10} icon={<TableRowIcon IconComponent={(require(6705) /* metro dependency 6705: LockIcon */).LockIcon} source={importDefault(15468) /* metro dependency 15468 */} />} label={intl.string(t.cTQI5t)} subLabel={intl.string(t.Etxti2)} trailing={<TableRowArrow />} />;
}
items4[3] = r24;
let r18 = value20 && value6 != null && !value13;
if (r18) {
r18 = <TableRow onPress={value11} icon={<TableRowIcon IconComponent={(require(6705) /* metro dependency 6705: LockIcon */).LockIcon} source={importDefault(15468) /* metro dependency 15468 */} />} label={intl.string(t.QogHld)} subLabel={intl.string(t['j5+1ed'])} trailing={<TableRowArrow />} />;
}
items4[4] = r18;
items3[3] = <VoicePanelFormSection hasIcons>{items4}</VoicePanelFormSection>;
r5 = voiceStatesForChannelAlt.length > 0 || value17;
if (r5) {
var voicePanelFormSectionProps = {title: '' + intl.formatToPlainString((require(1244) /* metro dependency 1244: indexNative */).t.AWmdd9,
{count: '' + voiceStatesForChannelAlt.length}), hasIcons: true};
if (value17) {
r18 = <TableRow onPress={value18} icon={<TableRowIcon IconComponent={(require(10859) /* metro dependency 10859: GroupPlusIcon */).GroupPlusIcon} source={importDefault(10858) /* metro dependency 10858 */} />} label={intl.string((require(1244) /* metro dependency 1244: indexNative */).t['f1+QIK'])} trailing={<TableRowArrow />} />;
} else {
r18 = null;
}
items5 = [r18];
map = voiceStatesForChannelAlt.map;
items5[1] = Reflect.apply(map, voiceStatesForChannelAlt, [_fun118378]);
map = value3.map;
items5[2] = Reflect.apply(map, value3, [_fun118379]);
r5 = <VoicePanelFormSection {...voicePanelFormSectionProps}>{items5}</VoicePanelFormSection>;
}
items3[4] = r5;
items3[5] = value2 ? <VoicePanelFormSection title={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.J6rqB7)} hasIcons>{value14 ? <ShareActivityLogsButton /> : null}<ActivityDebugToggle /></VoicePanelFormSection> : null;
return (
<>
{items3}
</>
);
}
function _fun118354() { // fn#118354, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:1920, offset: 0x024d86a6, size: 118 bytes, params: 1, frame: 18
var environment;
const value = environment.__proto__;
const getVoiceStatesForChannelAlt = SortedVoiceStateStore.getVoiceStatesForChannelAlt;
const channelIdBinding = channelId;
const guildIdBinding = guildId;
const value3 = Reflect.apply(getVoiceStatesForChannelAlt, SortedVoiceStateStore, [channelIdBinding, guildIdBinding]);
const value5 = value3.slice(0, 2).map(function(a0) {
return a0.user;
});
return (importDefault(15464) /* metro dependency 15464: getChannelInfoSubtitle */)(guildIdBinding, channelIdBinding,
value5, value3.length - value5.length);
}
function _fun118358() { // fn#118358, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:2979, offset: 0x024d880b, size: 224 bytes, params: 1, frame: 18
var defaultImport;
var open;
var intl;
let value = environment.__proto__;
const logAggregatorModule = require(12) /* metro dependency 12: LogAggregator */;
const stringify = logAggregatorModule.stringify;
let object = [RPC_APPLICATION_LOGGING_CATEGORY];
const value2 = Reflect.apply(stringify, logAggregatorModule, [object]);
if (value2 === '') {
defaultImport = importDefault(3857) /* metro dependency 3857: ToastActionCreators */;
open = defaultImport.open;
object = {key: 'EMBEDDED_ACTIVITIES_SHARE_EMPTY_LOGS_ERROR_MESSAGE'};
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object.content = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['i+9VWy']);
Reflect.apply(open, defaultImport, [object]);
} else {
value = require(15461) /* metro dependency 15461: VoicePanelSettingsActionCreators */;
value.closeVoicePanelSettingsActionSheet();
value = require(9212) /* metro dependency 9212: showShareActionSheetAndroid */;
value.showShareActionSheet({message: value2}, 'Activity Logs');
}
}
function _fun118361(a0) { // fn#118361, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:3604, offset: 0x024d8a2a, size: 57 bytes, params: 2, frame: 13
const value = environment.__proto__;
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'EMBEDDED_ACTIVITY_SET_DEBUG_OVERLAY_VISIBILITY',
visible: a0});
}
function _fun118365() { // fn#118365, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:4252, offset: 0x024d96a3, size: 200 bytes, params: 1, frame: 19
var environment;
var r2;
var r1;
var Set;
var value2;
var set;
var items2;
var value5;
var value6;
var done;
var value7;
var user;
var value9;
var value10;
var value11;
var value;
let channelBinding = channel;
if (channelBinding != null) {
channelBinding = channel;
if (channelBinding.isPrivate()) {
Set = global.Set;
value2 = voiceStatesForChannelAlt.map(function(a0) {
return a0.user.id;
});
set = new Set();
items2 = [];
value5 = environment.__proto__;
value = _createForOfIteratorHelperLoose_118350(channel.recipients);
value6 = value();
done = value6.done;
if (!done) {
r2 = value6;
while (true) {
value7 = r2.value;
user = UserStore.getUser(value7);
value9 = user == null;
if (value9) {
r1 = value9;
} else {
value10 = set.has(value7);
r1 = value10;
}
if (r1) {
continue;
}
items2.push(user);
value11 = value();
done = value11.done;
if (done) {
break;
}
r2 = value11;
continue;
}
}
return items2;
}
}
return [];
}
function _fun118368() { // fn#118368, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:4555, offset: 0x024d977e, size: 37 bytes, params: 1, frame: 11
const value = environment.__proto__;
(importDefault(8899) /* metro dependency 8899: AudioActionCreators */).toggleSelfDeaf();
}
function _fun118371() { // fn#118371, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:4815, offset: 0x024d980e, size: 53 bytes, params: 1, frame: 14
let value = environment.__proto__;
value = importDefault(7712) /* metro dependency 7712: ChannelRTCActionCreators */;
value.toggleVoiceParticipantsHidden(channelId, !voiceParticipantsHidden);
}
function _fun118372() { // fn#118372, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:4891, offset: 0x024d9843, size: 71 bytes, params: 1, frame: 13
let value = environment.__proto__;
(require(15461) /* metro dependency 15461: VoicePanelSettingsActionCreators */).closeVoicePanelSettingsActionSheet();
value = importDefault(8148) /* metro dependency 8148: ChannelSettingsActionCreators */;
value.open(channelId);
}
function _fun118373() { // fn#118373, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:4984, offset: 0x024d988a, size: 67 bytes, params: 1, frame: 13
let value = environment.__proto__;
(require(15461) /* metro dependency 15461: VoicePanelSettingsActionCreators */).closeVoicePanelSettingsActionSheet();
value = require(10813) /* metro dependency 10813: ChannelCallConnectingScreen */;
value.showVoiceSettingsActionSheet(guildId);
}
function _fun118375() { // fn#118375, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:5191, offset: 0x024d9928, size: 62 bytes, params: 1, frame: 13
var value2;
var defaultImport;
if (env0_5 != null) {
value2 = environment.__proto__;
defaultImport = importDefault(9279) /* metro dependency 9279: SecureFramesPlatformUtilsNative */;
defaultImport.openSecureFramesStreamVerification(env0_5, channelId);
}
}
function _fun118376() { // fn#118376, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:5386, offset: 0x024d9966, size: 25 bytes, params: 1, frame: 9
const value = environment.__proto__;
return EmbeddedActivitiesStore.getCurrentEmbeddedActivity() != null;
}
function _fun118378(a0) { // fn#118378, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:7997, offset: 0x024d99ab, size: 138 bytes, params: 2, frame: 18
let value = environment.__proto__;
value = undefined;
const MemberRowItem = (require(9243) /* metro dependency 9243: FormComponents */).MemberRowItem;
const object2 = {};
let user = a0.user;
object2.user = user;
object2.selfStream = a0.voiceState.selfStream;
object2.nick = a0.nick ?? value;
object2.channelId = channelId;
object2.guildId = guildId;
object2.showSecureFramesUI = env0_6;
user = a0.user;
return <MemberRowItem {...object2} key={user.id} />;
}
function _fun118379(a0) { // fn#118379, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15660:8184, offset: 0x024d9a35, size: 89 bytes, params: 2, frame: 17
const MemberRowItem = (require(9243) /* metro dependency 9243: FormComponents */).MemberRowItem;
return (
<MemberRowItem
user={a0}
channelId={channelId}
guildId={guildId}
notConnected
showRing
key={a0.id}
/>
);
}
@@ -0,0 +1,22 @@
/* Metro module 11799; source: modules/voice_panel/native/header/calculateVoicePanelHeaderSpecs.tsx; dependencies: [2] */
function _fun90385(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#90385, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11985:6, offset: 0x020372d0, size: 143 bytes, params: 8, frame: 17
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const closure = function(a0, a1) {
var Math = global.Math;
var value = Math.max(a1, a0.top);
var object = {height: 44 + value, paddingTop: value};
Math = global.Math;
object.paddingLeft = Math.max(a1, a0.left);
Math = global.Math;
object.paddingRight = Math.max(a1, a0.right);
return object;
};
closure.__closure = {BASE_VOICE_PANEL_HEADER_HEIGHT: 44};
closure.__workletHash = 6201232972174;
closure.__initData = {code: 'function calculateVoicePanelHeaderSpecs_calculateVoicePanelHeaderSpecsTsx1(safeArea,edgeGutter){const{BASE_VOICE_PANEL_HEADER_HEIGHT}=this.__closure;const paddingTop=Math.max(edgeGutter,safeArea.top);const paddingLeft=Math.max(edgeGutter,safeArea.left);const paddingRight=Math.max(edgeGutter,safeArea.right);const height=BASE_VOICE_PANEL_HEADER_HEIGHT+paddingTop;return{height:height,paddingTop:paddingTop,paddingLeft:paddingLeft,paddingRight:paddingRight};}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/header/calculateVoicePanelHeaderSpecs.tsx');
exports.default = closure;
exports.BASE_VOICE_PANEL_HEADER_HEIGHT = 44;
}
@@ -0,0 +1,34 @@
/* Metro module 15478; source: modules/voice_panel/native/hooks/useCanConnect.tsx; dependencies: [1379, 1867, 3784, 4297, 482, 566, 4800, 2] */
function _fun118466(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118466, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15675:6, offset: 0x024dc6c3, size: 184 bytes, params: 8, frame: 19
let env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const guildStore = importDefault(1867) /* metro dependency 1867: GuildStore */;
const permissionStore = importDefault(3784) /* metro dependency 3784: PermissionStore */;
const voiceStateStore = importDefault(4297) /* metro dependency 4297: VoiceStateStore */;
const env0_6 = (require(482) /* metro dependency 482: Constants */).Permissions;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/hooks/useCanConnect.tsx');
exports.default = function(a0) {
var env0_0 = a0;
return require(dependencyMap[5]).useStateFromStoresObject([ChannelStore, PermissionStore, GuildStore,
VoiceStateStore], _fun118468, [a0]);
};
}
function useCanConnect(a0) { // fn#118467, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15675:252, offset: 0x024dc77b, size: 100 bytes, params: 2, frame: 17
const env0_0 = a0;
return (require(566) /* metro dependency 566: flux */).useStateFromStoresObject([ChannelStore, PermissionStore,
GuildStore, VoiceStateStore], _fun118468, [a0]);
}
function _fun118468() { // fn#118468, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15675:329, offset: 0x024dc7df, size: 139 bytes, params: 1, frame: 19
const value = environment.__proto__;
const channel = ChannelStore.getChannel(env0_0);
const object2 = {};
object2.canConnect = channel != null && (channel.isPrivate() || PermissionStore.can(Permissions.CONNECT, channel));
object2.isAtMaxCapacity = channel == null || (require(4800) /* metro dependency 4800: ChannelUtils */).isChannelFull(channel,
VoiceStateStore, GuildStore);
return object2;
}
@@ -0,0 +1,28 @@
/* Metro module 15454; source: modules/voice_panel/native/hooks/useCanInviteMembers.tsx; dependencies: [1379, 3784, 482, 632, 2] */
function _fun118296(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118296, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15651:6, offset: 0x024d588a, size: 152 bytes, params: 8, frame: 19
let env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const permissionStore = importDefault(3784) /* metro dependency 3784: PermissionStore */;
const env0_4 = (require(482) /* metro dependency 482: Constants */).Permissions;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/hooks/useCanInviteMembers.tsx');
exports.useCanInviteMembers = function(a0) {
var env0_0 = a0;
return require(dependencyMap[3]).useStateFromStores([ChannelStore, PermissionStore], _fun118298, [a0]);
};
}
function useCanInviteMembers(a0) { // fn#118297, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15651:250, offset: 0x024d5922, size: 83 bytes, params: 2, frame: 17
const env0_0 = a0;
return (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([ChannelStore,
PermissionStore], _fun118298, [a0]);
}
function _fun118298() { // fn#118298, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15651:323, offset: 0x024d5975, size: 90 bytes, params: 1, frame: 15
const value = environment.__proto__;
const channel = ChannelStore.getChannel(env0_0);
return channel != null && PermissionStore.can(Permissions.CONNECT,
channel) && PermissionStore.can(Permissions.CREATE_INSTANT_INVITE, channel);
}
@@ -0,0 +1,23 @@
/* Metro module 15482; source: modules/voice_panel/native/hooks/useChatBadge.tsx; dependencies: [4605, 566, 2] */
function _fun118474(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118474, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15679:6, offset: 0x024dcbf3, size: 114 bytes, params: 8, frame: 18
let env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const readStateStore = importDefault(4605) /* metro dependency 4605: ReadStateStore */;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/hooks/useChatBadge.tsx');
exports.default = function(a0) {
var env0_0 = a0;
return require(dependencyMap[1]).useStateFromStores([ReadStateStore], _fun118476);
};
}
function useChatBadge(a0) { // fn#118475, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15679:199, offset: 0x024dcc65, size: 66 bytes, params: 2, frame: 14
const env0_0 = a0;
return (require(566) /* metro dependency 566: flux */).useStateFromStores([ReadStateStore], _fun118476);
}
function _fun118476() { // fn#118476, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15679:263, offset: 0x024dcca7, size: 71 bytes, params: 1, frame: 13
const value = environment.__proto__;
return ReadStateStore.getMentionCount(env0_0) > 0 ? 'mention' : ReadStateStore.hasUnread(env0_0) ? 'unread' : null;
}
@@ -0,0 +1,40 @@
/* Metro module 15517; source: modules/voice_panel/native/hooks/useConsoleConnectingInfo.tsx; dependencies: [4295, 4296, 9325, 632, 15518, 9436, 15519, 15520, 2] */
function _fun118832(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118832, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15714:6, offset: 0x024f0bc3, size: 134 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const gameConsoleStore = importDefault(4295) /* metro dependency 4295: GameConsoleStore */;
const sessionsStore = importDefault(4296) /* metro dependency 4296: SessionsStore */;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/hooks/useConsoleConnectingInfo.tsx');
exports.default = useConsoleConnectingInfo;
}
function useConsoleConnectingInfo(a0) { // fn#118833, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15714:221, offset: 0x024f0c49, size: 372 bytes, params: 2, frame: 23
var object2;
const value2 = undefined;
const value3 = (importDefault(9325) /* metro dependency 9325: useVoiceStateForRemoteSession */)();
const value4 = (value3 == null ? value2 : value3.channelId) === a0;
const awaitingRemoteSessionInfo = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([GameConsoleStore],
function() {
return GameConsoleStore.getAwaitingRemoteSessionInfo();
});
const sessionById = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([SessionsStore],
_fun118835);
const r3 = (awaitingRemoteSessionInfo == null ? value2 : awaitingRemoteSessionInfo.type) ?? (sessionById == null ? value2 : sessionById.clientInfo.os) ?? '';
const value6 = (importDefault(15518) /* metro dependency 15518: useShouldDisplayCancelConsoleTransfer */)(awaitingRemoteSessionInfo);
object2 = {};
object2.isConnectingToConsole = (awaitingRemoteSessionInfo == null ? value2 : awaitingRemoteSessionInfo.channelId) === a0;
object2.isConnectingOrConnectedToConsole = (awaitingRemoteSessionInfo == null ? value2 : awaitingRemoteSessionInfo.channelId) === a0 || value4;
object2.icon = (importDefault(9436) /* metro dependency 9436: getConsoleIcon */)(r3);
object2.text = (require(15519) /* metro dependency 15519: getConsoleConnectingText */).getConsoleConnectingText(sessionById,
awaitingRemoteSessionInfo, value4);
object2.color = (importDefault(15520) /* metro dependency 15520: getConsoleColor */)(r3);
object2.displayCancel = value6;
return object2;
}
function _fun118835() { // fn#118835, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15714:420, offset: 0x024f0dd0, size: 62 bytes, params: 1, frame: 14
const value = environment.__proto__;
return SessionsStore.getSessionById(env0_0?.sessionId ?? '');
}
@@ -0,0 +1,55 @@
/* Metro module 15547; source: modules/voice_panel/native/hooks/useControlAccessoryHeight.tsx; dependencies: [31, 11794, 1357, 15517, 4017, 15522, 15410, 15521, 2] */
function _fun118978(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118978, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15744:6, offset: 0x024f7978, size: 137 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
object = {code: 'function useControlAccessoryHeightTsx1(){const{consoleStatusHeight,floatingCTAHeight}=this.__closure;return consoleStatusHeight.get()+floatingCTAHeight.get();}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/hooks/useControlAccessoryHeight.tsx');
exports.default = useControlAccessoryHeight;
}
function useControlAccessoryHeight() { // fn#118979, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15744:383, offset: 0x024f7a01, size: 349 bytes, params: 1, frame: 24
const binding = env0_3;
const useContext = binding.useContext;
const channelId = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).channelId;
const value2 = (importDefault(1357) /* metro dependency 1357: MobileVisualRefreshExperiment */)('useControlAccessoryHeight');
const isConnectingOrConnectedToConsole = (importDefault(15517) /* metro dependency 15517: useConsoleConnectingInfo */)(channelId).isConnectingOrConnectedToConsole;
const value3 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(0);
binding.useEffect(_fun118980, [value3, isConnectingOrConnectedToConsole]);
const value4 = (require(15410) /* metro dependency 15410: VoicePanelFloatingCTAUtils */).useShouldShowFloatingCTA(channelId);
const value5 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(0);
const floatingCTATotalViewHeight = (require(15521) /* metro dependency 15521: VoicePanelFloatingCTAContainer */).getFloatingCTATotalViewHeight(value2);
const env0_4 = floatingCTATotalViewHeight;
binding.useEffect(_fun118981, [value5, value4, floatingCTATotalViewHeight]);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useDerivedValue = reanimatedRexportModule.useDerivedValue;
const closure = useControlAccessoryHeightC;
closure.__closure = {consoleStatusHeight: value3, floatingCTAHeight: value5};
closure.__workletHash = 7974849446653;
closure.__initData = env0_4;
return Reflect.apply(useDerivedValue, reanimatedRexportModule, [closure]);
}
function _fun118980() { // fn#118980, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15744:584, offset: 0x024f7b5e, size: 61 bytes, params: 1, frame: 14
const binding = env0_1;
const set = binding.set;
const CONSOLE_STATUS_HEIGHT = isConnectingOrConnectedToConsole ? (require(15522) /* metro dependency 15522: VoicePanelConsoleStatus */).CONSOLE_STATUS_HEIGHT : 0;
Reflect.apply(set, binding, [CONSOLE_STATUS_HEIGHT]);
}
function _fun118981() { // fn#118981, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15744:774, offset: 0x024f7b9b, size: 34 bytes, params: 1, frame: 13
const binding = env0_3;
binding.set(env0_2 ? env0_4 : 0);
}
function useControlAccessoryHeightC() { // fn#118982, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15744:831, owner: useControlAccessoryHeight.c, offset: 0x024f7bbd, size: 35 bytes, params: 1, frame: 10
let binding = env0_1;
let get = binding.get;
const value2 = Reflect.apply(get, binding, []);
binding = env0_3;
get = binding.get;
return value2 + Reflect.apply(get, binding, []);
}
@@ -0,0 +1,64 @@
/* Metro module 15523; source: modules/voice_panel/native/hooks/useControlsTranslation.tsx; dependencies: [31, 11795, 11798, 11794, 4017, 4577, 2] */
function _fun118864(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118864, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15720:6, offset: 0x024f2369, size: 181 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(11795) /* metro dependency 11795: VoicePanelConstants */).MODE_CHANGE_PHYSICS;
const env0_5 = (require(11798) /* metro dependency 11798: VoicePanelCardConstants */).CALL_TILE_GUTTER;
object = {code: 'function useControlsTranslationTsx1(){const{withSpring,wrapperSpecs,MODE_CHANGE_PHYSICS,useReducedMotion,CALL_TILE_GUTTER,viewHeight}=this.__closure;return{transform:[{translateX:withSpring(wrapperSpecs.get().x,MODE_CHANGE_PHYSICS)},{translateY:withSpring(!useReducedMotion.get()&&wrapperSpecs.get().hidden?wrapperSpecs.get().height+CALL_TILE_GUTTER+viewHeight.get():wrapperSpecs.get().y,MODE_CHANGE_PHYSICS)}]};}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/hooks/useControlsTranslation.tsx');
exports.default = useControlsTranslation;
}
function useControlsTranslation(a0, a1, a2) { // fn#118865, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15720:691, offset: 0x024f241e, size: 192 bytes, params: 4, frame: 20
const env0_0 = a1;
const env0_1 = a2;
const binding = env0_3;
const useContext = binding.useContext;
const useReducedMotion = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).useReducedMotion;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
const closure = useControlsTranslationS;
const object2 = {};
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.wrapperSpecs = a1;
object2.MODE_CHANGE_PHYSICS = MODE_CHANGE_PHYSICS;
object2.useReducedMotion = useReducedMotion;
object2.CALL_TILE_GUTTER = CALL_TILE_GUTTER;
object2.viewHeight = a2;
closure.__closure = object2;
closure.__workletHash = 11281989557090;
closure.__initData = env0_6;
return Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
}
function useControlsTranslationS() { // fn#118866, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15720:813, owner: useControlsTranslation.S, offset: 0x024f24de, size: 220 bytes, params: 1, frame: 21
var r4;
var value3;
const springModule = require(4577) /* metro dependency 4577: spring */;
let withSpring = springModule.withSpring;
let get = require.get;
const items2 = [{translateX: Reflect.apply(withSpring, springModule, [Reflect.apply(get, require, []).x,
MODE_CHANGE_PHYSICS])}];
const moduleValue2 = springModule;
withSpring = moduleValue2.withSpring;
get = useReducedMotion.get;
if (Reflect.apply(get, useReducedMotion, [])) {
r4 = require.get().y;
} else {
get = require.get;
if (Reflect.apply(get, require, []).hidden) {
get = require.get;
value3 = Reflect.apply(get, require, []).height + CALL_TILE_GUTTER;
get = importDefault.get;
r4 = value3 + Reflect.apply(get, importDefault, []);
} else {
r4 = require.get().y;
}
}
items2[1] = {translateY: Reflect.apply(withSpring, moduleValue2, [r4, MODE_CHANGE_PHYSICS])};
return {transform: items2};
}
@@ -0,0 +1,41 @@
/* Metro module 15413; source: modules/voice_panel/native/hooks/useInviteMembersCallback.tsx; dependencies: [31, 1379, 661, 4007, 9151, 2] */
function _fun117909(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#117909, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15610:6, offset: 0x024c4d59, size: 165 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importAll(31) /* metro dependency 31 */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_4 = constantsModule.AnalyticsPages;
const env0_5 = constantsModule.InstantInviteSources;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/hooks/useInviteMembersCallback.tsx');
exports.useInviteMembersCallback = useInviteMembersCallback;
}
function useInviteMembersCallback(a0) { // fn#117910, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15610:292, offset: 0x024c4dfe, size: 44 bytes, params: 2, frame: 14
const env0_0 = a0;
return env0_2.useCallback(_fun117911, [a0]);
}
function _fun117911() { // fn#117911, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15610:351, offset: 0x024c4e2a, size: 144 bytes, params: 1, frame: 18
var r1;
var r0;
var moduleValue2;
const value = environment.__proto__;
const channel = ChannelStore.getChannel(env0_0);
const value4 = null;
if (value4 != channel) {
if (channel.isPrivate()) {
moduleValue2 = require(4007) /* metro dependency 4007: NavigationRouteUtilsNative */;
r1 = moduleValue2.navigateToNewGroupDM(channel.id, AnalyticsPages.CHANNEL_CALL);
} else {
r1 = (require(9151) /* metro dependency 9151: InstantInviteUtils */).showInstantInviteActionSheet(channel,
{source: InstantInviteSources.VOICE_CHANNEL});
}
r0 = r1;
} else {
r0 = value4;
}
return r0;
}
@@ -0,0 +1,45 @@
/* Metro module 15390; source: modules/voice_panel/native/hooks/useIsConnectedToVoiceChannel.tsx; dependencies: [1226, 4294, 4297, 661, 566, 2] */
function _fun117666(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#117666, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15587:6, offset: 0x024bd316, size: 168 bytes, params: 8, frame: 19
let env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const voiceStateStore = importDefault(4297) /* metro dependency 4297: VoiceStateStore */;
const env0_5 = (require(661) /* metro dependency 661: Constants */).RTCConnectionStates;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/hooks/useIsConnectedToVoiceChannel.tsx');
exports.default = function(a0) {
var env0_0 = a0;
return require(dependencyMap[4]).useStateFromStores([RTCConnectionStore, VoiceStateStore, AuthenticationStore],
_fun117668);
};
}
function useIsConnectedToVoiceChannel_117667(a0) { // fn#117667, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15587:265, offset: 0x024bd3be, size: 82 bytes, params: 2, frame: 15
const env0_0 = a0;
return (require(566) /* metro dependency 566: flux */).useStateFromStores([RTCConnectionStore, VoiceStateStore,
AuthenticationStore], _fun117668);
}
function _fun117668() { // fn#117668, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15587:349, offset: 0x024bd410, size: 132 bytes, params: 1, frame: 15
const channelId = RTCConnectionStore.getChannelId();
const r4 = env0_0 ?? channelId;
if (r4 !== channelId) {
return false;
}
const isInChannel = VoiceStateStore.isInChannel;
const getId = AuthenticationStore.getId;
if (!Reflect.apply(isInChannel, VoiceStateStore, [r4, Reflect.apply(getId, AuthenticationStore, [])])) {
var state = RTCConnectionStore.getState();
var DISCONNECTED = RTCConnectionStates.DISCONNECTED;
if (DISCONNECTED === state) {
return false;
}
var NO_ROUTE = RTCConnectionStates.NO_ROUTE;
if (NO_ROUTE === state) {
return false;
}
}
return true;
}
@@ -0,0 +1,48 @@
/* Metro module 15542; source: modules/voice_panel/native/hooks/useSoundboardConfig.tsx; dependencies: [31, 1379, 15390, 3968, 1365, 15415, 6982, 2] */
function _fun118965(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118965, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15739:6, offset: 0x024f6ff1, size: 173 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/hooks/useSoundboardConfig.tsx');
exports.default = useSoundboardConfig;
exports.SoundboardButtonLocation = {VOICE_CONTROLS: 'call control drawer',
VOICE_PANEL_CONTROLS: 'voice panel controls'};
}
function useSoundboardConfig(a0, a1) { // fn#118966, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15739:329, offset: 0x024f709e, size: 220 bytes, params: 3, frame: 20
const env0_0 = a0;
const env0_1 = a1;
const value2 = (importDefault(15390) /* metro dependency 15390: useIsConnectedToVoiceChannel */)(a0);
const dismissibleContentUnsafeUtilsModule = require(3968) /* metro dependency 3968: DismissibleContentUnsafeUtils */;
const UNSAFE_useIsDismissibleContentDismissed = dismissibleContentUnsafeUtilsModule.UNSAFE_useIsDismissibleContentDismissed;
const DismissibleContent = (require(1365) /* metro dependency 1365: dismissible_content */).DismissibleContent;
const SOUNDBOARD_MOBILE_NEW_BADGE = DismissibleContent.SOUNDBOARD_MOBILE_NEW_BADGE;
const value3 = !Reflect.apply(UNSAFE_useIsDismissibleContentDismissed, dismissibleContentUnsafeUtilsModule,
[SOUNDBOARD_MOBILE_NEW_BADGE]);
const object2 = {};
object2.visible = value2 && (a1 === env0_5.VOICE_CONTROLS || a1 === env0_5.VOICE_PANEL_CONTROLS);
const binding = env0_3;
object2.handlePress = binding.useCallback(_fun118967, [a0, a1]);
object2.disabled = binding.useMemo(_fun118968, [a0]);
object2.showIndicator = value3;
return object2;
}
function _fun118967() { // fn#118967, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15739:583, offset: 0x024f717a, size: 82 bytes, params: 1, frame: 13
const value = environment.__proto__;
const channel = ChannelStore.getChannel(env0_0);
if (channel != null) {
(require(15415) /* metro dependency 15415: SoundboardActionCreators */).showSoundboardSoundPickerActionSheet({channel: channel,
analyticsSource: require});
}
}
function _fun118968() { // fn#118968, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15739:724, offset: 0x024f71cc, size: 56 bytes, params: 1, frame: 13
const defaultImport = importDefault(6982) /* metro dependency 6982: canChannelUseSoundboard */;
const getChannel = ChannelStore.getChannel;
return !defaultImport(Reflect.apply(getChannel, ChannelStore, [env0_0]));
}
@@ -0,0 +1,156 @@
/* Metro module 15474; source: modules/voice_panel/native/hooks/useSpeakerTooltips.tsx; dependencies: [57, 31, 15471, 11793, 1376, 33, 15475, 15414, 7713, 11794, 4017, 7013, 15447, 1244, 1365, 15477, 8543, 2] */
function _fun118437(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118437, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15671:6, offset: 0x024db841, size: 277 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
const consoleVoiceUpsellStoreModule = require(15471) /* metro dependency 15471: ConsoleVoiceUpsellStore */;
const env0_5 = consoleVoiceUpsellStoreModule.setVoiceUpsellDismissed;
const env0_6 = consoleVoiceUpsellStoreModule.useConsoleVoiceUpsellStore;
const env0_7 = (require(11793) /* metro dependency 11793: VoicePanelControlsConstants */).VoicePanelControlsModes;
const env0_8 = (require(1376) /* metro dependency 1376: DismissibleContentConstants */).ContentDismissActionType;
const env0_9 = (require(33) /* metro dependency 33 */).jsx;
object = {code: 'function useSpeakerTooltipsTsx1(){const{controlsSpecs}=this.__closure;return controlsSpecs.get().mode;}'};
object = {code: 'function useSpeakerTooltipsTsx2(currentControlsMode,previous){const{runOnJS,setIsShowingControls,VoicePanelControlsModes}=this.__closure;if(currentControlsMode===previous)return;runOnJS(setIsShowingControls)(currentControlsMode===VoicePanelControlsModes.FLOATING_DEFAULT);}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/hooks/useSpeakerTooltips.tsx');
exports.default = useSpeakerTooltips;
}
function useCoachmarkHelper(a0, a1, a2) { // fn#118438, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15671:668, offset: 0x024db956, size: 126 bytes, params: 4, frame: 17
const env0_0 = a1;
const env0_1 = a2;
env0_4.useEffect(_fun118440, [a2, env0_4.useCallback(function() {
if (require.visible) {
require.onDismiss();
}
}, [a1])]);
(require(8543) /* metro dependency 8543: useCoachmarkNative */).useCoachmark(a0, a1);
}
function useSpeakerTooltips(a0, a1) { // fn#118441, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15671:922, offset: 0x024dba0e, size: 632 bytes, params: 3, frame: 32
var object2;
let value = a1;
const value3 = (importDefault(15475) /* metro dependency 15475: useConsoleConnectedAccountForVoiceUpsell */)();
const voiceUpsellDismissed = useConsoleVoiceUpsellStore().voiceUpsellDismissed;
const value4 = (importDefault(15414) /* metro dependency 15414: useChannelFloatingCTAContent */)(undefined);
const env0_3 = value4;
const value5 = (require(7713) /* metro dependency 7713: VoicePanelUtilsNative */).useIsVoicePanelFullscreen();
let binding = env0_4;
const useContext = binding.useContext;
const controlsSpecs = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).controlsSpecs;
var env0_4 = controlsSpecs;
let [property, property2] = env0_3(env0_4.useState(true), 2);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
const closure = function() {
return controlsSpecs.get().mode;
};
closure.__closure = {controlsSpecs: controlsSpecs};
closure.__workletHash = 13952338295275;
closure.__initData = env0_10;
const closure2 = useSpeakerTooltipsS;
object2 = {};
object2.runOnJS = reanimatedRexportModule.runOnJS;
object2.setIsShowingControls = property2;
object2.VoicePanelControlsModes = VoicePanelControlsModes;
closure2.__closure = object2;
closure2.__workletHash = 5084069556209;
closure2.__initData = env0_11;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
const r3 = value && value5 && property;
binding = env0_4;
let useMemo = binding.useMemo;
value = Reflect.apply(useMemo, binding, [_fun118444, [r3, value4]]);
value = (require(7013) /* metro dependency 7013: useSelectedDismissibleContent */).useSelectedDismissibleContent(value);
value = env0_3(value, 2);
property = value[0];
const property3 = value[1];
value = (importDefault(15447) /* metro dependency 15447: useControlsLock */)();
const value8 = env0_4.useMemo(_fun118445, [r3, property3, property]);
binding = env0_4;
useMemo = binding.useMemo;
let visible = value8.visible;
const value9 = Reflect.apply(useMemo, binding, [_fun118448, [value3, r3, voiceUpsellDismissed, visible]]);
visible = value8.visible;
visible = !visible ? value9.visible : visible;
env0_4.useEffect(_fun118450, [visible, value]);
useCoachmarkHelper(a0, value8, r3);
useCoachmarkHelper(a0, value9, r3);
}
function _fun118440() { // fn#118440, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15671:774, offset: 0x024db9f6, size: 24 bytes, params: 1, frame: 9
if (!importDefault) {
env0_2();
}
}
function useSpeakerTooltipsS(a0, a1) { // fn#118443, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15671:1267, owner: useSpeakerTooltips.S, offset: 0x024dbc9d, size: 75 bytes, params: 3, frame: 14
var value;
if (a0 !== a1) {
value = environment.__proto__;
(require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS(env0_5)(a0 === VoicePanelControlsModes.FLOATING_DEFAULT);
}
}
function _fun118444() { // fn#118444, offset: 0x024dbce8, size: 22 bytes, params: 1, frame: 3
return require ? env0_3 : [];
}
function _fun118445() { // fn#118445, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15671:1608, offset: 0x024dbcfe, size: 216 bytes, params: 1, frame: 18
var environment;
const object2 = {position: 'bottom'};
const value = environment.__proto__;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const O2WA4u = t.O2WA4u;
object2.title = Reflect.apply(string, intl, [O2WA4u]);
object2.description = intl.string(t.fr5bJy);
object2.visible = require && env0_6 === (require(1365) /* metro dependency 1365: dismissible_content */).DismissibleContent.DONUT_MOBILE_NUX;
object2.renderImgComponent = renderImgComponent_118446;
object2.withBlurBackground = true;
object2.onDismiss = onDismiss_118447;
return object2;
}
function _fun118448() { // fn#118448, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15671:1902, offset: 0x024dbe1a, size: 217 bytes, params: 1, frame: 17
const value2 = null;
const r2 = value2 != env0_1 ? (require(15477) /* metro dependency 15477: VoicePanelConsoleFacepile */).getConsoleInfo(env0_1) : value2;
const r4 = require && !voiceUpsellDismissed && value2 != r2 && !env0_9.visible;
const value = undefined;
const connectLabel = value2 == r2 ? value : r2.connectLabel;
const value7 = '';
const connectSublabel = value2 == r2 ? value : r2.connectSublabel;
return {position: 'bottom', title: value2 != connectLabel ? connectLabel : value7,
description: value2 != connectSublabel ? connectSublabel : value7, visible: r4,
imgSource: value2 == r2 ? value : r2.icon, withBlurBackground: true, onDismiss: function() {
setVoiceUpsellDismissed(true);
}};
}
function _fun118450() { // fn#118450, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15671:2266, offset: 0x024dbf05, size: 54 bytes, params: 1, frame: 11
var lock;
const visibleBinding = visible;
const binding = env0_8;
if (visibleBinding) {
lock = binding.lock;
value = environment.__proto__;
Reflect.apply(lock, binding, [VoicePanelControlsModes.FLOATING_DEFAULT]);
} else {
binding.unlock();
}
}
function renderImgComponent_118446() { // fn#118446, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15671:1809, offset: 0x024dbdd6, size: 39 bytes, params: 1, frame: 13
const value = environment.__proto__.__proto__;
return ((Component) => <Component />)(importDefault(15477) /* metro dependency 15477: VoicePanelConsoleFacepile */);
}
function onDismiss_118447() { // fn#118447, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15671:1860, offset: 0x024dbdfd, size: 29 bytes, params: 1, frame: 11
const binding = env1_7;
const UNKNOWN = ContentDismissActionType.UNKNOWN;
return binding(UNKNOWN);
}
@@ -0,0 +1,123 @@
/* Metro module 15490; source: modules/voice_panel/native/hooks/useTapGestures.tsx; dependencies: [31, 11794, 5321, 4017, 4081, 2] */
function _fun118618(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118618, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15687:6, offset: 0x024e4e67, size: 185 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
object = {code: "function useTapGesturesTsx1(){const{runOnJS,handleEvent}=this.__closure;return runOnJS(handleEvent)('double');}"};
object = {code: 'function useTapGesturesTsx2(event,manager){const{isFocusedVideoZoomed}=this.__closure;if(isFocusedVideoZoomed.get()){manager.fail();}}'};
object = {code: "function useTapGesturesTsx3(){const{runOnJS,handleEvent}=this.__closure;return runOnJS(handleEvent)('single');}"};
object = {code: "function useTapGesturesTsx4(){const{runOnJS,triggerHapticFeedback,HapticFeedbackTypes,handleEvent}=this.__closure;runOnJS(triggerHapticFeedback)(HapticFeedbackTypes.IMPACT_MEDIUM);runOnJS(handleEvent)('long');}"};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/hooks/useTapGestures.tsx');
exports.default = useTapGestures;
}
function useTapGestures(a0) { // fn#118619, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15687:815, offset: 0x024e4f20, size: 189 bytes, params: 2, frame: 18
const env0_0 = a0;
const binding = env0_3;
const useContext = binding.useContext;
const isFocusedVideoZoomed = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).isFocusedVideoZoomed;
const env0_2 = binding.useRef(a0);
const value = a0.onSingleTap != null;
const value2 = a0.onDoubleTap != null;
const value3 = a0.onLongPress != null;
const gesturesEnabled = a0.gesturesEnabled;
binding.useLayoutEffect(_fun118620);
return binding.useMemo(_fun118621, [value, value2, value3, gesturesEnabled, isFocusedVideoZoomed]);
}
function _fun118621() { // fn#118621, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15687:1048, offset: 0x024e4fdd, size: 592 bytes, params: 1, frame: 27
var object2;
const closure = handleEvent;
const Gesture = (require(5321) /* metro dependency 5321 */).Gesture;
const Exclusive = Gesture.Exclusive;
const Gesture2 = (require(5321) /* metro dependency 5321 */).Gesture;
const value2 = Gesture2.Tap();
const value6 = value2.enabled(gesturesEnabled && result_2).maxDistance(30).numberOfTaps(2);
const onTouchesDown = value6.onTouchesDown;
const closure2 = function(a0, a1) {
if (isFocusedVideoZoomed.get()) {
a1.fail();
}
};
closure2.__closure = {isFocusedVideoZoomed: isFocusedVideoZoomed};
closure2.__workletHash = 3236469126950;
closure2.__initData = env1_5;
const value7 = Reflect.apply(onTouchesDown, value6, [closure2]);
let onStart = value7.onStart;
const closure3 = h_118624;
const runOnJS = (require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS;
closure3.__closure = {runOnJS: runOnJS, handleEvent: closure};
closure3.__workletHash = 13571114432746;
closure3.__initData = env1_4;
const value8 = Reflect.apply(onStart, value7, [closure3]);
const Gesture3 = (require(5321) /* metro dependency 5321 */).Gesture;
const value9 = Gesture3.Tap();
const value11 = value9.enabled(gesturesEnabled && result).maxDistance(30);
onStart = value11.onStart;
const closure4 = c_118625;
closure4.__closure = {runOnJS: runOnJS, handleEvent: closure};
closure4.__workletHash = 14109132753191;
closure4.__initData = env1_6;
const value12 = Reflect.apply(onStart, value11, [closure4]);
const Gesture4 = (require(5321) /* metro dependency 5321 */).Gesture;
const value13 = Gesture4.LongPress();
const value14 = value13.enabled(gesturesEnabled && result_3);
onStart = value14.onStart;
const closure5 = n_118626;
object2 = {};
object2.runOnJS = runOnJS;
object2.triggerHapticFeedback = (require(4081) /* metro dependency 4081: HapticUtilsNative */).triggerHapticFeedback;
const HapticFeedbackTypes = (require(4081) /* metro dependency 4081: HapticUtilsNative */).HapticFeedbackTypes;
object2.HapticFeedbackTypes = HapticFeedbackTypes;
object2.handleEvent = closure;
closure5.__closure = object2;
closure5.__workletHash = 1947700378974;
closure5.__initData = env1_7;
return Reflect.apply(Exclusive, Gesture, [value8, value12, Reflect.apply(onStart, value14, [closure5])]);
}
function handleEvent(a0) { // fn#118622, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15687:1077, offset: 0x024e522d, size: 167 bytes, params: 2, frame: 10
var value;
if (a0 === 'single') {
value = environment.__proto__;
if (env1_2.current.onSingleTap != null) {
env1_2.current.onSingleTap();
}
} else if (a0 === 'double') {
value = environment.__proto__;
if (env1_2.current.onDoubleTap != null) {
env1_2.current.onDoubleTap();
}
} else if (a0 === 'long') {
value = environment.__proto__;
if (env1_2.current.onLongPress != null) {
env1_2.current.onLongPress();
}
}
}
function h_118624() { // fn#118624, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15687:1550, offset: 0x024e52f8, size: 53 bytes, params: 1, frame: 12
let value = environment.__proto__.__proto__;
value = Reflect.apply((require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS, value, [handleEvent]);
return value('double');
}
function c_118625() { // fn#118625, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15687:1767, offset: 0x024e532d, size: 53 bytes, params: 1, frame: 12
let value = environment.__proto__.__proto__;
value = Reflect.apply((require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS, value, [handleEvent]);
return value('single');
}
function n_118626() { // fn#118626, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15687:1974, offset: 0x024e5362, size: 116 bytes, params: 1, frame: 16
let value = environment.__proto__.__proto__;
value = Reflect.apply((require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS, value,
[(require(4081) /* metro dependency 4081: HapticUtilsNative */).triggerHapticFeedback]);
const HapticFeedbackTypes = (require(4081) /* metro dependency 4081: HapticUtilsNative */).HapticFeedbackTypes;
const IMPACT_MEDIUM = HapticFeedbackTypes.IMPACT_MEDIUM;
value(IMPACT_MEDIUM);
value = Reflect.apply((require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS, value, [handleEvent]);
value('long');
}
@@ -0,0 +1,162 @@
/* Metro module 15458; source: modules/voice_panel/native/hooks/useVoicePanelCardUserStateIcons.tsx; dependencies: [31, 4294, 4297, 4299, 33, 11794, 9245, 632, 10268, 4406, 10269, 14703, 15410, 3857, 7684, 697, 1244, 2] */
function _fun118319(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118319, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15655:6, offset: 0x024d6838, size: 260 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const voiceStateStore = importDefault(4297) /* metro dependency 4297: VoiceStateStore */;
const env0_6 = (require(4299) /* metro dependency 4299: CallConstants */).ParticipantTypes;
const env0_7 = (require(33) /* metro dependency 33 */).jsx;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/hooks/useVoicePanelCardUserStateIcons.tsx');
exports.default = useVoicePanelCardUserStateIcons;
exports.VoicePanelCardUserStateIconType = {STREAM_ICON: 'STREAM_ICON', USER_VIDEO_ICON: 'USER_VIDEO_ICON',
MUTE_DEAFEN_ICON: 'MUTE_DEAFEN_ICON', USER_DISCONNECTED_ICON: 'DISCONNECTED_ICON',
SPEAKER_MUTE_ICON: 'SPEAKER_MUTE_ICON'};
}
function useVoicePanelCardUserStateIcons(a0, a1, a2) { // fn#118320, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15655:495, offset: 0x024d693c, size: 645 bytes, params: 4, frame: 26
const value = a1;
const value2 = a3;
const env0_0 = a0;
const value3 = undefined;
const r7 = value2 !== value3 ? value2 : null;
let env0_3 = value3;
let binding = env0_3;
const useContext = binding.useContext;
const setShowFloatingCTA = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).setShowFloatingCTA;
env0_3 = setShowFloatingCTA;
const voiceStateIconUtilsModule = require(9245) /* metro dependency 9245: VoiceStateIconUtils */;
const useMuteDeafenIconState = voiceStateIconUtilsModule.useMuteDeafenIconState;
let USER = ParticipantTypes.USER;
const value6 = Reflect.apply(useMuteDeafenIconState, voiceStateIconUtilsModule, [a0 !== USER ? value3 : value, a2]);
const moduleValue2 = voiceStateIconUtilsModule;
const useVideoIconState = moduleValue2.useVideoIconState;
USER = ParticipantTypes.USER;
const value7 = Reflect.apply(useVideoIconState, moduleValue2, [a0 !== USER ? value3 : value, a2]);
const value8 = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([RTCConnectionStore],
function() {
return RTCConnectionStore.isConnected();
});
const value9 = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([VoiceStateStore],
_fun118322, [r7, value]);
let defaultImport = importDefault(10268) /* metro dependency 10268: useMuteAwareLocalVolume */;
let STREAM = ParticipantTypes.STREAM;
let r4 = a0 !== STREAM ? value3 : value;
const MediaEngineContextTypes = (require(4406) /* metro dependency 4406: mediaEngine */).MediaEngineContextTypes;
STREAM = MediaEngineContextTypes.STREAM;
const effectiveVolume = defaultImport(r4, STREAM).effectiveVolume;
const defaultImport2 = importDefault(10269) /* metro dependency 10269: MobileAudioOutputExperiment */;
const useConfig = defaultImport2.useConfig;
r4 = Reflect.apply(useConfig, defaultImport2,
[{location: 'useVoicePanelCardUserStateIcons'}]).showTileVolumeIndicator && effectiveVolume === 0 && a0 === ParticipantTypes.STREAM;
const value12 = (require(14703) /* metro dependency 14703: RTCConnectionDesyncHooks */).useIsRTCDisconnectedUIVisible(r7,
value);
binding = env0_3;
return binding.useMemo(_fun118326, [value8, a0, value7, value6, value12, value9, binding.useCallback(function() {
setShowFloatingCTA(require(dependencyMap[12]).OverrideFloatingCTA.BAD_CONNECTION);
}, [setShowFloatingCTA]), value, binding.useCallback(function() {
var defaultImport = importDefault(dependencyMap[13]);
var object = {key: 'user-disconnected-indicator', icon: _fun118325};
object.content = require(dependencyMap[16]).intl.string(require(dependencyMap[16]).t.HFwRpk);
defaultImport.open(object);
}, []), r4]);
}
function _fun118322() { // fn#118322, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15655:794, offset: 0x024d6bc1, size: 60 bytes, params: 1, frame: 14
const value2 = null;
return value2 != env0_2 && value2 != require ? VoiceStateStore.getVoicePlatformForChannel(env0_2, require) : value2;
}
function _fun118324() { // fn#118324, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15655:1201, offset: 0x024d6c30, size: 120 bytes, params: 1, frame: 17
const defaultImport = importDefault(3857) /* metro dependency 3857: ToastActionCreators */;
const open = defaultImport.open;
const object2 = {key: 'user-disconnected-indicator', icon: icon_118325};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const HFwRpk = (require(1244) /* metro dependency 1244: indexNative */).t.HFwRpk;
object2.content = Reflect.apply(string, intl, [HFwRpk]);
Reflect.apply(open, defaultImport, [object2]);
}
function _fun118326() { // fn#118326, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15655:1415, offset: 0x024d6cfc, size: 414 bytes, params: 1, frame: 19
var environment;
var binding;
var value2;
var items2;
const VideoIconState = (require(9245) /* metro dependency 9245: VoiceStateIconUtils */).VideoIconState;
if (env0_6) {
binding = env0_0;
value2 = environment.__proto__;
if (binding === ParticipantTypes.STREAM) {
items2 = [];
if (env0_8) {
items2.push({type: env1_8.SPEAKER_MUTE_ICON, onPress: onPress_118327});
}
items2.push({type: env1_8.STREAM_ICON, voicePlatform: env0_7});
return items2;
}
binding = env0_0;
if (binding !== ParticipantTypes.USER) {
return [];
}
items2 = [];
if (env0_9) {
items2.push({type: env1_8.USER_DISCONNECTED_ICON, onPress: env0_11});
}
if (env0_5 != null && env0_5 !== VideoIconState.VIDEO_ACTIVE) {
items2.push({type: env1_8.USER_VIDEO_ICON, videoIconState: env0_5,
onPress: env0_5 !== VideoIconState.VIDEO_DISABLED_LOCAL_AUTO ? undefined : env0_10});
}
if (env0_4 != null) {
items2.push({type: env1_8.MUTE_DEAFEN_ICON, muteDeafenIconState: env0_4, withLeftMargin: items2.length > 0,
onPress: onPress_118328});
}
return items2;
}
return [];
}
function icon_118325() { // fn#118325, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15655:1260, offset: 0x024d6ca8, size: 84 bytes, params: 1, frame: 16
const CircleErrorIcon = (require(7684) /* metro dependency 7684: CircleErrorIcon */).CircleErrorIcon;
const STATUS_WARNING = (importDefault(697) /* metro dependency 697: native */).colors.STATUS_WARNING;
return <CircleErrorIcon size="xs" color={STATUS_WARNING} />;
}
function onPress_118327() { // fn#118327, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15655:1512, offset: 0x024d6e9a, size: 135 bytes, params: 1, frame: 19
const defaultImport = importDefault(3857) /* metro dependency 3857: ToastActionCreators */;
const open = defaultImport.open;
const object2 = {};
object2.key = '' + require + '-stream-status';
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const Q8Uzof = (require(1244) /* metro dependency 1244: indexNative */).t.Q8Uzof;
object2.content = Reflect.apply(string, intl, [Q8Uzof]);
Reflect.apply(open, defaultImport, [object2]);
}
function onPress_118328() { // fn#118328, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15655:2008, offset: 0x024d6f21, size: 850 bytes, params: 1, frame: 20
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const binding = env1_4;
const MuteDeafenIconState = (require(9245) /* metro dependency 9245: VoiceStateIconUtils */).MuteDeafenIconState;
const DEAFENED_SERVER = MuteDeafenIconState.DEAFENED_SERVER;
if (DEAFENED_SERVER === binding) {
(importDefault(3857) /* metro dependency 3857: ToastActionCreators */).open({key: '' + require + '-status',
content: intl.string(t.btxSdB)});
} else if (MuteDeafenIconState.DEAFENED === binding) {
(importDefault(3857) /* metro dependency 3857: ToastActionCreators */).open({key: '' + require + '-status',
content: intl.string(t.NjmiOL)});
} else if (MuteDeafenIconState.MUTED_SERVER === binding) {
(importDefault(3857) /* metro dependency 3857: ToastActionCreators */).open({key: '' + require + '-status',
content: intl.string(t.uLddbQ)});
} else if (MuteDeafenIconState.MUTED_LOCAL === binding) {
(importDefault(3857) /* metro dependency 3857: ToastActionCreators */).open({key: '' + require + '-status',
content: intl.string(t.Q8Uzof)});
} else if (MuteDeafenIconState.MUTED === binding) {
(importDefault(3857) /* metro dependency 3857: ToastActionCreators */).open({key: '' + require + '-status',
content: intl.string(t.tjtv3P)});
}
}
@@ -0,0 +1,37 @@
/* Metro module 15455; source: modules/voice_panel/native/hooks/useVoicePanelNavArrowPressed.tsx; dependencies: [31, 11793, 11794, 2] */
function _fun118299(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118299, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15652:6, offset: 0x024d59cf, size: 139 bytes, params: 8, frame: 18
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importAll(31) /* metro dependency 31 */;
const env0_3 = (require(11793) /* metro dependency 11793: VoicePanelControlsConstants */).VoicePanelControlsModes;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/hooks/useVoicePanelNavArrowPressed.tsx');
exports.default = useVoicePanelNavArrowPressed;
}
function useVoicePanelNavArrowPressed() { // fn#118300, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15652:249, offset: 0x024d5a5a, size: 122 bytes, params: 1, frame: 17
const binding = env0_2;
const value = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
return binding.useCallback(_fun118301, [value.focused, value.controlsSpecs, value.dismissPanel, value.setFocused]);
}
function _fun118301() { // fn#118301, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15652:401, offset: 0x024d5ad4, size: 96 bytes, params: 1, frame: 14
var r0;
var controlsSpecsBinding;
var mode;
var value4;
if (focused.get()?.id == null) {
r0 = dismissPanel();
} else {
controlsSpecsBinding = controlsSpecs;
mode = controlsSpecsBinding.get().mode;
value4 = environment.__proto__;
if (mode !== VoicePanelControlsModes.DRAWER) {
setFocused(null);
r0 = true;
} else {
r0 = dismissPanel();
}
}
return r0;
}
@@ -0,0 +1,558 @@
/* Metro module 15435; source: modules/voice_panel/native/hooks/useVoicePanelParticipants.tsx; dependencies: [57, 31, 4606, 1226, 1379, 4294, 4297, 4300, 11795, 661, 15390, 566, 14703, 11794, 11797, 2] */
function _fun118081(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118081, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15632:6, offset: 0x024cb259, size: 341 bytes, params: 8, frame: 19
const env0_0 = require;
const _arrayLikeToArray_118084 = 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 getMemoizedParticipant = function(a0, a1) {
var r0;
var value = a0;
var value2 = '' + value.type + '-' + value.id;
var value3 = a1.get(value2);
if (value3 != null) {
r0 = value3;
} else {
a1.set(value2, value);
r0 = value;
}
return r0;
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
const channelRTCStore = importDefault(4606) /* metro dependency 4606: ChannelRTCStore */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const voiceStateStore = importDefault(4297) /* metro dependency 4297: VoiceStateStore */;
const sortedVoiceStateStore = importDefault(4300) /* metro dependency 4300: SortedVoiceStateStore */;
const voicePanelConstantsModule = require(11795) /* metro dependency 11795: VoicePanelConstants */;
const env0_11 = voicePanelConstantsModule.VoicePanelCardItemType;
const env0_12 = voicePanelConstantsModule.VoicePanelCTACard;
const env0_13 = (require(661) /* metro dependency 661: Constants */).RTCConnectionStates;
const env0_14 = [];
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/hooks/useVoicePanelParticipants.tsx');
exports.default = useVoicePanelCards;
exports.useChunkedParticipants = useChunkedParticipants;
}
function _createForOfIteratorHelperLoose_118082(a0, a1) { // fn#118082, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15632:288, offset: 0x024cb3ae, 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 _fun118083;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_118084(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_118084(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_118084(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun118083;
}
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 useVoicePanelCards(a0, a1) { // fn#118086, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15632:1425, offset: 0x024cb56e, size: 363 bytes, params: 3, frame: 26
const env0_0 = a0;
const env0_1 = a1;
const id = AuthenticationStore.getId();
const isDM = ChannelStore.getChannel(a0)?.isDM();
const r9 = isDM != null && isDM;
const env0_3 = r9;
const value6 = (importDefault(15390) /* metro dependency 15390: useIsConnectedToVoiceChannel */)(a0);
const binding = value6;
const property = env0_3(binding.useState(function() {
var Map = global.Map;
var value = Object.create(Map.prototype, {constructor: {value: Map}});
var value2 = new Map();
return value2 instanceof Object ? value2 : value;
}), 1)[0];
binding.useEffect(function() {
return _fun118089;
}, [property]);
const value9 = (require(566) /* metro dependency 566: flux */).useStateFromStores([RTCConnectionStore], function() {
return RTCConnectionStore.getState() === RTCConnectionStates.RTC_CONNECTED;
});
const value10 = (require(14703) /* metro dependency 14703: RTCConnectionDesyncHooks */).useDesyncedChannelParticipants(a0);
const fluxModule = require(566) /* metro dependency 566: flux */;
const useStateFromStoresArray = fluxModule.useStateFromStoresArray;
return {items: Reflect.apply(useStateFromStoresArray, fluxModule, [[ChannelRTCStore, SortedVoiceStateStore],
_fun118091, [value6, value10, a0, a1, property, r9, id, value9]]), isConnected: value6};
}
function useChunkedParticipants(a0, a1) { // fn#118093, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15632:2602, offset: 0x024cb969, size: 263 bytes, params: 3, frame: 25
const env0_0 = a0;
const env0_1 = a1;
const id = AuthenticationStore.getId();
const binding = env0_4;
const useContext = binding.useContext;
const layoutManager = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).layoutManager;
const env0_3 = layoutManager;
const value3 = (require(11797) /* metro dependency 11797: VoicePanelCardLayoutManager */).useManagerSubscription(layoutManager);
const property = env0_3(binding.useState(function() {
var Map = global.Map;
var value = Object.create(Map.prototype, {constructor: {value: Map}});
var value2 = new Map();
return value2 instanceof Object ? value2 : value;
}), 1)[0];
binding.useEffect(function() {
return _fun118096;
}, [property]);
return (require(566) /* metro dependency 566: flux */).useStateFromStoresArray([VoiceStateStore, ChannelRTCStore],
_fun118097, [a0, property, layoutManager, a1, value3, id]);
}
function _fun118088() { // fn#118088, offset: 0x024cb6d9, size: 11 bytes, params: 1, frame: 1
return _fun118089;
}
function _fun118091() { // fn#118091, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15632:1805, offset: 0x024cb718, size: 536 bytes, params: 1, frame: 25
var r0;
var r6;
var r12;
var r10;
var r11;
var r13;
var r8;
var r4;
var binding;
var length;
var getVoiceParticipantsHidden;
var value3;
var items2;
var filteredParticipants;
var value5;
var property;
var push;
var value6;
var value7;
var value8;
var done;
var value9;
var value10;
var items3;
var value11;
var getMemoizedParticipantBinding;
var PARTICIPANT;
var id;
var memoizedParticipantBinding;
var value13;
var value14;
var CTA;
var CALLER_DISCONNECTED;
var value15;
var NO_VIDEO_PARTICIPANTS;
var value;
if (env0_4) {
getVoiceParticipantsHidden = ChannelRTCStore.getVoiceParticipantsHidden;
binding = env0_0;
value3 = Reflect.apply(getVoiceParticipantsHidden, ChannelRTCStore, [binding]);
items2 = [];
filteredParticipants = ChannelRTCStore.getFilteredParticipants(binding);
length = filteredParticipants.length;
value5 = 0;
if (value5 < length) {
r6 = value5;
reducibleLoop5: while (true) {
property = filteredParticipants[r6];
push = items2.push;
Reflect.apply(push, items2, [property]);
value6 = typeof r6 === 'bigint' ? r6 + 1n : +r6 + 1;
length = filteredParticipants.length;
if (value6 < length) {
r6 = value6;
continue reducibleLoop5;
}
break reducibleLoop5;
}
}
reducibleJoin10: while (true) {
if (value3) {
break reducibleJoin10;
}
if (env0_7 == null) {
break reducibleJoin10;
}
value7 = _createForOfIteratorHelperLoose_118082(env0_7);
value8 = value7();
done = value8.done;
if (done) {
break reducibleJoin10;
}
r6 = value8;
reducibleLoop9: while (true) {
value9 = r6.value;
push = items2.push;
Reflect.apply(push, items2, [value9]);
value10 = value7();
done = value10.done;
if (done) {
break reducibleJoin10;
}
r6 = value10;
continue reducibleLoop9;
}
}
items3 = [];
reducibleJoin12: while (true) {
if (items2 != null) {
r12 = items2;
break reducibleJoin12;
}
r12 = [];
break reducibleJoin12;
}
length = r12.length;
value11 = undefined;
if (value5 < length) {
r10 = value5;
r11 = value11;
reducibleLoop13: while (true) {
property = r12[r10];
getMemoizedParticipantBinding = getMemoizedParticipant;
PARTICIPANT = VoicePanelCardItemType.PARTICIPANT;
id = property.id;
memoizedParticipantBinding = getMemoizedParticipantBinding({type: PARTICIPANT, id: id}, env0_5);
reducibleJoin16: while (true) {
reducibleJoin15: while (true) {
if (env0_3) {
id = memoizedParticipantBinding.id;
if (id === env0_2) {
r13 = memoizedParticipantBinding;
break reducibleJoin16;
}
break reducibleJoin15;
}
break reducibleJoin15;
}
push = items3.push;
Reflect.apply(push, items3, [memoizedParticipantBinding]);
r13 = r11;
break reducibleJoin16;
}
value13 = typeof r10 === 'bigint' ? r10 + 1n : +r10 + 1;
length = r12.length;
if (value13 < length) {
r10 = value13;
r11 = r13;
continue reducibleLoop13;
}
r8 = r13;
break reducibleLoop13;
}
} else {
r8 = value11;
}
reducibleJoin19: while (true) {
if (r8 == null) {
break reducibleJoin19;
}
push = items3.push;
Reflect.apply(push, items3, [r8]);
break reducibleJoin19;
}
binding = env0_3;
reducibleJoin21: while (true) {
if (binding) {
binding = env0_6;
r6 = binding;
break reducibleJoin21;
}
r6 = binding;
break reducibleJoin21;
}
reducibleJoin23: while (true) {
if (r6) {
length = items3.length;
value14 = length === 1;
r6 = value14;
break reducibleJoin23;
}
break reducibleJoin23;
}
reducibleJoin25: while (true) {
if (r6) {
push = items3.push;
getMemoizedParticipantBinding = getMemoizedParticipant;
CTA = VoicePanelCardItemType.CTA;
CALLER_DISCONNECTED = VoicePanelCTACard.CALLER_DISCONNECTED;
Reflect.apply(push, items3, [getMemoizedParticipantBinding({type: CTA, id: CALLER_DISCONNECTED},
env0_5)]);
break reducibleJoin25;
}
break reducibleJoin25;
}
reducibleJoin27: while (true) {
if (value3) {
length = items2.length;
value15 = value5 === length;
r4 = value15;
break reducibleJoin27;
}
r4 = value3;
break reducibleJoin27;
}
reducibleJoin29: while (true) {
if (r4) {
push = items3.push;
getMemoizedParticipantBinding = getMemoizedParticipant;
CTA = VoicePanelCardItemType.CTA;
NO_VIDEO_PARTICIPANTS = VoicePanelCTACard.NO_VIDEO_PARTICIPANTS;
Reflect.apply(push, items3, [getMemoizedParticipantBinding({type: CTA, id: NO_VIDEO_PARTICIPANTS},
env0_5)]);
break reducibleJoin29;
}
break reducibleJoin29;
}
length = items3.length;
reducibleJoin31: while (true) {
if (length > value5) {
r0 = items3;
break reducibleJoin31;
}
binding = env1_14;
r0 = binding;
break reducibleJoin31;
}
} else {
value = SortedVoiceStateStore.getVoiceStatesForChannelAlt(env0_0, require);
value = value.map(_fun118092);
reducibleJoin3: while (true) {
if (value.length > 0) {
r0 = value;
break reducibleJoin3;
}
binding = env1_14;
r0 = binding;
break reducibleJoin3;
}
}
return r0;
}
function _fun118095() { // fn#118095, offset: 0x024cba70, size: 11 bytes, params: 1, frame: 1
return _fun118096;
}
function _fun118097() { // fn#118097, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15632:2859, offset: 0x024cba7b, size: 362 bytes, params: 1, frame: 23
var r8;
var r5;
var r4;
var r0;
var _createForOfIteratorHelperLoose_118082Binding;
var Set;
var items2;
var start;
var end;
var layoutManagerBinding;
var getChunk;
var value3;
var push;
var Array;
var from;
var value4;
var items3;
var value5;
var value6;
var set;
var value8;
var value9;
var done;
var value10;
var getMemoizedParticipantBinding;
var value11;
var voiceParticipantsHidden;
var length;
var value13;
var CTA;
var NO_VIDEO_PARTICIPANTS;
if (env0_4 < 0) {
value = environment.__proto__;
return env1_14;
}
const isInChannel = VoiceStateStore.isInChannel;
let binding = env0_0;
const isInChannel2 = Reflect.apply(isInChannel, VoiceStateStore, [binding, env0_2]);
const items4 = [];
if (isInChannel2) {
_createForOfIteratorHelperLoose_118082Binding = _createForOfIteratorHelperLoose_118082;
Set = global.Set;
items2 = [];
start = require.start;
end = require.end;
if (start <= end) {
r8 = start;
reducibleLoop4: while (true) {
layoutManagerBinding = layoutManager;
getChunk = layoutManagerBinding.getChunk;
value3 = Reflect.apply(getChunk, layoutManagerBinding, [r8]);
push = items2.push;
Array = global.Array;
from = Array.from;
value4 = Reflect.apply(from, Array, [value3]);
items3 = [];
arraySpread(items3, value4, 0, value3);
apply(push, items3, items2, value3);
value5 = typeof r8 === 'bigint' ? r8 + 1n : +r8 + 1;
end = require.end;
if (value5 <= end) {
r8 = value5;
continue reducibleLoop4;
}
break reducibleLoop4;
}
}
value6 = Object.create(Set.prototype, {constructor: {value: Set}});
set = new Set();
value8 = _createForOfIteratorHelperLoose_118082Binding(set instanceof Object ? set : value6);
value9 = value8();
done = value9.done;
if (!done) {
r5 = value9;
reducibleLoop6: while (true) {
value10 = r5.value;
push = items4.push;
Reflect.apply(push, items4, [getMemoizedParticipant(value10, env0_5)]);
value11 = value8();
done = value11.done;
if (done) {
break reducibleLoop6;
}
r5 = value11;
continue reducibleLoop6;
}
}
voiceParticipantsHidden = ChannelRTCStore.getVoiceParticipantsHidden(env0_0);
reducibleJoin9: while (true) {
if (voiceParticipantsHidden) {
length = items4.length;
value13 = length === 0;
r4 = value13;
break reducibleJoin9;
}
r4 = voiceParticipantsHidden;
break reducibleJoin9;
}
reducibleJoin11: while (true) {
if (r4) {
push = items4.push;
getMemoizedParticipantBinding = getMemoizedParticipant;
CTA = VoicePanelCardItemType.CTA;
NO_VIDEO_PARTICIPANTS = VoicePanelCTACard.NO_VIDEO_PARTICIPANTS;
Reflect.apply(push, items4, [getMemoizedParticipantBinding({type: CTA, id: NO_VIDEO_PARTICIPANTS},
env0_5)]);
break reducibleJoin11;
}
break reducibleJoin11;
}
length = items4.length;
reducibleJoin13: while (true) {
if (length > 0) {
r0 = items4;
break reducibleJoin13;
}
binding = env1_14;
r0 = binding;
break reducibleJoin13;
}
return r0;
}
return items4;
}
function _fun118089() { // fn#118089, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15632:1608, offset: 0x024cb6e4, size: 19 bytes, params: 1, frame: 9
return env1_5.clear();
}
function _fun118092({user}) { // fn#118092, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15632:1863, offset: 0x024cb930, size: 57 bytes, params: 2, frame: 13
const getMemoizedParticipantBinding = getMemoizedParticipant;
const PARTICIPANT = VoicePanelCardItemType.PARTICIPANT;
return getMemoizedParticipantBinding({type: PARTICIPANT, id: user.id}, env1_5);
}
@@ -0,0 +1,737 @@
/* Metro module 15562; source: modules/voice_panel/native/pip/VoicePanelPIP.tsx; dependencies: [57, 31, 27, 1378, 8065, 7710, 11795, 11793, 15440, 8044, 33, 4577, 4501, 11794, 15444, 4017, 15439, 5321, 11282, 15446, 10684, 566, 3774, 8087, 7860, 8621, 1244, 8141, 15563, 15564, 6821, 15566, 4508, 2] */
function _fun119107(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#119107, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:6, offset: 0x024fcef3, size: 795 bytes, params: 8, frame: 23
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_4 = importDefault(57) /* metro dependency 57 */;
let value = importAll(31) /* metro dependency 31 */;
const value2 = require(27) /* metro dependency 27 */;
const StyleSheet = value2.StyleSheet;
value2.Platform;
const embeddedActivitiesStore = importDefault(1378) /* metro dependency 1378: EmbeddedActivitiesStore */;
const framesStore = importDefault(8065) /* metro dependency 8065: FramesStore */;
const voicePanelStore = importDefault(7710) /* metro dependency 7710: VoicePanelStore */;
const voicePanelConstantsModule = require(11795) /* metro dependency 11795: VoicePanelConstants */;
const env0_10 = voicePanelConstantsModule.DRAWER_SPRING_PHYSICS;
const env0_11 = voicePanelConstantsModule.VoicePanelModes;
const SECONDARY_PIP_TOP_MARGIN = voicePanelConstantsModule.SECONDARY_PIP_TOP_MARGIN;
const env0_12 = (require(11793) /* metro dependency 11793: VoicePanelControlsConstants */).VoicePanelControlsModes;
const env0_13 = (require(15440) /* metro dependency 15440: VoicePanelPIPConstants */).VoicePanelPIPModes;
const env0_14 = (require(8044) /* metro dependency 8044: ActivityPanelConstants */).ActivityPanelModes;
const value4 = require(33) /* metro dependency 33 */;
const env0_15 = value4.jsx;
const env0_16 = value4.jsxs;
const env0_17 = {'mass': 0.3, 'damping': 80, 'stiffness': 150};
object = {code: 'function layoutTransition_VoicePanelPIPTsx1(values){const{withSpring,LAYOUT_PHYSICS}=this.__closure;return{animations:{originX:withSpring(values.targetOriginX,LAYOUT_PHYSICS),originY:withSpring(values.targetOriginY,LAYOUT_PHYSICS),width:withSpring(values.targetWidth,LAYOUT_PHYSICS),height:withSpring(values.targetHeight,LAYOUT_PHYSICS)},initialValues:{originX:values.currentOriginX,originY:values.currentOriginY,width:values.currentWidth,height:values.currentHeight}};}'};
const env0_19 = _fun119140();
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
const object2 = {};
copyDataProperties(object2, StyleSheet.absoluteFillObject, undefined);
object2['overflow'] = 'hidden';
const env0_20 = Reflect.apply(createStyles, createStylesModule, [{pipContentWrapper: {backgroundColor: 'black'},
inAppElevationShadow: {}, pipMask: object2, multiPIPContainer: {'position': 'absolute', 'zIndex': 10,
'flexDirection': 'column', 'alignItems': 'center', gap: SECONDARY_PIP_TOP_MARGIN}}]);
object = {code: 'function VoicePanelPIPTsx2(){const{pipState,getClampedPIPPosition,wrapperDimensions,windowDimensions,safeArea,pipAvoidanceSpecs,initialGestureOffset,opacity,withSpring,DRAWER_SPRING_PHYSICS,LAYOUT_PHYSICS,getVoicePanelPIPBorderRadius}=this.__closure;const width=pipState.width;const height=!pipState.showSecondaryPIP?pipState.height:pipState.containerHeight;const{x:x,y:y}=getClampedPIPPosition({pipX:wrapperDimensions.get().pipX,pipY:wrapperDimensions.get().pipY,width:width,height:height,windowDimensions:windowDimensions.get(),safeArea:safeArea.get(),bottomAvoidanceRegion:pipAvoidanceSpecs.get().bottom,topAvoidanceRegion:pipAvoidanceSpecs.get().top,positionOffset:initialGestureOffset.get().active?initialGestureOffset.get():undefined});return{width:width,height:height,opacity:opacity.get(),transform:[{translateX:withSpring(x,initialGestureOffset.get().active?DRAWER_SPRING_PHYSICS:LAYOUT_PHYSICS)},{translateY:withSpring(y,initialGestureOffset.get().active?DRAWER_SPRING_PHYSICS:LAYOUT_PHYSICS)}],borderRadius:getVoicePanelPIPBorderRadius(width,height)};}'};
object = {code: 'function VoicePanelPIPTsx3(){const{pipState,getVoicePanelPIPBorderRadius}=this.__closure;const{width:width,height:height}=pipState;return{width:width,height:height,borderRadius:getVoicePanelPIPBorderRadius(width,height)};}'};
object = {code: 'function VoicePanelPIPTsx4(){const{updateSharedValueIfChanged,initialGestureOffset}=this.__closure;updateSharedValueIfChanged(initialGestureOffset,{active:false,pressed:false});}'};
object = {code: 'function VoicePanelPIPTsx5(){const{updateSharedValueIfChanged,initialGestureOffset}=this.__closure;updateSharedValueIfChanged(initialGestureOffset,{active:false,pressed:false});}'};
object = {code: 'function VoicePanelPIPTsx6({velocityX:velocityX,velocityY:velocityY,absoluteX:absoluteX,absoluteY:absoluteY}){const{calculatePIPPositionFromVelocity,windowDimensions,safeArea,updateSharedValueIfChanged,wrapperDimensions,wrapperOffset,initialGestureOffset,runOnJS,updateSourceTrackingView}=this.__closure;const{pipX:pipX,pipY:pipY}=calculatePIPPositionFromVelocity({velocityX:velocityX,velocityY:velocityY,absoluteX:absoluteX,absoluteY:absoluteY,windowDimensions:windowDimensions.get(),safeArea:safeArea.get()});updateSharedValueIfChanged(wrapperDimensions,{pipX:pipX,pipY:pipY});updateSharedValueIfChanged(wrapperOffset,{gestureActive:false});updateSharedValueIfChanged(initialGestureOffset,{active:false,pressed:false});runOnJS(updateSourceTrackingView)();}'};
object = {code: 'function VoicePanelPIPTsx7({absoluteX:absoluteX,absoluteY:absoluteY}){const{updateSharedValueIfChanged,initialGestureOffset}=this.__closure;updateSharedValueIfChanged(initialGestureOffset,{x:absoluteX-initialGestureOffset.get().absoluteX,y:absoluteY-initialGestureOffset.get().absoluteY});}'};
object = {code: 'function VoicePanelPIPTsx8(event,manager){const{State,initialGestureOffset,MIN_GESTURE_START,updateSharedValueIfChanged,wrapperOffset,runOnJS,triggerIOSHaptic}=this.__closure;if(event.state!==State.BEGAN||initialGestureOffset.get().active)return;const{absoluteY:absoluteY,absoluteX:absoluteX}=event.changedTouches[0];if(Math.abs(initialGestureOffset.get().absoluteX-absoluteX)>MIN_GESTURE_START||Math.abs(initialGestureOffset.get().absoluteY-absoluteY)>MIN_GESTURE_START){initialGestureOffset.set({x:0,y:0,absoluteX:absoluteX,absoluteY:absoluteY,pressed:true,active:true});updateSharedValueIfChanged(wrapperOffset,{gestureActive:true,x:0,y:0});manager.activate();runOnJS(triggerIOSHaptic)();}}'};
object = {code: 'function VoicePanelPIPTsx9(){const{updateSharedValueIfChanged,initialGestureOffset}=this.__closure;updateSharedValueIfChanged(initialGestureOffset,{pressed:false});}'};
object = {code: 'function VoicePanelPIPTsx10({absoluteX:absoluteX,absoluteY:absoluteY}){const{initialGestureOffset}=this.__closure;initialGestureOffset.set({x:0,y:0,absoluteX:absoluteX,absoluteY:absoluteY,active:false,pressed:true});}'};
object = {code: 'function VoicePanelPIPTsx11(){const{runOnJS,setFocused}=this.__closure;runOnJS(setFocused)(null);}'};
object = {code: 'function VoicePanelPIPTsx12(){const{pipMode,VoicePanelPIPModes,runOnJS,setMode,VoicePanelModes,controlsSpecs,VoicePanelControlsModes,showControls,hideControls}=this.__closure;if(pipMode===VoicePanelPIPModes.IN_APP){runOnJS(setMode)(VoicePanelModes.PANEL);}else{if(controlsSpecs.get().mode===VoicePanelControlsModes.HIDDEN){runOnJS(showControls)();}else{runOnJS(hideControls)();}}}'};
object = {code: 'function VoicePanelPIPTsx13(){const{runOnJS,handleSecondaryPIPTap}=this.__closure;runOnJS(handleSecondaryPIPTap)();}'};
object = {code: 'function VoicePanelPIPTsx14(){const{getVoicePanelPIPBorderRadius,pipState}=this.__closure;return{borderRadius:getVoicePanelPIPBorderRadius(pipState.width,pipState.height)};}'};
object = {code: 'function VoicePanelPIPTsx15(){const{transitionState,TransitionStates,panelCardStillInPIP}=this.__closure;return transitionState===TransitionStates.YEETED&&!panelCardStillInPIP.get();}'};
object = {code: 'function VoicePanelPIPTsx16(ready,prev){const{runOnJS,fireCleanup}=this.__closure;if(ready&&prev!==ready){runOnJS(fireCleanup)();}}'};
const env0_36 = value.memo(_fun119142);
value = value.memo(VoicePanelPIPWrapper);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/pip/VoicePanelPIP.tsx');
exports.default = value;
}
function VoicePanelPIP() { // fn#119108, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:6384, offset: 0x024fd20e, size: 1117 bytes, params: 1, frame: 37
var r5;
var defaultImport2;
var object2;
const GestureDetector = require(dependencyMap[17]).GestureDetector;
var defaultImport6;
var defaultImport7;
var object;
var defaultImport8;
var value;
const styles = useStyles();
let binding = env0_5;
const {controlsSpecs, setMode} = binding.useContext(importDefault(dependencyMap[13]));
const value3 = require(dependencyMap[14]).usePIPState();
let mode = value3.mode;
const {multiPIPWrapperStyles, mainPIPWrapperStyles, secondaryPIPWrapperStyles, mainPIPGesture,
secondaryPIPGesture} = usePIPGesture(mode);
const pushToTalk = importDefault(dependencyMap[25])(controlsSpecs).pushToTalk;
binding = env0_5;
const useState = binding.useState;
mode = value3.mode;
const value5 = null;
const value7 = env0_4(Reflect.apply(useState, binding, [value5 != mode]), 2);
const property = value7[0];
const env0_3 = value7[1];
env0_5.useEffect(_fun119131, [value3.mode, property]);
let r6 = value5 != value3.mode || property;
const value9 = require(dependencyMap[21]).useStateFromStoresObject([FramesStore], _fun119132);
const moduleValue3 = require(dependencyMap[15]);
const useAnimatedStyle = moduleValue3.useAnimatedStyle;
const closure = VoicePanelPIPZ;
const getVoicePanelPIPBorderRadius = require(dependencyMap[16]).getVoicePanelPIPBorderRadius;
closure.__closure = {getVoicePanelPIPBorderRadius: getVoicePanelPIPBorderRadius, pipState: value3};
closure.__workletHash = 9598016909682;
closure.__initData = env0_33;
const value10 = Reflect.apply(useAnimatedStyle, moduleValue3, [closure]);
const value11 = env0_5.useMemo(function() {
var object = {'accessible': true, 'accessibilityLabel': null, 'accessibilityRole': 'button'};
object.accessibilityLabel = require(dependencyMap[26]).intl.string(require(dependencyMap[26]).t.oN8bqe);
object.accessibilityActions = [{name: 'activate'}];
object.onAccessibilityAction = _fun119135;
return object;
}, [setMode]);
const value12 = env0_5.useMemo(function() {
var object = {accessible: true};
object.accessibilityLabel = require(dependencyMap[26]).intl.string(require(dependencyMap[26]).t['3ejJer']);
object.accessibilityActions = [{name: 'activate'}];
object.onAccessibilityAction = _fun119137;
return object;
}, [value9]);
const r17 = pushToTalk && (value3.mode !== VoicePanelPIPModes.IN_PANEL || VoicePanelStore(function(a0) {
return a0.isActivityFocused;
}));
const defaultImport = importDefault(dependencyMap[27]);
const defaultImportProps = {pointerEvents: 'box-none', style: [styles.multiPIPContainer, multiPIPWrapperStyles],
layout: env0_19};
if (r6) {
defaultImport2 = importDefault(dependencyMap[27]);
r6 = ((Component) => <Component style={[styles.pipContentWrapper, styles.inAppElevationShadow,
mainPIPWrapperStyles]} pointerEvents="box-none" layout={env0_19} {...value11}><GestureDetector gesture={mainPIPGesture}>{((Component) => <Component style={[styles.pipMask,
value10]} layout={env0_19}>{((Component) => <Component />)(importDefault(dependencyMap[28]))}</Component>)(importDefault(dependencyMap[27]))}</GestureDetector>{r17 ? ((Component) => <Component />)(importDefault(dependencyMap[29])) : value5}</Component>)(defaultImport2);
}
const showSecondaryPIP = value3.showSecondaryPIP;
if (showSecondaryPIP) {
defaultImport6 = importDefault(dependencyMap[30]);
var defaultImport6Props = {style: secondaryPIPWrapperStyles, ...value12};
defaultImport7 = importDefault(dependencyMap[27]);
var defaultImport7Props = {style: [styles.pipMask, value10]};
object = {gesture: secondaryPIPGesture};
defaultImport8 = importDefault(dependencyMap[30]);
var defaultImport8Props = {style: StyleSheet.absoluteFill};
value = importDefault(dependencyMap[31]);
value = ((Component) => <Component {...defaultImport7Props}><GestureDetector {...object}>{((Component) => <Component {...defaultImport8Props}>{((Component) => <Component />)(value)}</Component>)(defaultImport8)}</GestureDetector></Component>)(defaultImport7);
value = ((Component) => <Component {...defaultImport6Props}>{value}</Component>)(defaultImport6);
r5 = value;
} else {
r5 = showSecondaryPIP;
}
return ((Component) => <Component {...defaultImportProps}>{r6}{r5}</Component>)(defaultImport);
}
function renderPIPWrapper(a0, a1, a2, a3) { // fn#119139, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:15479, offset: 0x024fe9a2, size: 57 bytes, params: 5, frame: 15
return ((Component) => <Component pipMode={a1.pipMode} transitionState={a2} transitionCleanUp={a3} key={a0} />)(env0_36);
}
function _fun119140() { // fn#119140, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:910, offset: 0x024fe9db, size: 88 bytes, params: 1, frame: 14
const closure = layoutTransition_119141;
const object2 = {};
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.LAYOUT_PHYSICS = env0_17;
closure.__closure = object2;
closure.__workletHash = 9346092352642;
closure.__initData = env0_18;
return closure;
}
function _fun119142({pipMode, transitionState, transitionCleanUp}) { // fn#119142, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:14490, offset: 0x024feb0c, size: 497 bytes, params: 2, frame: 24
var object2;
let binding = undefined;
const useState = binding.useState;
const IN_PANEL = VoicePanelPIPModes.IN_PANEL;
const value5 = undefined(Reflect.apply(useState, binding,
[pipMode === IN_PANEL || transitionState === (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates.MOUNTED]),
2);
const property = value5[0];
const env0_2 = value5[1];
binding = undefined;
let closure = function() {
var env0_0 = global.setTimeout(_fun119144, 400);
return _fun119145;
};
binding.useEffect(closure, []);
const env0_3 = undefined.useRef(null);
const value7 = undefined.useCallback(_fun119146, [transitionCleanUp]);
undefined.useEffect(_fun119147, [transitionState, value7]);
binding = undefined;
const useContext = binding.useContext;
const panelCardStillInPIP = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).panelCardStillInPIP;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
closure = I_119149;
object2 = {transitionState: transitionState};
const TransitionStates = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates;
object2.TransitionStates = TransitionStates;
object2.panelCardStillInPIP = panelCardStillInPIP;
closure.__closure = object2;
closure.__workletHash = 10653972388666;
closure.__initData = env0_34;
const closure2 = f_119150;
closure2.__closure = {runOnJS: reanimatedRexportModule.runOnJS, fireCleanup: value7};
closure2.__workletHash = 1599147342710;
closure2.__initData = env0_35;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
return property ? <VoicePanelPIP /> : null;
}
function VoicePanelPIPWrapper() { // fn#119151, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:15600, offset: 0x024fee8a, size: 112 bytes, params: 1, frame: 17
const value2 = undefined;
const {mode,
showSecondaryPIP} = (require(15444) /* metro dependency 15444: VoicePanelPIPStateContext */).usePIPState();
const TransitionItem = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionItem;
return (
<TransitionItem item={mode != null || showSecondaryPIP ? {pipMode: mode} : value2} renderItem={renderPIPWrapper} />
);
}
function usePIPGesture(a0) { // fn#119109, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:6501, owner: VoicePanelPIP.usePIPGesture, offset: 0x024fd66b, size: 892 bytes, params: 2, frame: 36
var object2;
let env0_0 = a0;
const styles = useStyles();
let binding = env1_5;
const value2 = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const controlsSpecs = value2.controlsSpecs;
const hideControls = value2.hideControls;
const pipAvoidanceSpecs = value2.pipAvoidanceSpecs;
const safeArea = value2.safeArea;
const setFocused = value2.setFocused;
const setMode = value2.setMode;
const showControls = value2.showControls;
const windowDimensions = value2.windowDimensions;
const wrapperDimensions = value2.wrapperDimensions;
const wrapperOffset = value2.wrapperOffset;
const env0_12 = value2.channelId;
const value3 = (require(15444) /* metro dependency 15444: VoicePanelPIPStateContext */).usePIPState();
const value4 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue({'x': 0, 'y': 0,
'absoluteX': 0, 'absoluteY': 0, 'active': false, 'pressed': false});
const value5 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(0);
env1_5.useEffect(function() {
var env0_0 = global.setTimeout(_fun119111, 200);
return _fun119112;
}, [value5]);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
let useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
let closure = usePIPGestureU;
object2 = {pipState: value3};
const getClampedPIPPosition = (require(15439) /* metro dependency 15439: VoicePanelPIPUtils */).getClampedPIPPosition;
object2.getClampedPIPPosition = getClampedPIPPosition;
object2.wrapperDimensions = wrapperDimensions;
object2.windowDimensions = windowDimensions;
object2.safeArea = safeArea;
object2.pipAvoidanceSpecs = pipAvoidanceSpecs;
object2.initialGestureOffset = value4;
object2.opacity = value5;
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.DRAWER_SPRING_PHYSICS = DRAWER_SPRING_PHYSICS;
object2.LAYOUT_PHYSICS = env1_17;
const getVoicePanelPIPBorderRadius = (require(15439) /* metro dependency 15439: VoicePanelPIPUtils */).getVoicePanelPIPBorderRadius;
object2.getVoicePanelPIPBorderRadius = getVoicePanelPIPBorderRadius;
closure.__closure = object2;
closure.__workletHash = 6729444248940;
closure.__initData = env1_21;
const value6 = Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
const moduleValue5 = reanimatedRexportModule;
useAnimatedStyle = moduleValue5.useAnimatedStyle;
closure = usePIPGestureJ;
closure.__closure = {pipState: value3, getVoicePanelPIPBorderRadius: getVoicePanelPIPBorderRadius};
closure.__workletHash = 1914976453427;
closure.__initData = env1_22;
const value7 = Reflect.apply(useAnimatedStyle, moduleValue5, [closure]);
binding = env1_5;
let useMemo = binding.useMemo;
const value8 = Reflect.apply(useMemo, binding, [_fun119115, [styles, value3.width, value3.height]]);
const value9 = env1_5.useCallback(_fun119116, [value4, safeArea, windowDimensions, wrapperDimensions,
wrapperOffset]);
const value10 = env1_5.useMemo(_fun119124, [controlsSpecs, hideControls, setFocused, showControls, a0, setMode,
value9]);
const {currentEmbeddedActivityIsNotInCurrentChannel,
hasFrame} = (require(566) /* metro dependency 566: flux */).useStateFromStoresObject([EmbeddedActivitiesStore,
FramesStore], _fun119127);
const value12 = env1_5.useCallback(_fun119128, [currentEmbeddedActivityIsNotInCurrentChannel, hasFrame, setMode,
setFocused]);
binding = env1_5;
useMemo = binding.useMemo;
return {multiPIPWrapperStyles: value6, mainPIPWrapperStyles: value7, secondaryPIPWrapperStyles: value8,
mainPIPGesture: value10, secondaryPIPGesture: Reflect.apply(useMemo, binding, [_fun119129, [value9, value12]])};
}
function _fun119131() { // fn#119131, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:12651, offset: 0x024fe7a5, size: 45 bytes, params: 1, frame: 11
if (!(env0_1.mode == null || env0_2)) {
env0_3(true);
}
}
function _fun119132() { // fn#119132, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:12759, offset: 0x024fe7d2, size: 25 bytes, params: 1, frame: 9
const value = environment.__proto__;
return FramesStore.getConnectedFrame() != null;
}
function VoicePanelPIPZ() { // fn#119133, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:12826, owner: VoicePanelPIP.Z, offset: 0x024fe7eb, size: 62 bytes, params: 1, frame: 14
let value = environment.__proto__;
value = require(15439) /* metro dependency 15439: VoicePanelPIPUtils */;
const getVoicePanelPIPBorderRadius = value.getVoicePanelPIPBorderRadius;
const binding = env0_1;
return {borderRadius: Reflect.apply(getVoicePanelPIPBorderRadius, value, [binding.width, binding.height])};
}
function _fun119134() { // fn#119134, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:13057, offset: 0x024fe829, size: 121 bytes, params: 1, frame: 15
const object2 = {'accessible': true, 'accessibilityLabel': null, 'accessibilityRole': 'button'};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.accessibilityLabel = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.oN8bqe);
object2.accessibilityActions = [{name: 'activate'}];
object2.onAccessibilityAction = function() {
setMode(VoicePanelModes.PANEL);
};
return object2;
}
function _fun119136() { // fn#119136, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:13265, offset: 0x024fe8bf, size: 111 bytes, params: 1, frame: 15
const object2 = {accessible: true};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.accessibilityLabel = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['3ejJer']);
object2.accessibilityActions = [{name: 'activate'}];
object2.onAccessibilityAction = onAccessibilityAction_119137;
return object2;
}
function layoutTransition_119141({targetOriginX, targetOriginY, targetWidth, targetHeight, currentOriginX, currentOriginY, currentWidth, currentHeight}) { // fn#119141, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:942, offset: 0x024fea33, size: 217 bytes, params: 2, frame: 21
const object = {};
object.originX = (require(4577) /* metro dependency 4577: spring */).withSpring(targetOriginX, env1_17);
object.originY = (require(4577) /* metro dependency 4577: spring */).withSpring(targetOriginY, env1_17);
object.width = (require(4577) /* metro dependency 4577: spring */).withSpring(targetWidth, env1_17);
object.height = (require(4577) /* metro dependency 4577: spring */).withSpring(targetHeight, env1_17);
return {animations: object, initialValues: {originX: currentOriginX, originY: currentOriginY, width: currentWidth,
height: currentHeight}};
}
function _fun119143() { // fn#119143, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:14658, offset: 0x024fecfd, size: 44 bytes, params: 1, frame: 14
const env0_0 = global.setTimeout(_fun119144, 400);
return _fun119145;
}
function _fun119146() { // fn#119146, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:14769, offset: 0x024fed29, size: 64 bytes, params: 1, frame: 13
if (env0_3.current != null) {
global.clearTimeout(env0_3.current);
env0_3.current = null;
}
transitionCleanUp();
}
function _fun119147() { // fn#119147, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:14856, offset: 0x024fed69, size: 95 bytes, params: 1, frame: 14
const transitionStateBinding = transitionState;
const TransitionStates = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates;
const YEETED = TransitionStates.YEETED;
if (transitionStateBinding === YEETED) {
env0_3.current = global.setTimeout(env0_4, 500);
return _fun119148;
}
}
function I_119149() { // fn#119149, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:15102, offset: 0x024fee00, size: 69 bytes, params: 1, frame: 13
const transitionStateBinding = transitionState;
const TransitionStates = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates;
const YEETED = TransitionStates.YEETED;
return transitionStateBinding === YEETED && !panelCardStillInPIP.get();
}
function f_119150(a0, a1) { // fn#119150, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:15301, offset: 0x024fee45, size: 69 bytes, params: 3, frame: 12
var r0;
let value = a0;
if (value) {
value = a1 !== value;
r0 = value;
} else {
r0 = value;
}
if (r0) {
value = environment.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value.runOnJS(env0_4)();
}
}
function _fun119110() { // fn#119110, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:6900, offset: 0x024fd9e7, size: 41 bytes, params: 1, frame: 14
const env0_0 = global.setTimeout(_fun119111, 200);
return _fun119112;
}
function usePIPGestureU() { // fn#119113, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:7019, owner: VoicePanelPIP.usePIPGesture.U, offset: 0x024fda28, size: 473 bytes, params: 1, frame: 24
let binding = env0_13;
const width = binding.width;
const showSecondaryPIP = binding.showSecondaryPIP;
binding = env0_13;
const r3 = showSecondaryPIP ? binding.containerHeight : binding.height;
const value3 = undefined;
const voicePanelPIPUtilsModule = require(15439) /* metro dependency 15439: VoicePanelPIPUtils */;
const getClampedPIPPosition = voicePanelPIPUtilsModule.getClampedPIPPosition;
let object2 = {};
const wrapperDimensionsBinding = wrapperDimensions;
let get = wrapperDimensionsBinding.get;
object2.pipX = Reflect.apply(get, wrapperDimensionsBinding, []).pipX;
get = wrapperDimensionsBinding.get;
object2.pipY = Reflect.apply(get, wrapperDimensionsBinding, []).pipY;
object2.width = width;
object2.height = r3;
object2.windowDimensions = windowDimensions.get();
object2.safeArea = safeArea.get();
const pipAvoidanceSpecsBinding = pipAvoidanceSpecs;
get = pipAvoidanceSpecsBinding.get;
object2.bottomAvoidanceRegion = Reflect.apply(get, pipAvoidanceSpecsBinding, []).bottom;
get = pipAvoidanceSpecsBinding.get;
object2.topAvoidanceRegion = Reflect.apply(get, pipAvoidanceSpecsBinding, []).top;
binding = env0_14;
get = binding.get;
object2.positionOffset = Reflect.apply(get, binding, []).active ? env0_14.get() : value3;
const {x, y} = Reflect.apply(getClampedPIPPosition, voicePanelPIPUtilsModule, [object2]);
object2 = {width: width, height: r3};
object2.opacity = env0_15.get();
const springModule = require(4577) /* metro dependency 4577: spring */;
let withSpring = springModule.withSpring;
binding = env0_14;
get = binding.get;
const items2 = [{translateX: Reflect.apply(withSpring, springModule, [x, Reflect.apply(get, binding,
[]).active ? DRAWER_SPRING_PHYSICS : env2_17])}];
const moduleValue3 = springModule;
withSpring = moduleValue3.withSpring;
binding = env0_14;
get = binding.get;
items2[1] = {translateY: Reflect.apply(withSpring, moduleValue3, [y, Reflect.apply(get, binding,
[]).active ? DRAWER_SPRING_PHYSICS : env2_17])};
object2.transform = items2;
object2.borderRadius = voicePanelPIPUtilsModule.getVoicePanelPIPBorderRadius(width, r3);
return object2;
}
function usePIPGestureJ() { // fn#119114, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:7968, owner: VoicePanelPIP.usePIPGesture.j, offset: 0x024fdc01, size: 70 bytes, params: 1, frame: 15
const {width, height} = env0_13;
const object2 = {width: width, height: height};
const value = environment.__proto__.__proto__;
object2.borderRadius = (require(15439) /* metro dependency 15439: VoicePanelPIPUtils */).getVoicePanelPIPBorderRadius(width,
height);
return object2;
}
function _fun119115() { // fn#119115, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:8239, offset: 0x024fdc47, size: 112 bytes, params: 1, frame: 16
const stylesBinding = styles;
const items2 = [stylesBinding.pipContentWrapper];
const object2 = {};
const binding = env0_13;
object2.width = binding.width;
object2.height = binding.height;
const value = environment.__proto__.__proto__;
object2.borderRadius = (require(15439) /* metro dependency 15439: VoicePanelPIPUtils */).getVoicePanelPIPBorderRadius(binding.width,
binding.height);
items2[1] = object2;
items2[2] = stylesBinding.inAppElevationShadow;
return items2;
}
function _fun119116() { // fn#119116, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:8429, offset: 0x024fdcb7, size: 765 bytes, params: 1, frame: 24
var object2;
const Gesture = (require(5321) /* metro dependency 5321 */).Gesture;
const shouldCancelWhenOutside2 = Gesture.Pan().enabled(true).manualActivation(true).maxPointers(1).shouldCancelWhenOutside(false);
const onBegin = shouldCancelWhenOutside2.onBegin;
let closure = c_119117;
const binding = env0_14;
closure.__closure = {initialGestureOffset: binding};
closure.__workletHash = 4684366251999;
closure.__initData = env2_29;
const value7 = Reflect.apply(onBegin, shouldCancelWhenOutside2, [closure]);
const onTouchesUp = value7.onTouchesUp;
closure = l_119118;
object2 = {};
object2.updateSharedValueIfChanged = importDefault(11282) /* metro dependency 11282: updateSharedValueIfChangedNative */;
object2.initialGestureOffset = binding;
closure.__closure = object2;
closure.__workletHash = 17295075038028;
closure.__initData = env2_28;
const value8 = Reflect.apply(onTouchesUp, value7, [closure]);
const onTouchesMove = value8.onTouchesMove;
closure = u_119119;
object2 = {};
const State = (require(5321) /* metro dependency 5321 */).State;
object2.State = State;
object2.initialGestureOffset = binding;
object2.MIN_GESTURE_START = 10;
object2.updateSharedValueIfChanged = importDefault(11282) /* metro dependency 11282: updateSharedValueIfChangedNative */;
const wrapperOffsetBinding = wrapperOffset;
object2.wrapperOffset = wrapperOffsetBinding;
const runOnJS = (require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS;
object2.runOnJS = runOnJS;
object2.triggerIOSHaptic = importDefault(15446) /* metro dependency 15446: triggerIOSHaptic */;
closure.__closure = object2;
closure.__workletHash = 16714994610987;
closure.__initData = env2_27;
const value9 = Reflect.apply(onTouchesMove, value8, [closure]);
const onChange = value9.onChange;
closure = o_119120;
closure.__closure = {updateSharedValueIfChanged: importDefault(11282) /* metro dependency 11282: updateSharedValueIfChangedNative */,
initialGestureOffset: binding};
closure.__workletHash = 7822444262980;
closure.__initData = env2_26;
const value10 = Reflect.apply(onChange, value9, [closure]);
const onEnd = value10.onEnd;
closure = s_119121;
object2 = {};
object2.calculatePIPPositionFromVelocity = (require(15439) /* metro dependency 15439: VoicePanelPIPUtils */).calculatePIPPositionFromVelocity;
object2.windowDimensions = windowDimensions;
object2.safeArea = safeArea;
object2.updateSharedValueIfChanged = importDefault(11282) /* metro dependency 11282: updateSharedValueIfChangedNative */;
object2.wrapperDimensions = wrapperDimensions;
object2.wrapperOffset = wrapperOffsetBinding;
object2.initialGestureOffset = binding;
object2.runOnJS = runOnJS;
object2.updateSourceTrackingView = (importDefault(10684) /* metro dependency 10684: ExternalPipAndroid */).updateSourceTrackingView;
closure.__closure = object2;
closure.__workletHash = 1502716164658;
closure.__initData = env2_25;
const value11 = Reflect.apply(onEnd, value10, [closure]);
const onTouchesCancelled = value11.onTouchesCancelled;
closure = n_119122;
closure.__closure = {updateSharedValueIfChanged: importDefault(11282) /* metro dependency 11282: updateSharedValueIfChangedNative */,
initialGestureOffset: binding};
closure.__workletHash = 4606005866023;
closure.__initData = env2_24;
const value12 = Reflect.apply(onTouchesCancelled, value11, [closure]);
const onFinalize = value12.onFinalize;
closure = t_119123;
closure.__closure = {updateSharedValueIfChanged: importDefault(11282) /* metro dependency 11282: updateSharedValueIfChangedNative */,
initialGestureOffset: binding};
closure.__workletHash = 5443656412422;
closure.__initData = env2_23;
return Reflect.apply(onFinalize, value12, [closure]);
}
function _fun119124() { // fn#119124, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:10868, offset: 0x024fe334, size: 408 bytes, params: 1, frame: 27
var environment;
const value = environment.__proto__.__proto__;
const Gesture = (require(5321) /* metro dependency 5321 */).Gesture;
const Exclusive = Gesture.Exclusive;
const Gesture2 = (require(5321) /* metro dependency 5321 */).Gesture;
const value2 = Gesture2.Tap();
const enabled = value2.enabled;
const binding = env0_0;
const IN_APP = VoicePanelPIPModes.IN_APP;
const value5 = Reflect.apply(enabled, value2, [binding !== IN_APP]).maxDistance(30);
let onStart = value5.onStart;
let closure = s_119125;
const runOnJS = (require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS;
closure.__closure = {runOnJS: runOnJS, setFocused: setFocused};
closure.__workletHash = 10703348418884;
closure.__initData = env2_30;
const value7 = Reflect.apply(onStart, value5, [closure]).numberOfTaps(2);
const Gesture3 = (require(5321) /* metro dependency 5321 */).Gesture;
const value10 = Gesture3.Tap().enabled(true).maxDistance(30);
onStart = value10.onStart;
closure = n_119126;
closure.__closure = {pipMode: binding, VoicePanelPIPModes: VoicePanelPIPModes, runOnJS: runOnJS, setMode: setMode,
VoicePanelModes: VoicePanelModes, controlsSpecs: controlsSpecs,
VoicePanelControlsModes: VoicePanelControlsModes, showControls: showControls, hideControls: hideControls};
closure.__workletHash = 9532493963151;
closure.__initData = env2_31;
return Reflect.apply(Exclusive, Gesture, [value7, Reflect.apply(onStart, value10, [closure]), env0_16()]);
}
function _fun119127() { // fn#119127, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:11612, offset: 0x024fe5c2, size: 107 bytes, params: 1, frame: 15
const value = environment.__proto__.__proto__;
const embeddedActivityLocationChannelId = (require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */).getEmbeddedActivityLocationChannelId(EmbeddedActivitiesStore.getCurrentEmbeddedActivity()?.location);
const getConnectedFrame = FramesStore.getConnectedFrame;
return {currentEmbeddedActivityIsNotInCurrentChannel: embeddedActivityLocationChannelId !== channelId,
hasFrame: Reflect.apply(getConnectedFrame, FramesStore, []) != null};
}
function _fun119128() { // fn#119128, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:11914, offset: 0x024fe62d, size: 147 bytes, params: 1, frame: 12
var setModeBinding;
var value2;
var moduleValue;
var defaultImport;
if (currentEmbeddedActivityIsNotInCurrentChannel) {
setModeBinding = setMode;
value2 = environment.__proto__.__proto__;
setModeBinding(VoicePanelModes.PIP);
setFocused(null);
}
if (hasFrame) {
defaultImport = importDefault(8087) /* metro dependency 8087: FramesActionCreatorsNative */;
defaultImport.updateFramePanelMode(ActivityPanelModes.PANEL);
} else {
moduleValue = importAll(7860) /* metro dependency 7860: EmbeddedActivitiesActionCreators */;
moduleValue.updateActivityPanelMode(ActivityPanelModes.PANEL);
}
}
function _fun119129() { // fn#119129, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:12171, offset: 0x024fe6c0, size: 181 bytes, params: 1, frame: 20
var environment;
const value = environment.__proto__.__proto__;
const Gesture = (require(5321) /* metro dependency 5321 */).Gesture;
const Exclusive = Gesture.Exclusive;
const Gesture2 = (require(5321) /* metro dependency 5321 */).Gesture;
const value3 = Gesture2.Tap().maxDistance(30);
const onStart = value3.onStart;
const closure = t_119130;
const object2 = {};
object2.runOnJS = (require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS;
object2.handleSecondaryPIPTap = env0_19;
closure.__closure = object2;
closure.__workletHash = 8361527940381;
closure.__initData = env2_32;
return Reflect.apply(Exclusive, Gesture, [Reflect.apply(onStart, value3, [closure]), env0_16()]);
}
function onAccessibilityAction_119137() { // fn#119137, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:13410, offset: 0x024fe92e, size: 105 bytes, params: 1, frame: 12
var moduleValue;
var defaultImport;
if (env1_4) {
defaultImport = importDefault(8087) /* metro dependency 8087: FramesActionCreatorsNative */;
defaultImport.updateFramePanelMode(ActivityPanelModes.PANEL);
} else {
moduleValue = importAll(7860) /* metro dependency 7860: EmbeddedActivitiesActionCreators */;
moduleValue.updateActivityPanelMode(ActivityPanelModes.PANEL);
}
}
function _fun119148() { // fn#119148, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:14936, offset: 0x024fedc8, size: 56 bytes, params: 1, frame: 13
if (env1_3.current != null) {
global.clearTimeout(env1_3.current);
env1_3.current = null;
}
}
function _fun119111() { // fn#119111, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:6923, offset: 0x024fda10, size: 24 bytes, params: 1, frame: 11
env1_15.set(1);
}
function c_119117({absoluteX, absoluteY}) { // fn#119117, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:8551, offset: 0x024fdfb4, size: 62 bytes, params: 2, frame: 13
env1_14.set({'x': 0, 'y': 0, 'absoluteX': null, 'absoluteY': null, 'active': false, 'pressed': true,
absoluteX: absoluteX, absoluteY: absoluteY});
}
function l_119118() { // fn#119118, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:8751, offset: 0x024fdff2, size: 49 bytes, params: 1, frame: 14
const value = environment.__proto__.__proto__.__proto__;
(importDefault(11282) /* metro dependency 11282: updateSharedValueIfChangedNative */)(env1_14, {pressed: false});
}
function u_119119(a0, a1) { // fn#119119, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:8927, offset: 0x024fe023, size: 347 bytes, params: 3, frame: 21
var value2;
var binding;
var property;
var absoluteY;
var absoluteX;
var Math;
var abs;
const state = a0.state;
let value = environment.__proto__.__proto__.__proto__;
const State = (require(5321) /* metro dependency 5321 */).State;
const BEGAN = State.BEGAN;
if (state === BEGAN) {
value2 = environment.__proto__;
binding = env1_14;
if (!binding.get().active) {
property = a0.changedTouches[0];
absoluteY = property.absoluteY;
absoluteX = property.absoluteX;
Math = global.Math;
abs = Math.abs;
binding = env1_14;
if (Reflect.apply(abs, Math,
[binding.get().absoluteX - absoluteX]) > 10 || global.Math.abs(env1_14.get().absoluteY - absoluteY) > 10) {
env1_14.set({'x': 0, 'y': 0, 'absoluteX': null, 'absoluteY': null, 'pressed': true, 'active': true,
absoluteX: absoluteX, absoluteY: absoluteY});
(importDefault(11282) /* metro dependency 11282: updateSharedValueIfChangedNative */)(wrapperOffset,
{'gestureActive': true, 'x': 0, 'y': 0});
a1.activate();
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value.runOnJS(importDefault(15446) /* metro dependency 15446: triggerIOSHaptic */)();
}
}
}
}
function o_119120({absoluteX, absoluteY}) { // fn#119120, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:9507, offset: 0x024fe17e, size: 103 bytes, params: 2, frame: 16
let value = environment.__proto__.__proto__.__proto__;
value = importDefault(11282) /* metro dependency 11282: updateSharedValueIfChangedNative */;
const binding = env1_14;
const object2 = {};
let get = binding.get;
object2.x = absoluteX - Reflect.apply(get, binding, []).absoluteX;
get = binding.get;
object2.y = absoluteY - Reflect.apply(get, binding, []).absoluteY;
value(binding, object2);
}
function s_119121({velocityX, velocityY, absoluteX, absoluteY}) { // fn#119121, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:9733, offset: 0x024fe1e5, size: 281 bytes, params: 2, frame: 20
let value = environment.__proto__.__proto__.__proto__;
const voicePanelPIPUtilsModule = require(15439) /* metro dependency 15439: VoicePanelPIPUtils */;
const calculatePIPPositionFromVelocity = voicePanelPIPUtilsModule.calculatePIPPositionFromVelocity;
const object2 = {velocityX: velocityX, velocityY: velocityY, absoluteX: absoluteX, absoluteY: absoluteY};
object2.windowDimensions = windowDimensions.get();
object2.safeArea = safeArea.get();
const value3 = Reflect.apply(calculatePIPPositionFromVelocity, voicePanelPIPUtilsModule, [object2]);
(importDefault(11282) /* metro dependency 11282: updateSharedValueIfChangedNative */)(wrapperDimensions,
{pipX: value3.pipX, pipY: value3.pipY});
(importDefault(11282) /* metro dependency 11282: updateSharedValueIfChangedNative */)(wrapperOffset,
{gestureActive: false});
(importDefault(11282) /* metro dependency 11282: updateSharedValueIfChangedNative */)(env1_14, {'active': false,
'pressed': false});
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value.runOnJS((importDefault(10684) /* metro dependency 10684: ExternalPipAndroid */).updateSourceTrackingView)();
}
function n_119122() { // fn#119122, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:10470, offset: 0x024fe2fe, size: 54 bytes, params: 1, frame: 13
const value = environment.__proto__.__proto__.__proto__;
(importDefault(11282) /* metro dependency 11282: updateSharedValueIfChangedNative */)(env1_14, {'active': false,
'pressed': false});
}
function s_119125() { // fn#119125, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:10979, offset: 0x024fe4cc, size: 51 bytes, params: 1, frame: 12
let value = environment.__proto__.__proto__.__proto__;
value = Reflect.apply((require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS, value, [setFocused]);
value(null);
}
function n_119126() { // fn#119126, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:11197, offset: 0x024fe4ff, size: 195 bytes, params: 1, frame: 14
var controlsSpecsBinding;
var moduleValue;
var moduleValue2;
var moduleValue3;
const value = environment.__proto__;
const binding = env1_0;
const IN_APP = VoicePanelPIPModes.IN_APP;
if (binding === IN_APP) {
moduleValue3 = require(4017) /* metro dependency 4017: ReanimatedRexport */;
moduleValue3.runOnJS(setMode)(VoicePanelModes.PANEL);
} else {
controlsSpecsBinding = controlsSpecs;
if (controlsSpecsBinding.get().mode === VoicePanelControlsModes.HIDDEN) {
moduleValue2 = require(4017) /* metro dependency 4017: ReanimatedRexport */;
moduleValue2.runOnJS(showControls)();
} else {
moduleValue = require(4017) /* metro dependency 4017: ReanimatedRexport */;
moduleValue.runOnJS(hideControls)();
}
}
}
function t_119130() { // fn#119130, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15759:12261, offset: 0x024fe775, size: 48 bytes, params: 1, frame: 12
let value = environment.__proto__.__proto__.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value.runOnJS(env1_19)();
}
@@ -0,0 +1,13 @@
/* Metro module 15440; source: modules/voice_panel/native/pip/VoicePanelPIPConstants.tsx; dependencies: [2] */
function _fun118146(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118146, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15637:6, offset: 0x024cdb4a, size: 182 bytes, params: 8, frame: 16
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/pip/VoicePanelPIPConstants.tsx');
exports.VoicePanelPIPModes = {IN_APP: 'IN_APP', IN_PANEL: 'IN_PANEL'};
exports.PIP_OFFSET_BOTTOM = 44;
exports.PIPReferenceDimensions = {'width': 200, 'height': 200};
exports.SquarePIPReferenceDimensions = {'width': 120, 'height': 120};
exports.SquareActivityPIPReferenceDimensions = {'width': 96, 'height': 96};
exports.DEFAULT_PIP_POSITION_OFFSET = 72;
}
@@ -0,0 +1,837 @@
/* Metro module 15563; source: modules/voice_panel/native/pip/VoicePanelPIPContent.tsx; dependencies: [57, 31, 27, 1378, 4606, 7730, 4492, 1226, 1379, 1878, 11795, 15440, 661, 4237, 4299, 33, 4501, 697, 11794, 15434, 10688, 1239, 4508, 15444, 6821, 15439, 632, 1478, 4017, 10704, 8468, 10678, 10692, 1305, 9149, 11797, 8141, 15357, 10684, 10674, 9933, 2] */
function _fun119152(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#119152, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:6, offset: 0x024feefa, size: 1090 bytes, params: 8, frame: 26
var object2;
const env0_0 = require;
const _arrayLikeToArray_119155 = 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 markContentReady = function() {
var ComponentDispatch = require(dependencyMap[21]).ComponentDispatch;
ComponentDispatch.dispatch(ComponentActions.VOICE_PANEL_PIP_CONTENT_READY);
};
const getFocusedKey = function(a0) {
return a0.id;
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
let value = importAll(31) /* metro dependency 31 */;
let value2 = require(27) /* metro dependency 27 */;
const env0_5 = value2.PixelRatio;
const StyleSheet = value2.StyleSheet;
const embeddedActivitiesStore = importDefault(1378) /* metro dependency 1378: EmbeddedActivitiesStore */;
const channelRTCStore = importDefault(4606) /* metro dependency 4606: ChannelRTCStore */;
const channelCallLifecycleStore = importDefault(7730) /* metro dependency 7730: ChannelCallLifecycleStore */;
const applicationStreamingStore = importDefault(4492) /* metro dependency 4492: ApplicationStreamingStore */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const env0_13 = (require(11795) /* metro dependency 11795: VoicePanelConstants */).VoicePanelModes;
const env0_14 = (require(15440) /* metro dependency 15440: VoicePanelPIPConstants */).VoicePanelPIPModes;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_15 = constantsModule.ApplicationStreamStates;
const env0_16 = constantsModule.ComponentActions;
const constantsModule2 = require(4237) /* metro dependency 4237: Constants */;
const env0_17 = constantsModule2.ActivityLayoutMode;
const env0_18 = constantsModule2.OrientationLockState;
const callConstantsModule = require(4299) /* metro dependency 4299: CallConstants */;
const env0_19 = callConstantsModule.ParticipantTypes;
const env0_20 = callConstantsModule.isActivityParticipant;
const value6 = require(33) /* metro dependency 33 */;
const env0_21 = value6.jsx;
const env0_22 = value6.jsxs;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {contentWrapper: {'position': 'absolute', 'width': '100%', 'height': '100%', 'overflow': 'hidden',
'alignItems': 'center', 'justifyContent': 'center'}};
object2.userOpacity = {opacity: 0.1};
object2.activity = {'position': 'absolute', 'width': '100%', 'height': '100%'};
object2.user = {'position': 'absolute', 'width': '100%', 'height': '100%', 'alignItems': 'center',
'justifyContent': 'center'};
object2.video = {'position': 'absolute', 'width': '100%', 'height': '100%'};
object2.avatarWrapper = {'position': 'relative', 'width': '56%', 'height': '56%', 'alignItems': 'center',
'justifyContent': 'center'};
const object4 = {'width': 22, 'height': 22, 'backgroundColor': 'rgba(78, 80, 88, 0.48)', 'borderRadius': null,
'justifyContent': 'center', 'alignItems': 'center', 'position': 'absolute', 'top': 6, 'left': 6};
object4.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object2.thermalAlertIconContainer = object4;
const WHITE = (importDefault(697) /* metro dependency 697: native */).colors.WHITE;
object2.thermalAlertIcon = {'width': 14, 'height': 14, color: WHITE};
object2.onTop = {zIndex: 1};
object2.onBottom = {zIndex: 0};
object2.streamEmptyImage = {width: '50%'};
const object5 = {};
copyDataProperties(object5, StyleSheet.absoluteFillObject, undefined);
const BLACK = (importDefault(697) /* metro dependency 697: native */).colors.BLACK;
object5['backgroundColor'] = BLACK;
object2.emptyPip = object5;
object2.innerStroke = {'position': 'absolute', 'top': -1, 'left': -1, 'bottom': -1, 'right': -1, 'borderWidth': 2,
'borderColor': 'white', 'zIndex': 1, 'opacity': 0.3};
object2.blackBackground = {backgroundColor: 'black'};
const env0_23 = Reflect.apply(createStyles, createStylesModule, [object2]);
object2 = {code: 'function VoicePanelPIPContentTsx1(){const{windowDimensions}=this.__closure;return windowDimensions.get();}'};
object2 = {code: 'function VoicePanelPIPContentTsx2(windowDimensionsVal,previousWindowDimensionsVal){const{runOnJS,handleTargetAspectRatioParams}=this.__closure;if(windowDimensionsVal!==previousWindowDimensionsVal){runOnJS(handleTargetAspectRatioParams)(windowDimensionsVal);}}'};
object2 = {code: 'function VoicePanelPIPContentTsx3(){const{focused}=this.__closure;var _focused$get;return(_focused$get=focused.get())===null||_focused$get===void 0?void 0:_focused$get.id;}'};
object2 = {code: 'function VoicePanelPIPContentTsx4(focusedParticipantId,previousFocusedParticipantId){const{runOnJS,updateIsActivityFocused,mode}=this.__closure;if(focusedParticipantId!==previousFocusedParticipantId){runOnJS(updateIsActivityFocused)(focusedParticipantId,mode.get());}}'};
object2 = {code: 'function VoicePanelPIPContentTsx5(){const{mode}=this.__closure;return mode.get();}'};
object2 = {code: 'function VoicePanelPIPContentTsx6(modeVal,previousModeVal){const{runOnJS,updateIsActivityFocused,focused}=this.__closure;if(modeVal!==previousModeVal){var _focused$get;runOnJS(updateIsActivityFocused)((_focused$get=focused.get())===null||_focused$get===void 0?void 0:_focused$get.id,modeVal);}}'};
object2 = {code: "function VoicePanelPIPContentTsx7(){const{targetDimensions}=this.__closure;const{width:targetWidth,height:targetHeight}=targetDimensions.get();let height='100%';let width='100%';if(targetHeight<targetWidth){width='auto';}else{height='auto';}return{position:'absolute',aspectRatio:targetWidth/targetHeight,width:width,height:height};}"};
const env0_31 = value.memo(EmptyPIP);
value = value.memo(VoicePanelPIPContent);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/pip/VoicePanelPIPContent.tsx');
exports.default = value;
}
function _createForOfIteratorHelperLoose_119153(a0, a1) { // fn#119153, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:500, offset: 0x024ff33c, 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 _fun119154;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_119155(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_119155(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_119155(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun119154;
}
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 VideoStream(a0) { // fn#119156, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:2479, offset: 0x024ff4b0, size: 162 bytes, params: 2, frame: 20
const binding = env0_4;
const useContext = binding.useContext;
env0_4.useEffect(_fun119157,
[(require(15434) /* metro dependency 15434: VoicePanelStreamOutputSinkStack */).useSetHasActiveVideoOutputSink(Reflect.apply(useContext,
binding, [importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).streamOutputSinkStack),
a0.streamId]);
return ((Component) => <Component {...a0} />)(importDefault(10688) /* metro dependency 10688: VideoRendererNativeComponent */);
}
function useTransitionStyles(a0, a1, a2) { // fn#119160, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:2804, offset: 0x024ff5cc, size: 110 bytes, params: 4, frame: 18
const env0_0 = a1;
const env0_1 = a2;
env0_4.useEffect(_fun119161, [a1, a2]);
const TransitionStates = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates;
const YEETED = TransitionStates.YEETED;
return a1 === YEETED ? a0.onTop : a0.onBottom;
}
function InnerStroke({style}) { // fn#119166, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:3312, offset: 0x024ff78c, size: 161 bytes, params: 2, frame: 21
const {width, height} = (require(15444) /* metro dependency 15444: VoicePanelPIPStateContext */).usePIPState();
const styles = useStyles();
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const binding = env0_4;
const useMemo = binding.useMemo;
return (
<NativeView
style={Reflect.apply(useMemo, binding, [function() {
var items = [styles.innerStroke];
var object = {};
object.borderRadius = require(dependencyMap[25]).getVoicePanelPIPBorderRadius(width, height) + 1;
items[1] = object;
items[2] = style;
return items;
}, [width, height, styles.innerStroke, style]])}
/>
);
}
function ActivityInVoice({participantId, transitionState, transitionCleanUp}) { // fn#119168, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:3939, offset: 0x024ff88a, size: 779 bytes, params: 2, frame: 28
const styles = useStyles();
const value2 = useTransitionStyles(styles, transitionState, transitionCleanUp);
let binding = env0_4;
const {channelId, layoutManager,
windowDimensions} = binding.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const env0_3 = windowDimensions;
const channel = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([ChannelStore],
function() {
return ChannelStore.getChannel(channelId);
});
binding = env0_4;
const useState = binding.useState;
const TransitionStates = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates;
const MOUNTED = TransitionStates.MOUNTED;
const value5 = env0_3(Reflect.apply(useState, binding, [transitionState === MOUNTED]), 2);
const property = value5[0];
var env0_4 = property;
const env0_5 = value5[1];
const value6 = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([ChannelRTCStore],
function() {
var value3 = ChannelRTCStore.getParticipant(channelId, participantId);
return value3 == null || value3.type !== ParticipantTypes.ACTIVITY ? participantId : value3.applicationId;
}, [channelId, participantId]);
const value8 = env0_4.useCallback(_fun119172, [layoutManager,
(require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([EmbeddedActivitiesStore],
_fun119171, [value6]), value6]);
env0_4.useLayoutEffect(_fun119173, [value8]);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
const closure = function() {
return windowDimensions.get();
};
closure.__closure = {windowDimensions: windowDimensions};
closure.__workletHash = 20962628184;
closure.__initData = env0_24;
const closure2 = ActivityInVoiceU;
closure2.__closure = {runOnJS: reanimatedRexportModule.runOnJS, handleTargetAspectRatioParams: value8};
closure2.__workletHash = 10001753822389;
closure2.__initData = env0_25;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
const value10 = channel != null;
env0_4.useEffect(_fun119176, [value10, property]);
return property ? null : value10 ? ((Component) => <Component style={[styles.activity,
value2]}>{((Component) => <Component channel={channel} layoutMode={ActivityLayoutMode.PIP} />)(importDefault(10704) /* metro dependency 10704: EmbeddedActivityView */)}<InnerStroke /></Component>)(importDefault(6821) /* metro dependency 6821: NativeView */) : <User_119179 participantId={AuthenticationStore.getId()} />;
}
function User_119179({participantId, transitionState, transitionCleanUp}) { // fn#119179, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:6315, offset: 0x024ffdac, size: 1507 bytes, params: 2, frame: 40
var object5;
var r18;
var NativeView;
var Avatar;
var object2;
var moduleValue8;
var AvatarSizes;
var items2;
var NativeView2;
var Icon;
var object4;
var thermalAlertIcon;
var items4;
const styles = useStyles();
let value3 = useTransitionStyles(styles, transitionState, transitionCleanUp);
let value4 = env0_4.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const channelId = value4.channelId;
const env0_3 = channelId;
const guildId = value4.guildId;
const focused = value4.focused;
var env0_4 = focused;
const mode = value4.mode;
const layoutManager = value4.layoutManager;
const value5 = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([ChannelRTCStore],
function() {
var value3 = ChannelRTCStore.getParticipant(channelId, participantId);
var value4 = undefined;
var r1 = value3 ?? value4;
return (r1 == null ? value4 : r1.type) !== ParticipantTypes.USER ? value4 : r1;
});
const user = value5?.user;
const r28 = user ?? UserStore.getCurrentUser();
const value10 = env0_4.useMemo(_fun119181, [styles, value3,
(require(8468) /* metro dependency 8468: DominantColorUtils */).useDominantColorFromImage(r28?.getAvatarURL(guildId,
80, false))]);
const [property, env0_8] = env0_3(env0_4.useState(false), 2);
const value13 = (require(10678) /* metro dependency 10678: SurfaceDirectRendererExperiment */).useSurfaceDirectRendererExperiment(value5 == null || value5.user == null ? undefined : value5.user.id,
{location: 'VoicePanelPIPContent'});
const value14 = env0_4.useCallback(_fun119182, [channelId]);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
let useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
let closure = User_119179P;
closure.__closure = {focused: focused};
closure.__workletHash = 3980010676581;
closure.__initData = env0_26;
const closure2 = User_119179L;
closure2.__closure = {runOnJS: reanimatedRexportModule.runOnJS, updateIsActivityFocused: value14, mode: mode};
closure2.__workletHash = 5971237403457;
closure2.__initData = env0_27;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
const moduleValue5 = reanimatedRexportModule;
useAnimatedReaction = moduleValue5.useAnimatedReaction;
closure = function() {
return mode.get();
};
closure.__closure = {mode: mode};
closure.__workletHash = 8288240256860;
closure.__initData = env0_28;
const closure3 = User_119179S;
closure3.__closure = {runOnJS: reanimatedRexportModule.runOnJS, updateIsActivityFocused: value14, focused: focused};
closure3.__workletHash = 12552370107483;
closure3.__initData = env0_29;
Reflect.apply(useAnimatedReaction, moduleValue5, [closure, closure3]);
const {isReactingToThermalState,
consumedRequestToRespondToSeriousThermalState} = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStoresObject([ChannelCallLifecycleStore],
function() {
var object = {};
object.isReactingToThermalState = ChannelCallLifecycleStore.isReactingToThermalState();
object.consumedRequestToRespondToSeriousThermalState = ChannelCallLifecycleStore.consumedRequestToRespondToSeriousThermalState();
return object;
});
const value16 = env0_4.useCallback(function({nativeEvent}) {
var width = nativeEvent.width;
nativeEvent = nativeEvent.height;
layoutManager.setTargetDimensions(participantId, width, nativeEvent);
}, [layoutManager, participantId]);
let r5 = (require(10692) /* metro dependency 10692: participantHasVideo */).useCanRenderParticipantVideo(value5) && !(property && isReactingToThermalState);
env0_4.useEffect(_fun119189, [r5]);
const NativeView3 = importDefault(6821) /* metro dependency 6821: NativeView */;
object5 = {};
if (r5) {
object5.style = [styles.blackBackground, styles.user];
items4 = [<AnimatedVideoWrapper style={value3} participantId={participantId}><VideoStream useSurfaceDirectRenderer={value13} streamId={value5.streamId} style={[styles.video,
undefined]} onSize={value16} onReady={markContentReady} /></AnimatedVideoWrapper>];
items4[1] = <InnerStroke />;
object5.children = items4;
} else {
object5.style = value10;
NativeView = NativeView3;
var defaultImport2Props = {style: styles.avatarWrapper};
if (r28 != null) {
Avatar = (require(1305) /* metro dependency 1305: native */).Avatar;
object2 = {};
moduleValue8 = require(8468) /* metro dependency 8468: DominantColorUtils */;
object2.source = moduleValue8.getCachedSourceFromURI(r28.getAvatarURL(guildId, 80, false));
AvatarSizes = (require(1305) /* metro dependency 1305: native */).AvatarSizes;
object2.size = property ? AvatarSizes.LARGE : AvatarSizes.XLARGE;
object2.avatarDecoration = value5?.userAvatarDecoration;
r18 = <Avatar {...object2} />;
} else {
r18 = null;
}
items2 = [<NativeView {...defaultImport2Props}>{r18}</NativeView>];
items2[1] = <InnerStroke style={styles.userOpacity} />;
if (property) {
if (consumedRequestToRespondToSeriousThermalState) {
NativeView2 = importDefault(6821) /* metro dependency 6821: NativeView */;
var defaultImport3Props = {style: styles.thermalAlertIconContainer};
Icon = (require(1305) /* metro dependency 1305: native */).Icon;
object4 = {};
thermalAlertIcon = styles.thermalAlertIcon;
object4.style = thermalAlertIcon;
object4.source = importDefault(9149) /* metro dependency 9149 */;
thermalAlertIcon = styles.thermalAlertIcon;
object4.color = thermalAlertIcon.color;
r5 = <NativeView2 {...defaultImport3Props}><Icon {...object4} /></NativeView2>;
} else {
r5 = null;
}
} else {
r5 = null;
}
items2[2] = r5;
object5.children = items2;
}
return <NativeView3 {...object5} />;
}
function AnimatedVideoWrapper({participantId, style, children}) { // fn#119190, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:9353, offset: 0x025005ab, size: 214 bytes, params: 2, frame: 21
const binding = env0_4;
const useContext = binding.useContext;
const value2 = (require(11797) /* metro dependency 11797: VoicePanelCardLayoutManager */).useTargetDimensionsSubscription(participantId,
Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).layoutManager);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
const closure = AnimatedVideoWrapperA;
closure.__closure = {targetDimensions: value2};
closure.__workletHash = 10377220209728;
closure.__initData = env0_30;
return ((Component) => <Component style={[style, Reflect.apply(useAnimatedStyle, reanimatedRexportModule,
[closure])]}>{children}</Component>)(importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */);
}
function Stream({participantId, transitionState, transitionCleanUp}) { // fn#119192, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:9822, offset: 0x025006d5, size: 758 bytes, params: 2, frame: 27
const styles = useStyles();
const voicePanelPIPStateContextModule = require(15444) /* metro dependency 15444: VoicePanelPIPStateContext */;
const usePIPState = voicePanelPIPStateContextModule.usePIPState;
const mode = Reflect.apply(usePIPState, voicePanelPIPStateContextModule, []).mode;
const value2 = useTransitionStyles(styles, transitionState, transitionCleanUp);
const value3 = env0_4.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const env0_2 = value3.channelId;
const layoutManager = value3.layoutManager;
const value4 = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStoresObject([ChannelRTCStore],
_fun119193);
const streamId = value4.streamId;
var env0_4 = streamId;
const userId = value4.userId;
const value5 = (require(10678) /* metro dependency 10678: SurfaceDirectRendererExperiment */).useSurfaceDirectRendererExperiment(userId,
{location: 'VoicePanelPIPContent.Stream'});
const value6 = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([ApplicationStreamingStore],
_fun119194);
const value7 = env0_4.useCallback(function({nativeEvent}) {
var width = nativeEvent.width;
nativeEvent = nativeEvent.height;
layoutManager.setTargetDimensions(participantId, width, nativeEvent);
}, [layoutManager, participantId]);
const value8 = PixelRatio.get();
const env0_6 = env0_4.useRef(0);
const env0_7 = env0_4.useRef(0);
const value9 = env0_4.useCallback(_fun119196, [streamId, value8, mode]);
env0_4.useEffect(_fun119198, [env0_4.useCallback(_fun119197, [streamId, value8, mode])]);
const value11 = streamId != null;
env0_4.useEffect(_fun119200, [value11]);
const ENDED = ApplicationStreamStates.ENDED;
if (value6 === ENDED) {
const StreamEnded = (require(10674) /* metro dependency 10674: StreamEnded */).StreamEnded;
return <StreamEnded style={styles.streamEmptyImage} resizeMode="contain" />;
} else if (value6 === ApplicationStreamStates.FAILED) {
const StreamFailed = (require(9933) /* metro dependency 9933: StreamFailed */).StreamFailed;
return <StreamFailed style={styles.streamEmptyImage} resizeMode="contain" />;
} else {
return value11 ? <AnimatedVideoWrapper style={value2} participantId={participantId}><VideoStream useSurfaceDirectRenderer={value5} streamId={streamId} style={styles.video} onSize={value7} onLayout={value9} /></AnimatedVideoWrapper> : <User_119179 participantId={participantId} />;
}
}
function renderFocusedParticipant(a0, a1, a2, a3) { // fn#119202, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:11669, offset: 0x02500c27, size: 239 bytes, params: 5, frame: 19
if (a1.id === '--voice-panel-pip-empty') {
return ((Component) => <Component transitionState={a2} transitionCleanUp={a3} key={a0} />)(env0_31);
}
const object2 = {participantId: a1.id, transitionState: a2, transitionCleanUp: a3};
const type = a1.type;
const ACTIVITY = ParticipantTypes.ACTIVITY;
if (ACTIVITY === type) {
return <ActivityInVoice {...object2} key={a0} />;
}
const STREAM = ParticipantTypes.STREAM;
if (STREAM === type) {
return <Stream {...object2} key={a0} />;
}
const USER = ParticipantTypes.USER;
if (USER !== type) {
ParticipantTypes.HIDDEN_STREAM;
}
return <User_119179 {...object2} key={a0} />;
}
function areParticipantsEqual_119203(a0, a1) { // fn#119203, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:12039, offset: 0x02500d16, size: 129 bytes, params: 3, frame: 18
var id;
var id2;
var property;
var value6;
let length = a0.length;
if (length === a1.length) {
length = a0.length;
var value = 0;
if (value === length) {
return true;
}
var _createForOfIteratorHelperLoose_119153Binding = _createForOfIteratorHelperLoose_119153;
var value3 = undefined;
var value4 = _createForOfIteratorHelperLoose_119153Binding(a0);
var value5 = value4();
var done = value5.done;
if (done) {
return true;
}
var r1 = value5;
var r5 = value;
while (true) {
value = r1.value;
id2 = value.id;
property = a1[r5];
id = property == null ? value3 : property.id;
if (id2 !== id) {
break;
}
value = typeof r5 === 'bigint' ? r5 + 1n : +r5 + 1;
value6 = value4();
done = value6.done;
if (done) {
return true;
}
r1 = value6;
r5 = value;
continue;
}
}
return false;
}
function EmptyPIP({transitionState, transitionCleanUp}) { // fn#119204, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:11451, offset: 0x02500d97, size: 116 bytes, params: 2, frame: 18
const styles = useStyles();
env0_4.useEffect(function() {
if (transitionState === require(dependencyMap[22]).TransitionStates.YEETED) {
transitionCleanUp();
}
}, [transitionState, transitionCleanUp]);
return ((Component) => <Component style={styles.emptyPip} />)(importDefault(6821) /* metro dependency 6821: NativeView */);
}
function VoicePanelPIPContent() { // fn#119206, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:12285, offset: 0x02500e45, size: 343 bytes, params: 1, frame: 27
const binding = env0_4;
const useContext = binding.useContext;
const channelId = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).channelId;
const {id, width, height} = (require(15444) /* metro dependency 15444: VoicePanelPIPStateContext */).usePIPState();
const styles = useStyles();
var env0_4 = styles;
const value4 = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([ChannelRTCStore],
_fun119207, [id, channelId, AuthenticationStore.getId()], areParticipantsEqual_119203);
const value5 = env0_4.useMemo(function() {
var items = [styles.contentWrapper];
var object = {};
object.borderRadius = require(dependencyMap[25]).getVoicePanelPIPBorderRadius(width, height);
items[1] = object;
return [items];
}, [width, height, styles.contentWrapper]);
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const TransitionGroup = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionGroup;
return (
<NativeView style={value5} pointerEvents="none">
<TransitionGroup
items={value4}
renderItem={renderFocusedParticipant}
getItemKey={getFocusedKey}
/>
</NativeView>
);
}
function _fun119157() { // fn#119157, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:2633, offset: 0x024ff552, size: 46 bytes, params: 1, frame: 13
if (streamId != null) {
env0_1(streamId, true);
return _fun119158;
}
}
function _fun119161() { // fn#119161, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:2860, offset: 0x024ff63a, size: 151 bytes, params: 1, frame: 16
var ComponentDispatch;
const closure = handleVideoReady;
const TransitionStates = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates;
const YEETED = TransitionStates.YEETED;
if (require === YEETED) {
var env0_0 = global.setTimeout(_fun119164, 500);
ComponentDispatch = (require(1239) /* metro dependency 1239: ComponentDispatchUtils */).ComponentDispatch;
ComponentDispatch.subscribe(ComponentActions.VOICE_PANEL_PIP_CONTENT_READY, closure);
return _fun119165;
}
}
function _fun119171() { // fn#119171, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:4444, offset: 0x024ffbd9, size: 27 bytes, params: 1, frame: 11
return EmbeddedActivitiesStore.getPipOrientationLockStateForApp(env0_6);
}
function _fun119172({width, height}) { // fn#119172, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:4509, offset: 0x024ffbf4, size: 179 bytes, params: 2, frame: 18
var layoutManagerBinding;
var value4;
const value = width > height;
const binding = env0_7;
const LANDSCAPE = OrientationLockState.LANDSCAPE;
if (LANDSCAPE === binding) {
layoutManager.setTargetDimensions(env0_6, 16, 9);
} else if (OrientationLockState.PORTRAIT === binding) {
layoutManager.setTargetDimensions(env0_6, 9, 16);
} else if (OrientationLockState.UNLOCKED === binding) {
layoutManagerBinding = layoutManager;
value4 = 9;
layoutManagerBinding.setTargetDimensions(env0_6, value ? 16 : value4, value ? value4 : 16);
} else if (binding === null) {
layoutManagerBinding = layoutManager;
value4 = 9;
layoutManagerBinding.setTargetDimensions(env0_6, value ? 16 : value4, value ? value4 : 16);
}
}
function _fun119173() { // fn#119173, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:4747, offset: 0x024ffca7, size: 84 bytes, params: 1, frame: 14
let value = environment.__proto__;
value = require(1478) /* metro dependency 1478: useWindowDimensionsNative */;
value = value.getWindowDimensions();
const binding = env0_8;
const object2 = {};
copyDataProperties(object2, value, undefined);
object2['landscape'] = value.width > value.height;
binding(object2);
}
function ActivityInVoiceU(a0, a1) { // fn#119175, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:4962, owner: ActivityInVoice.u, offset: 0x024ffcfb, size: 61 bytes, params: 3, frame: 13
var value;
if (a0 !== a1) {
value = environment.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value.runOnJS(env0_8)(a0);
}
}
function _fun119176() { // fn#119176, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:5162, offset: 0x024ffd38, size: 87 bytes, params: 1, frame: 14
var environment;
if (!env0_4) {
if (result) {
value = environment.__proto__;
markContentReady();
return undefined;
}
}
if (env0_4) {
var env0_0 = global.setTimeout(_fun119177, 500);
return _fun119178;
}
}
function _fun119181() { // fn#119181, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:6814, offset: 0x025003de, size: 44 bytes, params: 1, frame: 3
const user = styles.user;
return [user, env0_2, {backgroundColor: env0_7}];
}
function _fun119182(a0, a1) { // fn#119182, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:7036, offset: 0x0250040a, size: 98 bytes, params: 3, frame: 16
const value = undefined;
const r4 = a0 != null ? ChannelRTCStore.getParticipant(channelId, a0) : value;
env0_8(r4 != null && isActivityParticipant(r4) && a1 === VoicePanelModes.PANEL);
return value;
}
function User_119179P() { // fn#119183, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:7158, owner: User_119179.p, offset: 0x0250046c, size: 34 bytes, params: 1, frame: 10
return focused.get()?.id;
}
function User_119179L(a0, a1) { // fn#119184, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:7282, owner: User_119179.l, offset: 0x0250048e, size: 75 bytes, params: 3, frame: 15
var value;
var modeBinding;
if (a0 !== a1) {
value = environment.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value = value.runOnJS(env0_9);
modeBinding = mode;
value(a0, modeBinding.get());
}
}
function User_119179S(a0, a1) { // fn#119186, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:7575, owner: User_119179.S, offset: 0x025004d9, size: 91 bytes, params: 3, frame: 15
var value;
var value3;
var value4;
if (a0 !== a1) {
value = environment.__proto__;
value = undefined;
value3 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS(env0_9);
value4 = focused.get();
value3(value4 == null ? value : value4.id, a0);
}
}
function _fun119189() { // fn#119189, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:8231, offset: 0x02500590, size: 27 bytes, params: 1, frame: 9
if (!env0_10) {
value = environment.__proto__;
markContentReady();
}
}
function AnimatedVideoWrapperA() { // fn#119191, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:9548, owner: AnimatedVideoWrapper.a, offset: 0x02500681, size: 84 bytes, params: 1, frame: 14
var r1;
var r2;
let value = env0_0.get();
const width = value.width;
const height = value.height;
value = 'auto';
const value2 = '100%';
if (height < width) {
r1 = value2;
r2 = value;
} else {
r1 = value;
r2 = value2;
}
return {position: 'absolute', aspectRatio: width / height, width: r2, height: r1};
}
function _fun119193() { // fn#119193, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:10064, offset: 0x025009cb, size: 109 bytes, params: 1, frame: 16
let value = environment.__proto__;
const participant = ChannelRTCStore.getParticipant(channelId, participantId);
const r5 = participant != null && participant.type === ParticipantTypes.STREAM;
value = undefined;
return {streamId: r5 ? participant.streamId : value,
userId: r5 ? participant.user == null ? value : participant.user.id : value};
}
function _fun119194() { // fn#119194, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:10364, offset: 0x02500a38, size: 43 bytes, params: 1, frame: 11
const value = environment.__proto__;
return ApplicationStreamingStore.getActiveStreamForStreamKey(participantId)?.state;
}
function _fun119196(a0) { // fn#119196, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:10590, offset: 0x02500a92, size: 182 bytes, params: 2, frame: 17
var layout;
var width;
var height;
var modeBinding;
var value4;
var moduleValue;
var updateVideoSize;
var binding;
let streamIdBinding = streamId;
if (streamIdBinding != null) {
layout = a0.nativeEvent.layout;
width = layout.width;
height = layout.height;
if (!(width === env0_6.current && height === env0_7.current)) {
env0_6.current = width;
env0_7.current = height;
modeBinding = mode;
value4 = environment.__proto__;
if (modeBinding === VoicePanelPIPModes.IN_APP) {
moduleValue = require(15357) /* metro dependency 15357: VideoActionCreators */;
updateVideoSize = moduleValue.updateVideoSize;
streamIdBinding = streamId;
binding = env0_5;
Reflect.apply(updateVideoSize, moduleValue, [streamIdBinding, {width: width * binding,
height: height * binding},
1]);
}
}
}
}
function _fun119197(a0) { // fn#119197, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:10807, offset: 0x02500b48, size: 138 bytes, params: 2, frame: 17
var modeBinding;
var updateVideoSize;
var object2;
var current;
var binding;
let value = a0;
let r1 = streamId == null || value;
if (!r1) {
modeBinding = mode;
value = environment.__proto__;
value = modeBinding !== VoicePanelPIPModes.IN_APP;
r1 = value;
}
if (!r1) {
value = environment.__proto__;
value = require(15357) /* metro dependency 15357: VideoActionCreators */;
updateVideoSize = value.updateVideoSize;
streamIdBinding = streamId;
object2 = {};
current = env0_6.current;
binding = env0_5;
object2.width = current * binding;
current = env0_7.current;
object2.height = current * binding;
Reflect.apply(updateVideoSize, value, [streamIdBinding, object2, 1]);
}
}
function _fun119198() { // fn#119198, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:10931, offset: 0x02500bd2, size: 58 bytes, params: 1, frame: 12
var environment;
const value = environment.__proto__;
const env0_0 = (importDefault(10684) /* metro dependency 10684: ExternalPipAndroid */).addOnPipModeChangedListener(env0_8);
return _fun119199;
}
function _fun119200() { // fn#119200, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:11055, offset: 0x02500c0c, size: 27 bytes, params: 1, frame: 9
if (result) {
value = environment.__proto__;
markContentReady();
}
}
function _fun119207() { // fn#119207, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:12464, offset: 0x02500f9c, size: 113 bytes, params: 1, frame: 16
const idBinding = id;
let r0 = idBinding != null ? ChannelRTCStore.getParticipant(channelId, idBinding)?.type : ParticipantTypes.USER;
r0 = r0 ?? ParticipantTypes.USER;
return [{id: idBinding ?? env0_5, type: r0}];
}
function _fun119158() { // fn#119158, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:2664, offset: 0x024ff580, size: 23 bytes, params: 1, frame: 13
env1_1(streamId, false);
}
function handleVideoReady() { // fn#119162, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:3161, offset: 0x024ff6d1, size: 48 bytes, params: 1, frame: 13
global.clearTimeout(env0_0);
global.setTimeout(_fun119163, 17);
}
function _fun119164() { // fn#119164, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:2925, offset: 0x024ff71f, size: 30 bytes, params: 1, frame: 11
const value = environment.__proto__;
return importDefault?.();
}
function _fun119165() { // fn#119165, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:3049, offset: 0x024ff73d, size: 79 bytes, params: 1, frame: 15
const ComponentDispatch = (require(1239) /* metro dependency 1239: ComponentDispatchUtils */).ComponentDispatch;
const unsubscribe = ComponentDispatch.unsubscribe;
const VOICE_PANEL_PIP_CONTENT_READY = ComponentActions.VOICE_PANEL_PIP_CONTENT_READY;
Reflect.apply(unsubscribe, ComponentDispatch, [VOICE_PANEL_PIP_CONTENT_READY, handleVideoReady]);
global.clearTimeout(env0_0);
}
function _fun119177() { // fn#119177, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:5224, offset: 0x024ffd8f, size: 29 bytes, params: 1, frame: 11
env1_5(false);
markContentReady();
}
function _fun119163() { // fn#119163, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15760:3217, offset: 0x024ff701, size: 30 bytes, params: 1, frame: 11
const value = environment.__proto__.__proto__;
return importDefault?.();
}
@@ -0,0 +1,228 @@
/* Metro module 15564; source: modules/voice_panel/native/pip/VoicePanelPIPPushToTalkOverlay.tsx; dependencies: [57, 31, 27, 11795, 33, 4017, 6821, 1305, 4501, 697, 10750, 15444, 4577, 15439, 5321, 15565, 2] */
function _fun119209(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#119209, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15761:6, offset: 0x02501063, size: 533 bytes, params: 8, frame: 23
var object4;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
const StyleSheet = (require(27) /* metro dependency 27 */).StyleSheet;
const env0_5 = (require(11795) /* metro dependency 11795: VoicePanelConstants */).PUSH_TO_TALK_PIP_PHYSICS;
let value = require(33) /* metro dependency 33 */;
const env0_6 = value.jsx;
const env0_7 = value.Fragment;
const env0_8 = value.jsxs;
value = importDefault(4017) /* metro dependency 4017: ReanimatedRexport */;
let createAnimatedComponent = value.createAnimatedComponent;
const env0_9 = Reflect.apply(createAnimatedComponent, value,
[importDefault(6821) /* metro dependency 6821: NativeView */]);
value = importDefault(4017) /* metro dependency 4017: ReanimatedRexport */;
createAnimatedComponent = value.createAnimatedComponent;
const Icon = (require(1305) /* metro dependency 1305: native */).Icon;
const env0_10 = Reflect.apply(createAnimatedComponent, value, [Icon]);
const env0_11 = {'top': 6, 'bottom': 6, 'left': 6, 'right': 6};
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
object4 = {};
const object5 = {'position': 'absolute', 'width': 32, 'height': 32, 'alignItems': 'center',
'justifyContent': 'center'};
object5.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object4.iconContainer = object5;
const object6 = {};
copyDataProperties(object6, StyleSheet.absoluteFillObject, undefined);
const BLACK = (importDefault(697) /* metro dependency 697: native */).colors.BLACK;
object6['backgroundColor'] = BLACK;
object4.overlay = object6;
const env0_12 = Reflect.apply(createStyles, value, [object4]);
object4 = {code: "function VoicePanelPIPPushToTalkOverlayTsx1(){const{isPushingToTalk,EXPANDED_ICON_SIZE,BASE_ICON_SIZE,withSpring,PUSH_TO_TALK_PIP_PHYSICS,white}=this.__closure;const padding=isPushingToTalk.get()?8*EXPANDED_ICON_SIZE/BASE_ICON_SIZE+8:8;return{right:withSpring(padding,PUSH_TO_TALK_PIP_PHYSICS),bottom:withSpring(padding,PUSH_TO_TALK_PIP_PHYSICS),transform:[{scale:withSpring(isPushingToTalk.get()?EXPANDED_ICON_SIZE/BASE_ICON_SIZE:1,PUSH_TO_TALK_PIP_PHYSICS)}],backgroundColor:withSpring(isPushingToTalk.get()?white:'rgba(0, 0, 0, 0.54)',PUSH_TO_TALK_PIP_PHYSICS)};}"};
object4 = {code: 'function VoicePanelPIPPushToTalkOverlayTsx2(){const{withSpring,isPushingToTalk,black,white,PUSH_TO_TALK_PIP_PHYSICS}=this.__closure;return{tintColor:withSpring(isPushingToTalk.get()?black:white,PUSH_TO_TALK_PIP_PHYSICS)};}'};
object4 = {code: 'function VoicePanelPIPPushToTalkOverlayTsx3(){const{withSpring,isPushingToTalk,PUSH_TO_TALK_PIP_PHYSICS,getVoicePanelPIPBorderRadius,pipState}=this.__closure;return{opacity:withSpring(isPushingToTalk.get()?0.5:0,PUSH_TO_TALK_PIP_PHYSICS),borderRadius:getVoicePanelPIPBorderRadius(pipState.width,pipState.height)};}'};
object4 = {code: 'function VoicePanelPIPPushToTalkOverlayTsx4(event,success){const{runOnJS,handlePushToTalk}=this.__closure;if(!success){return;}runOnJS(handlePushToTalk)(false);}'};
object4 = {code: 'function VoicePanelPIPPushToTalkOverlayTsx5(){const{runOnJS,handlePushToTalk}=this.__closure;runOnJS(handlePushToTalk)(false);}'};
object4 = {code: 'function VoicePanelPIPPushToTalkOverlayTsx6(){const{runOnJS,handlePushToTalk}=this.__closure;runOnJS(handlePushToTalk)(true);}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/pip/VoicePanelPIPPushToTalkOverlay.tsx');
exports.default = VoicePanelPIPPushToTalkOverlay;
}
function VoicePanelPIPPushToTalkOverlay() { // fn#119210, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15761:2268, offset: 0x02501278, size: 743 bytes, params: 1, frame: 30
const value2 = (require(15444) /* metro dependency 15444: VoicePanelPIPStateContext */).usePIPState();
const styles = useStyles();
const value4 = env0_3(usePushToTalk(), 2);
const property = value4[0];
const property2 = value4[1];
const WHITE = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.WHITE;
const BLACK = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.BLACK;
const env0_4 = BLACK;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
let useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
let closure = VoicePanelPIPPushToTalkOverlayO;
let object2 = {'isPushingToTalk': null, 'EXPANDED_ICON_SIZE': 48, 'BASE_ICON_SIZE': 32};
object2.isPushingToTalk = property;
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.PUSH_TO_TALK_PIP_PHYSICS = PUSH_TO_TALK_PIP_PHYSICS;
object2.white = WHITE;
closure.__closure = object2;
closure.__workletHash = 3936373516983;
closure.__initData = env0_13;
const value5 = Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
const moduleValue3 = reanimatedRexportModule;
useAnimatedStyle = moduleValue3.useAnimatedStyle;
closure = VoicePanelPIPPushToTalkOverlayP;
closure.__closure = {withSpring: (require(4577) /* metro dependency 4577: spring */).withSpring,
isPushingToTalk: property, black: BLACK, white: WHITE, PUSH_TO_TALK_PIP_PHYSICS: PUSH_TO_TALK_PIP_PHYSICS};
closure.__workletHash = 11469896791985;
closure.__initData = env0_14;
const value6 = Reflect.apply(useAnimatedStyle, moduleValue3, [closure]);
const moduleValue4 = reanimatedRexportModule;
useAnimatedStyle = moduleValue4.useAnimatedStyle;
closure = VoicePanelPIPPushToTalkOverlayH;
object2 = {withSpring: (require(4577) /* metro dependency 4577: spring */).withSpring, isPushingToTalk: property,
PUSH_TO_TALK_PIP_PHYSICS: PUSH_TO_TALK_PIP_PHYSICS};
const getVoicePanelPIPBorderRadius = (require(15439) /* metro dependency 15439: VoicePanelPIPUtils */).getVoicePanelPIPBorderRadius;
object2.getVoicePanelPIPBorderRadius = getVoicePanelPIPBorderRadius;
object2.pipState = value2;
closure.__closure = object2;
closure.__workletHash = 450590017248;
closure.__initData = env0_15;
const value7 = Reflect.apply(useAnimatedStyle, moduleValue4, [closure]);
let binding = env0_4;
const value8 = binding.useMemo(_fun119216, [property2]);
const jsxRuntimeEnv0_7Binding = jsxRuntimeEnv0_7;
binding = env0_9;
const binding3 = ((Component) => <Component pointerEvents="none" style={[styles.overlay, value7]} />)(binding);
const GestureDetector = (require(5321) /* metro dependency 5321 */).GestureDetector;
const bindingProps = {style: [styles.iconContainer, value5], hitSlop: env0_11};
const binding2 = env0_10;
const Icon = (require(1305) /* metro dependency 1305: native */).Icon;
const Sizes = Icon.Sizes;
const SMALL_20 = Sizes.SMALL_20;
return (
<>
{binding3}
<GestureDetector gesture={value8}>
{((Component) => <Component {...bindingProps}>{((Component) => <Component style={value6} size={SMALL_20} source={importDefault(15565) /* metro dependency 15565 */} disableColor />)(binding2)}</Component>)(binding)}
</GestureDetector>
</>
);
}
function usePushToTalk() { // fn#119211, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15761:2353, owner: VoicePanelPIPPushToTalkOverlay.usePushToTalk, offset: 0x0250155f, size: 102 bytes, params: 1, frame: 15
var environment;
const value = environment.__proto__;
const value2 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(false);
const binding = env1_4;
const env0_1 = binding.useRef(false);
const useCallback = binding.useCallback;
let items2 = [value2];
items2 = [value2, Reflect.apply(useCallback, binding, [_fun119212, items2])];
return items2;
}
function VoicePanelPIPPushToTalkOverlayO() { // fn#119213, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15761:2658, owner: VoicePanelPIPPushToTalkOverlay.o, offset: 0x02501618, size: 231 bytes, params: 1, frame: 20
const r10 = env0_1.get() ? 20 : 8;
const object3 = {};
const springModule = require(4577) /* metro dependency 4577: spring */;
let withSpring = springModule.withSpring;
object3.right = Reflect.apply(withSpring, springModule, [r10, PUSH_TO_TALK_PIP_PHYSICS]);
object3.bottom = springModule.withSpring(r10, PUSH_TO_TALK_PIP_PHYSICS);
const object4 = {};
const moduleValue3 = springModule;
object4.scale = moduleValue3.withSpring(env0_1.get() ? 1.5 : 1, PUSH_TO_TALK_PIP_PHYSICS);
object3.transform = [object4];
const moduleValue4 = springModule;
withSpring = moduleValue4.withSpring;
const WHITE2 = env0_1.get() ? WHITE : 'rgba(0, 0, 0, 0.54)';
object3.backgroundColor = Reflect.apply(withSpring, moduleValue4, [WHITE2, PUSH_TO_TALK_PIP_PHYSICS]);
return object3;
}
function VoicePanelPIPPushToTalkOverlayP() { // fn#119214, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15761:3105, owner: VoicePanelPIPPushToTalkOverlay.P, offset: 0x025016ff, size: 78 bytes, params: 1, frame: 16
const springModule = require(4577) /* metro dependency 4577: spring */;
const withSpring = springModule.withSpring;
const binding = env0_1;
const get = binding.get;
return {tintColor: Reflect.apply(withSpring, springModule, [Reflect.apply(get, binding, []) ? BLACK : WHITE,
PUSH_TO_TALK_PIP_PHYSICS])};
}
function VoicePanelPIPPushToTalkOverlayH() { // fn#119215, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15761:3355, owner: VoicePanelPIPPushToTalkOverlay.H, offset: 0x0250174d, size: 129 bytes, params: 1, frame: 17
const object2 = {};
let value = environment.__proto__;
const springModule = require(4577) /* metro dependency 4577: spring */;
const withSpring = springModule.withSpring;
let binding = env0_1;
object2.opacity = Reflect.apply(withSpring, springModule, [binding.get() ? 0.5 : 0, PUSH_TO_TALK_PIP_PHYSICS]);
value = require(15439) /* metro dependency 15439: VoicePanelPIPUtils */;
const getVoicePanelPIPBorderRadius = value.getVoicePanelPIPBorderRadius;
binding = env0_0;
object2.borderRadius = Reflect.apply(getVoicePanelPIPBorderRadius, value, [binding.width, binding.height]);
return object2;
}
function _fun119216() { // fn#119216, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15761:3716, offset: 0x025017ce, size: 373 bytes, params: 1, frame: 24
const Gesture = (require(5321) /* metro dependency 5321 */).Gesture;
const Exclusive = Gesture.Exclusive;
const Gesture2 = (require(5321) /* metro dependency 5321 */).Gesture;
const value3 = Gesture2.Tap().maxDistance(30);
const onEnd = value3.onEnd;
let closure = o_119217;
const runOnJS = (require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS;
const binding = env0_2;
closure.__closure = {runOnJS: runOnJS, handlePushToTalk: binding};
closure.__workletHash = 13736796804739;
closure.__initData = env1_16;
const value5 = Reflect.apply(onEnd, value3, [closure]);
const Gesture3 = (require(5321) /* metro dependency 5321 */).Gesture;
const shouldCancelWhenOutside2 = Gesture3.Pan().maxPointers(1).shouldCancelWhenOutside(false);
const onBegin = shouldCancelWhenOutside2.onBegin;
closure = t_119218;
closure.__closure = {runOnJS: runOnJS, handlePushToTalk: binding};
closure.__workletHash = 246779667986;
closure.__initData = env1_18;
const value8 = Reflect.apply(onBegin, shouldCancelWhenOutside2, [closure]);
const onFinalize = value8.onFinalize;
closure = n_119219;
closure.__closure = {runOnJS: runOnJS, handlePushToTalk: binding};
closure.__workletHash = 12223608557562;
closure.__initData = env1_17;
return Reflect.apply(Exclusive, Gesture, [value5, Reflect.apply(onFinalize, value8, [closure])]);
}
function _fun119212(a0) { // fn#119212, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15761:2443, offset: 0x025015c5, size: 83 bytes, params: 2, frame: 13
var value2;
if (a0 !== env0_1.current) {
env0_1.current = a0;
value2 = environment.__proto__.__proto__;
(require(10750) /* metro dependency 10750: MediaEngineActionCreators */).setPushToTalkState(a0);
env0_0.set(a0);
}
}
function o_119217(a0, a1) { // fn#119217, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15761:3804, offset: 0x02501943, size: 59 bytes, params: 3, frame: 12
var value;
var runOnJS;
var value2;
if (a1) {
value = environment.__proto__.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
runOnJS = value.runOnJS;
value2 = environment.__proto__;
value = Reflect.apply(runOnJS, value, [env1_2]);
value(false);
}
}
function t_119218() { // fn#119218, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15761:4027, offset: 0x0250197e, size: 51 bytes, params: 1, frame: 12
let value = environment.__proto__.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value = value.runOnJS(env1_2);
value(true);
}
function n_119219() { // fn#119219, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15761:4182, offset: 0x025019b1, size: 51 bytes, params: 1, frame: 12
let value = environment.__proto__.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value = value.runOnJS(env1_2);
value(false);
}
@@ -0,0 +1,12 @@
/* Metro module 15444; source: modules/voice_panel/native/pip/VoicePanelPIPStateContext.tsx; dependencies: [31, 2] */
function _fun118169(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118169, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15641:6, offset: 0x024ce7f1, size: 153 bytes, params: 8, frame: 18
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
value = value.createContext({'id': null, 'mode': null, 'width': 0, 'height': 0, 'containerHeight': 0,
'showSecondaryPIP': false, id: undefined, mode: undefined});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/pip/VoicePanelPIPStateContext.tsx');
exports.VoicePanelPIPStateContext = value;
exports.usePIPState = usePIPState;
}
@@ -0,0 +1,965 @@
/* Metro module 15439; source: modules/voice_panel/native/pip/VoicePanelPIPUtils.tsx; dependencies: [4606, 4492, 1226, 11795, 15440, 4299, 11796, 10692, 12711, 697, 2] */
function _fun118125(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118125, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:6, offset: 0x024cc96e, size: 635 bytes, params: 8, frame: 25
const env0_0 = require;
const _arrayLikeToArray_118128 = 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 channelRTCStore = importDefault(4606) /* metro dependency 4606: ChannelRTCStore */;
const applicationStreamingStore = importDefault(4492) /* metro dependency 4492: ApplicationStreamingStore */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
let value = require(11795) /* metro dependency 11795: VoicePanelConstants */;
const env0_5 = value.SECONDARY_PIP_TOP_MARGIN;
const env0_6 = value.VoicePanelModes;
value = require(15440) /* metro dependency 15440: VoicePanelPIPConstants */;
const env0_7 = value.VoicePanelPIPModes;
const PIPReferenceDimensions = value.PIPReferenceDimensions;
const SquarePIPReferenceDimensions = value.SquarePIPReferenceDimensions;
const SquareActivityPIPReferenceDimensions = value.SquareActivityPIPReferenceDimensions;
const env0_11 = (require(4299) /* metro dependency 4299: CallConstants */).ParticipantTypes;
value = require(11796) /* metro dependency 11796: MorphablePanelConstants */;
const env0_12 = value.MIN_PIP_TOSS_VELOCITY;
const env0_13 = value.PIP_WINDOW_OFFSET;
const Set = global.Set;
let set = new Set();
object = {code: 'function clamp_VoicePanelPIPUtilsTsx1(value,min,max){return Math.min(Math.max(value,min),max);}'};
const env0_16 = _fun118129();
object = {code: 'function getPIPWindowDimensions_VoicePanelPIPUtilsTsx2(windowDimensions,safeArea){const{PIP_WINDOW_OFFSET}=this.__closure;const xOffset=Math.max(safeArea.left,PIP_WINDOW_OFFSET);const yOffset=Math.max(safeArea.top,PIP_WINDOW_OFFSET);return{xOffset:xOffset,yOffset:yOffset,xRange:windowDimensions.width-xOffset-Math.max(safeArea.right,PIP_WINDOW_OFFSET),yRange:windowDimensions.height-yOffset-Math.max(safeArea.bottom,PIP_WINDOW_OFFSET)};}'};
set = _fun118131();
object = {code: 'function pipXYtoAbsoluteXY_VoicePanelPIPUtilsTsx3({pipX:pipX,pipY:pipY,windowDimensions:windowDimensions,safeArea:safeArea}){const{getPIPWindowDimensions}=this.__closure;const{xOffset:xOffset,yOffset:yOffset,xRange:xRange,yRange:yRange}=getPIPWindowDimensions(windowDimensions,safeArea);return{x:xOffset+pipX*xRange,y:yOffset+pipY*yRange};}'};
let value2 = _fun118133();
object = {code: 'function getClampedPIPPosition_VoicePanelPIPUtilsTsx4({pipX:pipX,pipY:pipY,width:width,height:height,windowDimensions:windowDimensions,safeArea:safeArea,bottomAvoidanceRegion=0,topAvoidanceRegion=0,positionOffset={x:0,y:0}}){const{pipXYtoAbsoluteXY,getPIPWindowDimensions,clamp}=this.__closure;let{x:x,y:y}=pipXYtoAbsoluteXY({pipX:pipX===-1?1:pipX,pipY:pipY===-1?0:pipY,windowDimensions:windowDimensions,safeArea:safeArea});const halfWidth=width/2;const halfHeight=height/2;x-=halfWidth;if(pipY===-1){y+=72;}else{y-=halfHeight;}const pipRegion=getPIPWindowDimensions(windowDimensions,safeArea);x=clamp(x,pipRegion.xOffset,pipRegion.xOffset+pipRegion.xRange-width);y=clamp(y,pipRegion.yOffset+topAvoidanceRegion,pipRegion.yOffset+pipRegion.yRange-bottomAvoidanceRegion-height);x+=positionOffset.x;y+=positionOffset.y;return{x:x,y:y};}'};
let value3 = _fun118135();
object = {code: "function calculatePIPPositionFromVelocity_VoicePanelPIPUtilsTsx5({velocityX:velocityX,velocityY:velocityY,absoluteX:absoluteX,absoluteY:absoluteY,windowDimensions:windowDimensions,safeArea:safeArea}){const{getPIPWindowDimensions,MIN_PIP_TOSS_VELOCITY,clamp}=this.__closure;const pipRegion=getPIPWindowDimensions(windowDimensions,safeArea);const{xRange:xRange,yRange:yRange}=pipRegion;const x=absoluteX-pipRegion.xOffset;const y=absoluteY-pipRegion.yOffset;let pipX=0;let pipY=0;if(Math.max(Math.abs(velocityY),Math.abs(velocityX))<MIN_PIP_TOSS_VELOCITY){const closestEdge=function(specs){const minValue=Math.min(...Object.values(specs));if(specs.left===minValue){return'left';}if(specs.top===minValue){return'top';}if(specs.right===minValue){return'right';}return'bottom';}({left:clamp(x,0,xRange),right:clamp(xRange-x,0,xRange),top:clamp(y,0,yRange),bottom:clamp(yRange-y,0,yRange)});switch(closestEdge){case'left':pipX=0;pipY=y/yRange;break;case'right':pipX=1;pipY=y/yRange;break;case'top':pipY=0;pipX=x/xRange;break;case'bottom':pipY=1;pipX=x/xRange;break;}}else{const slope=velocityY/velocityX;let intersectionY=0;let intersectionX=0;intersectionX=velocityX>0?xRange:0;intersectionY=y+slope*(intersectionX-x);if(intersectionY>=0&&intersectionY<=yRange){pipX=intersectionX/xRange;pipY=intersectionY/yRange;}else{intersectionY=velocityY>0?yRange:0;intersectionX=x+1/slope*(intersectionY-y);pipX=intersectionX/xRange;pipY=intersectionY/yRange;}}return{pipX:clamp(pipX,0,1),pipY:clamp(pipY,0,1)};}"};
let value4 = _fun118137();
const env0_23 = (importDefault(697) /* metro dependency 697: native */).radii.xl;
const env0_24 = (importDefault(697) /* metro dependency 697: native */).radii.lg;
object = {code: 'function getVoicePanelPIPBorderRadius_VoicePanelPIPUtilsTsx6(width,height){const{SquareActivityPIPReferenceDimensions,lg,xl}=this.__closure;if(width<=SquareActivityPIPReferenceDimensions.width&&height<=SquareActivityPIPReferenceDimensions.height){return lg;}return xl;}'};
let value5 = _fun118139();
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/pip/VoicePanelPIPUtils.tsx');
exports.PIPReferenceDimensions = PIPReferenceDimensions;
exports.SquarePIPReferenceDimensions = SquarePIPReferenceDimensions;
exports.SquareActivityPIPReferenceDimensions = SquareActivityPIPReferenceDimensions;
exports.computePIPSize = computePIPSize;
exports.computePIPParticipantToShow = computePIPParticipantToShow;
exports.getPIPMode = getPIPMode;
exports.getPIPWindowDimensions = set;
exports.pipXYtoAbsoluteXY = value2;
exports.getClampedPIPPosition = value3;
exports.calculatePIPPositionFromVelocity = value4;
exports.getVoicePanelPIPBorderRadius = value5;
}
function _createForOfIteratorHelperLoose_118126(a0, a1) { // fn#118126, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:412, offset: 0x024ccbe9, 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 _fun118127;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_118128(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_118128(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_118128(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun118127;
}
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 _fun118129() { // fn#118129, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:1445, offset: 0x024ccd5d, size: 48 bytes, params: 1, frame: 2
const closure = function(a0, a1, a2) {
var Math = global.Math;
var Math2 = global.Math;
return Math.min(Math2.max(a0, a1), a2);
};
closure.__closure = {};
closure.__workletHash = 10301627783217;
closure.__initData = env0_15;
return closure;
}
function _fun118131() { // fn#118131, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:2060, offset: 0x024ccd8d, size: 57 bytes, params: 1, frame: 4
const closure = getPIPWindowDimensions_118132;
closure.__closure = {PIP_WINDOW_OFFSET: PIP_WINDOW_OFFSET};
closure.__workletHash = 10369369214675;
closure.__initData = env0_17;
return closure;
}
function _fun118133() { // fn#118133, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:2791, offset: 0x024cce5f, size: 57 bytes, params: 1, frame: 4
const closure = pipXYtoAbsoluteXY_118134;
closure.__closure = {getPIPWindowDimensions: env0_18};
closure.__workletHash = 13405407399530;
closure.__initData = env0_19;
return closure;
}
function _fun118135() { // fn#118135, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:3963, offset: 0x024ccef6, size: 75 bytes, params: 1, frame: 4
const closure = getClampedPIPPosition_118136;
closure.__closure = {pipXYtoAbsoluteXY: env0_20, getPIPWindowDimensions: env0_18, clamp: env0_16};
closure.__workletHash = 10462021389431;
closure.__initData = env0_21;
return closure;
}
function _fun118137() { // fn#118137, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:6097, offset: 0x024cd071, size: 75 bytes, params: 1, frame: 4
const closure = calculatePIPPositionFromVelocity_118138;
closure.__closure = {getPIPWindowDimensions: env0_18, MIN_PIP_TOSS_VELOCITY: MIN_PIP_TOSS_VELOCITY, clamp: env0_16};
closure.__workletHash = 14615762848981;
closure.__initData = env0_22;
return closure;
}
function _fun118139() { // fn#118139, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:7342, offset: 0x024cd2b8, size: 75 bytes, params: 1, frame: 4
const closure = function(a0, a1) {
return a0 <= SquareActivityPIPReferenceDimensions.width && a1 <= SquareActivityPIPReferenceDimensions.height ? lg : xl;
};
closure.__closure = {SquareActivityPIPReferenceDimensions: SquareActivityPIPReferenceDimensions, lg: lg, xl: xl};
closure.__workletHash = 16698745361037;
closure.__initData = env0_25;
return closure;
}
function computePIPSize(a0, a1, a2, a3) { // fn#118141, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:7875, offset: 0x024cd332, size: 259 bytes, params: 5, frame: 17
var r0;
var r1;
var r3;
var value;
var Math;
let width = a0.width;
let height = a0.height;
if (a1) {
r0 = a2 ? SquareActivityPIPReferenceDimensions : SquarePIPReferenceDimensions;
width = r0.width;
height = r0.height;
r1 = width;
r3 = height;
} else if (width === height) {
r0 = a2 ? SquareActivityPIPReferenceDimensions : SquarePIPReferenceDimensions;
width = r0.width;
height = r0.height;
r1 = width;
r3 = height;
} else if (width >= height) {
width = a2 ? SquareActivityPIPReferenceDimensions.width : PIPReferenceDimensions.width;
Math = global.Math;
value = width * Math.max(0.5, a0.height / a0.width);
r1 = width;
r3 = value;
} else {
height = a2 ? SquareActivityPIPReferenceDimensions.height : PIPReferenceDimensions.height;
Math = global.Math;
r1 = height * Math.max(0.5, a0.width / a0.height);
r3 = height;
}
const object2 = {width: r1, height: r3};
if (a3) {
value = 2 * r3;
value += SECONDARY_PIP_TOP_MARGIN;
r1 = value;
} else {
r1 = r3;
}
object2.containerHeight = r1;
return object2;
}
function computePIPParticipantToShow({channelId, panelMode, lastParticipantId, speakingUserId, focusedParticipantId, blockList, showSecondaryPIP}) { // fn#118142, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:8182, offset: 0x024cd435, size: 1295 bytes, params: 2, frame: 27
var environment;
var r8;
var r2;
var type;
var userVideo;
var r10;
var r6;
var r9;
var r1;
var value2;
var binding;
var getParticipant;
var value5;
var STREAM;
var has;
var user;
var id;
var value6;
var moduleValue;
var canRenderParticipantVideo;
var USER;
var _createForOfIteratorHelperLoose_118126Binding;
var getActivityParticipants;
var value7;
var value8;
var done;
var value9;
var participants;
var some;
var value10;
var value13;
var getActiveStreamForUser;
var stream;
var guildId;
var value14;
var value15;
var moduleValue2;
var participant;
var moduleValue3;
var getVideoParticipants;
var value17;
var value18;
var value19;
var moduleValue4;
var value20;
reducibleJoin2: while (true) {
if (blockList !== undefined) {
r8 = blockList;
break reducibleJoin2;
}
value2 = environment;
binding = env0_14;
r8 = binding;
break reducibleJoin2;
}
const id2 = AuthenticationStore.getId();
reducibleJoin4: while (true) {
if (focusedParticipantId != null) {
getParticipant = ChannelRTCStore.getParticipant;
value5 = Reflect.apply(getParticipant, ChannelRTCStore, [channelId, focusedParticipantId]);
r2 = value5;
break reducibleJoin4;
}
r2 = undefined;
break reducibleJoin4;
}
let PANEL = VoicePanelModes.PANEL;
if (panelMode === PANEL) {
reducibleJoin6: while (true) {
if (r2 == null) {
return undefined;
}
break reducibleJoin6;
}
}
PANEL = VoicePanelModes.PANEL;
if (panelMode === PANEL) {
reducibleJoin18: while (true) {
if (focusedParticipantId == null) {
break reducibleJoin18;
}
reducibleJoin10: while (true) {
if (r2 == null) {
type = undefined;
break reducibleJoin10;
}
type = r2.type;
break reducibleJoin10;
}
STREAM = ParticipantTypes.STREAM;
if (type !== STREAM) {
break reducibleJoin18;
}
reducibleJoin13: while (true) {
if (r2 == null) {
userVideo = undefined;
break reducibleJoin13;
}
userVideo = r2.userVideo;
break reducibleJoin13;
}
if (userVideo !== true) {
break reducibleJoin18;
}
has = r8.has;
user = r2.user;
id = user.id;
if (Reflect.apply(has, r8, [id])) {
break reducibleJoin18;
}
getParticipant = ChannelRTCStore.getParticipant;
user = r2.user;
id = user.id;
value6 = Reflect.apply(getParticipant, ChannelRTCStore, [channelId, id]);
if (value6 == null) {
break reducibleJoin18;
}
moduleValue = require(10692) /* metro dependency 10692: participantHasVideo */;
canRenderParticipantVideo = moduleValue.canRenderParticipantVideo;
if (Reflect.apply(canRenderParticipantVideo, moduleValue, [value6])) {
return {id: value6.id, type: ParticipantTypes.USER};
}
break reducibleJoin18;
}
}
if (focusedParticipantId != null) {
reducibleJoin22: while (true) {
if (r2 == null) {
break reducibleJoin22;
}
has = r8.has;
if (!Reflect.apply(has, r8, [focusedParticipantId])) {
return {id: focusedParticipantId, type: r2.type};
}
break reducibleJoin22;
}
}
reducibleJoin24: while (true) {
if (r2 == null) {
type = undefined;
break reducibleJoin24;
}
type = r2.type;
break reducibleJoin24;
}
let ACTIVITY = ParticipantTypes.ACTIVITY;
if (type !== ACTIVITY) {
reducibleJoin31: while (true) {
if (showSecondaryPIP) {
break reducibleJoin31;
}
_createForOfIteratorHelperLoose_118126Binding = _createForOfIteratorHelperLoose_118126;
getActivityParticipants = ChannelRTCStore.getActivityParticipants;
value7 = _createForOfIteratorHelperLoose_118126Binding(Reflect.apply(getActivityParticipants,
ChannelRTCStore,
[channelId]));
value8 = value7();
done = value8.done;
if (done) {
break reducibleJoin31;
}
r10 = value8;
reducibleLoop27: while (true) {
value9 = r10.value;
participants = value9.participants;
some = participants.some;
if (Reflect.apply(some, participants, [_fun118143])) {
has = r8.has;
id = value9.id;
reducibleJoin30: while (true) {
if (!Reflect.apply(has, r8, [id])) {
return {id: value9.id, type: value9.type};
}
break reducibleJoin30;
}
}
value10 = value7();
done = value10.done;
if (done) {
break reducibleJoin31;
}
r10 = value10;
continue reducibleLoop27;
}
}
}
_createForOfIteratorHelperLoose_118126Binding = _createForOfIteratorHelperLoose_118126;
const getStreamParticipants = ChannelRTCStore.getStreamParticipants;
const value11 = _createForOfIteratorHelperLoose_118126Binding(Reflect.apply(getStreamParticipants, ChannelRTCStore,
[channelId]));
const value12 = value11();
done = value12.done;
if (!done) {
r10 = value12;
reducibleLoop32: while (true) {
value13 = r10.value;
has = r8.has;
id = value13.id;
if (!Reflect.apply(has, r8, [id])) {
getActiveStreamForUser = ApplicationStreamingStore.getActiveStreamForUser;
user = value13.user;
id = user.id;
stream = value13.stream;
guildId = stream.guildId;
reducibleJoin35: while (true) {
if (Reflect.apply(getActiveStreamForUser, ApplicationStreamingStore, [id, guildId]) != null) {
return {id: value13.id, type: value13.type};
}
break reducibleJoin35;
}
}
value14 = value11();
done = value14.done;
if (done) {
break reducibleLoop32;
}
r10 = value14;
continue reducibleLoop32;
}
}
if (speakingUserId != null) {
reducibleJoin40: while (true) {
if (r8.has(speakingUserId)) {
break reducibleJoin40;
}
getParticipant = ChannelRTCStore.getParticipant;
if (Reflect.apply(getParticipant, ChannelRTCStore, [channelId, speakingUserId]) != null) {
return {id: speakingUserId, type: ParticipantTypes.USER};
}
break reducibleJoin40;
}
}
reducibleJoin42: while (true) {
if (lastParticipantId != null) {
getParticipant = ChannelRTCStore.getParticipant;
value15 = Reflect.apply(getParticipant, ChannelRTCStore, [channelId, lastParticipantId]);
r6 = value15;
break reducibleJoin42;
}
r6 = undefined;
break reducibleJoin42;
}
if (r6 != null) {
has = r8.has;
id = r6.id;
reducibleJoin53: while (true) {
if (!Reflect.apply(has, r8, [id])) {
type = r6.type;
STREAM = ParticipantTypes.STREAM;
if (STREAM !== type) {
ACTIVITY = ParticipantTypes.ACTIVITY;
if (ACTIVITY === type) {
participants = r6.participants;
some = participants.some;
if (Reflect.apply(some, participants, [_fun118144])) {
return {id: r6.id, type: r6.type};
}
break reducibleJoin53;
}
USER = ParticipantTypes.USER;
if (USER === type) {
return {id: r6.id, type: r6.type};
}
break reducibleJoin53;
}
getActiveStreamForUser = ApplicationStreamingStore.getActiveStreamForUser;
user = r6.user;
id = user.id;
stream = r6.stream;
guildId = stream.guildId;
reducibleJoin54: while (true) {
reducibleJoin69: while (true) {
if (Reflect.apply(getActiveStreamForUser, ApplicationStreamingStore, [id, guildId]) == null) {
break reducibleJoin53;
}
moduleValue2 = require(10692) /* metro dependency 10692: participantHasVideo */;
canRenderParticipantVideo = moduleValue2.canRenderParticipantVideo;
if (Reflect.apply(canRenderParticipantVideo, moduleValue2, [r6])) {
return {id: r6.id, type: r6.type};
}
break reducibleJoin53;
}
return r1;
}
if (participant != null) {
moduleValue3 = require(10692) /* metro dependency 10692: participantHasVideo */;
canRenderParticipantVideo = moduleValue3.canRenderParticipantVideo;
reducibleJoin57: while (true) {
if (Reflect.apply(canRenderParticipantVideo, moduleValue3, [participant])) {
return {id: id2, type: ParticipantTypes.USER};
}
break reducibleJoin57;
}
}
_createForOfIteratorHelperLoose_118126Binding = _createForOfIteratorHelperLoose_118126;
getVideoParticipants = ChannelRTCStore.getVideoParticipants;
value17 = _createForOfIteratorHelperLoose_118126Binding(Reflect.apply(getVideoParticipants,
ChannelRTCStore,
[channelId]));
value18 = value17();
done = value18.done;
if (!done) {
r9 = value18;
reducibleLoop58: while (true) {
value19 = r9.value;
has = r8.has;
id = value19.id;
if (!Reflect.apply(has, r8, [id])) {
moduleValue4 = require(10692) /* metro dependency 10692: participantHasVideo */;
canRenderParticipantVideo = moduleValue4.canRenderParticipantVideo;
reducibleJoin61: while (true) {
if (Reflect.apply(canRenderParticipantVideo, moduleValue4, [value19])) {
return {id: value19.id, type: value19.type};
}
break reducibleJoin61;
}
}
value20 = value17();
done = value20.done;
if (done) {
break reducibleLoop58;
}
r9 = value20;
continue reducibleLoop58;
}
}
has = r8.has;
reducibleJoin69: while (true) {
if (Reflect.apply(has, r8, [id2])) {
r1 = undefined;
break reducibleJoin69;
}
if (participant == null) {
r1 = undefined;
break reducibleJoin69;
}
PANEL = VoicePanelModes.PANEL;
if (panelMode === PANEL) {
reducibleJoin67: while (true) {
if (r2 == null) {
type = undefined;
break reducibleJoin67;
}
type = r2.type;
break reducibleJoin67;
}
ACTIVITY = ParticipantTypes.ACTIVITY;
if (type !== ACTIVITY) {
r1 = undefined;
break reducibleJoin69;
}
}
USER = ParticipantTypes.USER;
r1 = {id: id2, type: USER};
break reducibleJoin69;
}
return r1;
}
break reducibleJoin53;
}
}
participant = ChannelRTCStore.getParticipant(channelId, id2);
if (!r8.has(id2)) {
reducibleJoin57: while (true) {
if (participant == null) {
break reducibleJoin57;
}
moduleValue3 = require(10692) /* metro dependency 10692: participantHasVideo */;
canRenderParticipantVideo = moduleValue3.canRenderParticipantVideo;
if (Reflect.apply(canRenderParticipantVideo, moduleValue3, [participant])) {
return {id: id2, type: ParticipantTypes.USER};
}
break reducibleJoin57;
}
}
_createForOfIteratorHelperLoose_118126Binding = _createForOfIteratorHelperLoose_118126;
getVideoParticipants = ChannelRTCStore.getVideoParticipants;
value17 = _createForOfIteratorHelperLoose_118126Binding(Reflect.apply(getVideoParticipants, ChannelRTCStore,
[channelId]));
value18 = value17();
done = value18.done;
if (!done) {
r9 = value18;
reducibleLoop58: while (true) {
value19 = r9.value;
has = r8.has;
id = value19.id;
if (!Reflect.apply(has, r8, [id])) {
moduleValue4 = require(10692) /* metro dependency 10692: participantHasVideo */;
canRenderParticipantVideo = moduleValue4.canRenderParticipantVideo;
reducibleJoin61: while (true) {
if (Reflect.apply(canRenderParticipantVideo, moduleValue4, [value19])) {
return {id: value19.id, type: value19.type};
}
break reducibleJoin61;
}
}
value20 = value17();
done = value20.done;
if (done) {
break reducibleLoop58;
}
r9 = value20;
continue reducibleLoop58;
}
}
reducibleJoin69: while (true) {
if (r8.has(id2)) {
r1 = undefined;
break reducibleJoin69;
}
if (participant == null) {
r1 = undefined;
break reducibleJoin69;
}
PANEL = VoicePanelModes.PANEL;
if (panelMode === PANEL) {
reducibleJoin67: while (true) {
if (r2 == null) {
type = undefined;
break reducibleJoin67;
}
type = r2.type;
break reducibleJoin67;
}
ACTIVITY = ParticipantTypes.ACTIVITY;
if (type !== ACTIVITY) {
r1 = undefined;
break reducibleJoin69;
}
}
USER = ParticipantTypes.USER;
r1 = {id: id2, type: USER};
break reducibleJoin69;
}
return r1;
}
function getPIPMode({channelId, connected, manuallyFocusedId, mode, selfHasVideo}) { // fn#118145, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:10095, offset: 0x024cd96d, size: 477 bytes, params: 2, frame: 21
var r2;
var r5;
var IN_APP;
var value2;
var getParticipant;
var value3;
var type;
var ACTIVITY;
var STREAM;
var userVideo;
var moduleValue;
var canRenderParticipantVideo;
var user;
var id;
var value5;
var getId;
var _createForOfIteratorHelperLoose_118126Binding;
var getVideoParticipants;
var value6;
var value7;
var done;
var value8;
var moduleValue2;
var value9;
if (connected) {
reducibleJoin4: while (true) {
if (manuallyFocusedId != null) {
value2 = environment;
getParticipant = ChannelRTCStore.getParticipant;
value3 = Reflect.apply(getParticipant, ChannelRTCStore, [channelId, manuallyFocusedId]);
r2 = value3;
break reducibleJoin4;
}
r2 = undefined;
break reducibleJoin4;
}
if (mode === VoicePanelModes.PANEL) {
reducibleJoin20: while (true) {
if (r2 == null) {
break reducibleJoin20;
}
type = r2.type;
ACTIVITY = ParticipantTypes.ACTIVITY;
if (type === ACTIVITY) {
return VoicePanelPIPModes.IN_PANEL;
}
type = r2.type;
STREAM = ParticipantTypes.STREAM;
if (type === STREAM) {
userVideo = r2.userVideo;
reducibleJoin11: while (true) {
if (userVideo) {
moduleValue = require(10692) /* metro dependency 10692: participantHasVideo */;
canRenderParticipantVideo = moduleValue.canRenderParticipantVideo;
getParticipant = ChannelRTCStore.getParticipant;
user = r2.user;
id = user.id;
value5 = Reflect.apply(getParticipant, ChannelRTCStore, [channelId, id]);
r5 = value5 ?? undefined;
if (Reflect.apply(canRenderParticipantVideo, moduleValue, [r5])) {
return VoicePanelPIPModes.IN_PANEL;
}
break reducibleJoin11;
}
break reducibleJoin11;
}
}
if (!selfHasVideo) {
return undefined;
}
id = r2.id;
getId = AuthenticationStore.getId;
if (id !== Reflect.apply(getId, AuthenticationStore, [])) {
return VoicePanelPIPModes.IN_PANEL;
}
_createForOfIteratorHelperLoose_118126Binding = _createForOfIteratorHelperLoose_118126;
getVideoParticipants = ChannelRTCStore.getVideoParticipants;
value6 = _createForOfIteratorHelperLoose_118126Binding(Reflect.apply(getVideoParticipants,
ChannelRTCStore,
[channelId]));
value7 = value6();
done = value7.done;
if (!done) {
r5 = value7;
reducibleLoop15: while (true) {
value8 = r5.value;
id = value8.id;
getId = AuthenticationStore.getId;
if (id !== Reflect.apply(getId, AuthenticationStore, [])) {
moduleValue2 = require(10692) /* metro dependency 10692: participantHasVideo */;
canRenderParticipantVideo = moduleValue2.canRenderParticipantVideo;
reducibleJoin17: while (true) {
if (Reflect.apply(canRenderParticipantVideo, moduleValue2, [value8])) {
return VoicePanelPIPModes.IN_PANEL;
}
break reducibleJoin17;
}
}
value9 = value6();
done = value9.done;
if (done) {
break reducibleLoop15;
}
r5 = value9;
continue reducibleLoop15;
}
}
id = r2.id;
getId = AuthenticationStore.getId;
if (id !== Reflect.apply(getId, AuthenticationStore, [])) {
return VoicePanelPIPModes.IN_PANEL;
}
break reducibleJoin20;
}
}
reducibleJoin22: while (true) {
if (mode !== VoicePanelModes.PIP) {
IN_APP = undefined;
break reducibleJoin22;
}
IN_APP = VoicePanelPIPModes.IN_APP;
break reducibleJoin22;
}
return IN_APP;
}
}
function getPIPWindowDimensions_118132({width, height}, {left, top, right, bottom}) { // fn#118132, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:2098, offset: 0x024ccdc6, size: 153 bytes, params: 3, frame: 19
let Math = global.Math;
const max = Math.max;
let value = environment.__proto__;
value = Reflect.apply(max, Math, [left, PIP_WINDOW_OFFSET]);
Math = global.Math;
const value2 = Math.max(top, PIP_WINDOW_OFFSET);
const object2 = {xOffset: value, yOffset: value2};
value = width - value;
Math = global.Math;
object2.xRange = value - Math.max(right, PIP_WINDOW_OFFSET);
value = height - value2;
Math = global.Math;
object2.yRange = value - Math.max(bottom, PIP_WINDOW_OFFSET);
return object2;
}
function pipXYtoAbsoluteXY_118134({pipX, pipY, windowDimensions, safeArea}) { // fn#118134, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:2824, offset: 0x024cce98, size: 94 bytes, params: 2, frame: 16
let value = environment.__proto__;
value = env1_18(windowDimensions, safeArea);
return {x: value.xOffset + pipX * value.xRange, y: value.yOffset + pipY * value.yRange};
}
function getClampedPIPPosition_118136({pipX, pipY, width, height, windowDimensions, safeArea, bottomAvoidanceRegion, topAvoidanceRegion, positionOffset = {'x': 0, 'y': 0}}) { // fn#118136, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:4000, offset: 0x024ccf41, size: 304 bytes, params: 2, frame: 26
bottomAvoidanceRegion = bottomAvoidanceRegion === undefined ? 0 : bottomAvoidanceRegion;
topAvoidanceRegion = topAvoidanceRegion === undefined ? 0 : topAvoidanceRegion;
const value = environment.__proto__;
let binding = env1_20;
const value3 = pipY === -1;
const {x, y} = binding({pipX: pipX === -1 ? 1 : pipX, pipY: value3 ? 0 : pipY, windowDimensions: windowDimensions,
safeArea: safeArea});
const value6 = x - width / 2;
const r5 = value3 ? y + 72 : y - height / 2;
const value9 = env1_18(windowDimensions, safeArea);
binding = env1_16;
return {x: binding(value6, value9.xOffset, value9.xOffset + value9.xRange - width) + positionOffset.x,
y: binding(r5, value9.yOffset + topAvoidanceRegion,
value9.yOffset + value9.yRange - bottomAvoidanceRegion - height) + positionOffset.y};
}
function calculatePIPPositionFromVelocity_118138({velocityX, velocityY, absoluteX, absoluteY, windowDimensions, safeArea}) { // fn#118138, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:6145, offset: 0x024cd0bc, size: 508 bytes, params: 2, frame: 25
var r10;
var r4;
var r6;
var value7;
var value8;
var value9;
var value10;
var value11;
var value13;
var object2;
var binding;
var value15;
var min;
var value16;
var items2;
var value17;
var left;
var value18;
var value22;
var value24;
var value25;
var value26;
const value2 = env1_18(windowDimensions, safeArea);
const xRange = value2.xRange;
const yRange = value2.yRange;
const value3 = absoluteX - value2.xOffset;
const value4 = absoluteY - value2.yOffset;
let Math = global.Math;
const max = Math.max;
const Math2 = global.Math;
const value5 = Math2.abs(velocityY);
const Math3 = global.Math;
if (Reflect.apply(max, Math, [value5, Math3.abs(velocityX)]) < MIN_PIP_TOSS_VELOCITY) {
object2 = {};
binding = env1_16;
value15 = 0;
object2.left = binding(value3, value15, xRange);
object2.right = binding(xRange - value3, value15, xRange);
object2.top = binding(value4, value15, yRange);
object2.bottom = binding(yRange - value4, value15, yRange);
Math = global.Math;
min = Math.min;
value16 = global.Object.values(object2);
items2 = [];
arraySpread(items2, value16, value15, undefined);
value17 = apply(min, items2, Math, undefined);
left = object2.left;
value18 = 'left';
r10 = left === value17 ? value18 : object2.top === value17 ? 'top' : object2.right !== value17 ? 'bottom' : 'right';
if (value18 === r10) {
r4 = value4 / yRange;
r6 = value15;
} else if (r10 === 'right') {
value25 = value4 / yRange;
value26 = 1;
r4 = value25;
r6 = value26;
} else if (r10 === 'top') {
value24 = value3 / xRange;
r4 = value15;
r6 = value24;
} else if (r10 !== 'bottom') {
r4 = value15;
r6 = value15;
} else {
value22 = value3 / xRange;
r4 = 1;
r6 = value22;
}
} else {
value7 = velocityY / velocityX;
value8 = 0;
r10 = velocityX > value8 ? xRange : value8;
value9 = value4 + value7 * (r10 - value3);
if (value9 >= value8) {
if (value9 <= yRange) {
value13 = r10 / xRange;
r4 = value9 / yRange;
r6 = value13;
} else {
value10 = 1 / value7;
r4 = velocityY > value8 ? yRange : value8;
value11 = (value3 + value10 * (r4 - value4)) / xRange;
r4 = r4 / yRange;
r6 = value11;
}
} else {
value10 = 1 / value7;
r4 = velocityY > value8 ? yRange : value8;
value11 = (value3 + value10 * (r4 - value4)) / xRange;
r4 = r4 / yRange;
r6 = value11;
}
}
object2 = {};
binding = env1_16;
object2.pipX = binding(r6, 0, 1);
object2.pipY = binding(r4, 0, 1);
return object2;
}
function _fun118143(a0) { // fn#118143, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15636:8879, offset: 0x024cd944, size: 41 bytes, params: 2, frame: 11
const value = environment.__proto__;
return (require(12711) /* metro dependency 12711: isActivityParticipantCurrentUserCurrentSession */).isActivityParticipantCurrentUserCurrentSession(a0);
}
@@ -0,0 +1,128 @@
/* Metro module 15566; source: modules/voice_panel/native/pip/VoicePanelSecondaryPIPContent.tsx; dependencies: [31, 1378, 8065, 1379, 4237, 8044, 8066, 33, 4501, 11794, 15444, 566, 3774, 11624, 8102, 4017, 15373, 6821, 8141, 15397, 10704, 2] */
function _fun119221(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#119221, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15763:6, offset: 0x02501a2a, size: 311 bytes, params: 8, frame: 20
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const embeddedActivitiesStore = importDefault(1378) /* metro dependency 1378: EmbeddedActivitiesStore */;
const framesStore = importDefault(8065) /* metro dependency 8065: FramesStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const env0_7 = (require(4237) /* metro dependency 4237: Constants */).ActivityLayoutMode;
const env0_8 = (require(8044) /* metro dependency 8044: ActivityPanelConstants */).ActivityPanelModes;
const env0_9 = (require(8066) /* metro dependency 8066: FramesConstants */).FrameLayoutModes;
const env0_10 = (require(33) /* metro dependency 33 */).jsx;
const env0_11 = (require(4501) /* metro dependency 4501: createStyles */).createStyles({activityContainer: {flex: 1}});
object = {code: "function VoicePanelSecondaryPIPContentTsx1(){const{getActivityContainerPipStylesSpec,pipState,activePipOrientationLockState,windowDimensions}=this.__closure;const{width:width,height:height,shouldVerticallyCenter:shouldVerticallyCenter,shouldHorizontallyCenter:shouldHorizontallyCenter,marginLeft:marginLeft,marginTop:marginTop}=getActivityContainerPipStylesSpec({pipWidth:pipState.width,pipHeight:pipState.height,pipOrientationLockState:activePipOrientationLockState,isLandscape:windowDimensions.get().landscape});return{width:width,height:height,left:shouldHorizontallyCenter?'50%':'0%',top:shouldVerticallyCenter?'50%':'0%',marginLeft:marginLeft,marginTop:marginTop};}"};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/pip/VoicePanelSecondaryPIPContent.tsx');
exports.default = VoicePanelSecondaryPIPContent;
}
function VoicePanelSecondaryPIPContent() { // fn#119222, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15763:1079, offset: 0x02501b61, size: 702 bytes, params: 1, frame: 28
var r7;
var r0;
var defaultImport;
var defaultImport2;
const binding = env0_3;
const useContext = binding.useContext;
const windowDimensions = Reflect.apply(useContext, binding,
[importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */]).windowDimensions;
const value2 = (require(15444) /* metro dependency 15444: VoicePanelPIPStateContext */).usePIPState();
const styles = useStyles();
const fluxModule = require(566) /* metro dependency 566: flux */;
const useStateFromStoresObject = fluxModule.useStateFromStoresObject;
let object = [EmbeddedActivitiesStore];
const {connectedEmbeddedActivityChannelId, connectedEmbeddedActivity, pipOrientationLockState,
panelMode} = Reflect.apply(useStateFromStoresObject, fluxModule, [object, _fun119223]);
const {connectedFrame, framePanelMode,
framePipOrientationLockState} = fluxModule.useStateFromStoresObject([FramesStore], _fun119224);
const channel = fluxModule.useStateFromStores([ChannelStore], function() {
return ChannelStore.getChannel(connectedEmbeddedActivityChannelId);
});
const value5 = binding.useMemo(_fun119226, [value2.width, value2.height]);
const value6 = null;
const r1 = value6 != connectedEmbeddedActivity && !(importDefault(8102) /* metro dependency 8102: isVoiceEmbeddedActivity */)(connectedEmbeddedActivityChannelId) && panelMode === ActivityPanelModes.PIP;
const r12 = value6 != connectedFrame && framePanelMode === ActivityPanelModes.PIP ? framePipOrientationLockState : pipOrientationLockState;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
const closure = VoicePanelSecondaryPIPContentP;
closure.__closure = {getActivityContainerPipStylesSpec: importDefault(15373) /* metro dependency 15373: getActivityContainerPIPStylesSpec */,
pipState: value2, activePipOrientationLockState: r12, windowDimensions: windowDimensions};
closure.__workletHash = 12186082276755;
closure.__initData = env0_12;
const value12 = Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
if (r1) {
defaultImport = importDefault(6821) /* metro dependency 6821: NativeView */;
object = {style: value5, pointerEvents: 'none'};
defaultImport2 = importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */;
var defaultImport2Props = {style: [styles.activityContainer, value12]};
r7 = r7 ? ((Component) => <Component layoutMode={FrameLayoutModes.PIP} />)(importDefault(15397) /* metro dependency 15397: FrameView */) : ((Component) => <Component channel={channel} layoutMode={ActivityLayoutMode.PIP} />)(importDefault(10704) /* metro dependency 10704: EmbeddedActivityView */);
r0 = ((Component) => <Component {...object}>{((Component) => <Component {...defaultImport2Props}>{r7}</Component>)(defaultImport2)}</Component>)(defaultImport);
} else if (r7) {
defaultImport = importDefault(6821) /* metro dependency 6821: NativeView */;
object = {style: value5, pointerEvents: 'none'};
defaultImport2 = importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */;
var defaultImport2Props = {style: [styles.activityContainer, value12]};
r7 = r7 ? ((Component) => <Component layoutMode={FrameLayoutModes.PIP} />)(importDefault(15397) /* metro dependency 15397: FrameView */) : ((Component) => <Component channel={channel} layoutMode={ActivityLayoutMode.PIP} />)(importDefault(10704) /* metro dependency 10704: EmbeddedActivityView */);
r0 = ((Component) => <Component {...object}>{((Component) => <Component {...defaultImport2Props}>{r7}</Component>)(defaultImport2)}</Component>)(defaultImport);
} else {
r0 = value6;
}
return r0;
}
function _fun119223() { // fn#119223, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15763:1239, offset: 0x02501e1f, size: 139 bytes, params: 1, frame: 18
const connectedActivityLocation = EmbeddedActivitiesStore.getConnectedActivityLocation();
const selfEmbeddedActivityForLocation = EmbeddedActivitiesStore.getSelfEmbeddedActivityForLocation(connectedActivityLocation);
const value4 = undefined;
const applicationId = selfEmbeddedActivityForLocation == null ? value4 : selfEmbeddedActivityForLocation.applicationId;
const object2 = {};
object2.connectedEmbeddedActivityChannelId = (require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */).getEmbeddedActivityLocationChannelId(connectedActivityLocation);
object2.connectedEmbeddedActivity = selfEmbeddedActivityForLocation;
object2.pipOrientationLockState = applicationId == null ? value4 : EmbeddedActivitiesStore.getPipOrientationLockStateForApp(applicationId);
object2.panelMode = EmbeddedActivitiesStore.getActivityPanelMode();
return object2;
}
function _fun119224() { // fn#119224, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15763:1745, offset: 0x02501eaa, size: 90 bytes, params: 1, frame: 15
const value = environment.__proto__;
const connectedFrame = FramesStore.getConnectedFrame();
const value3 = undefined;
const applicationId = connectedFrame == null ? value3 : connectedFrame.applicationId;
const object2 = {connectedFrame: connectedFrame};
object2.framePanelMode = FramesStore.getActivityPanelMode();
object2.framePipOrientationLockState = applicationId == null ? value3 : FramesStore.getPipOrientationLockStateForApp(applicationId);
return object2;
}
function _fun119226() { // fn#119226, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15763:2123, offset: 0x02501f1e, size: 118 bytes, params: 1, frame: 17
const object2 = {'width': null, 'height': null, 'position': 'absolute', 'left': '50%', 'marginLeft': null,
'top': '50%'};
const widthBinding = width;
object2.width = widthBinding;
const heightBinding = height;
object2.height = heightBinding;
let value = environment.__proto__;
value = importDefault(11624) /* metro dependency 11624: roundToNearestPixel */;
value = value(widthBinding / 2);
object2.marginLeft = -1 * value;
object2.marginTop = -1 * (importDefault(11624) /* metro dependency 11624: roundToNearestPixel */)(heightBinding / 2);
return object2;
}
function VoicePanelSecondaryPIPContentP() { // fn#119227, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15763:2348, owner: VoicePanelSecondaryPIPContent.P, offset: 0x02501f94, size: 181 bytes, params: 1, frame: 14
let value = environment.__proto__;
value = importDefault(15373) /* metro dependency 15373: getActivityContainerPIPStylesSpec */;
let {width, height} = env0_1;
const windowDimensionsBinding = windowDimensions;
const get = windowDimensionsBinding.get;
value = value({pipWidth: width, pipHeight: height, pipOrientationLockState: env0_5, isLandscape: Reflect.apply(get,
windowDimensionsBinding, []).landscape});
width = value.width;
height = value.height;
const shouldVerticallyCenter = value.shouldVerticallyCenter;
const shouldHorizontallyCenter = value.shouldHorizontallyCenter;
const value3 = '0%';
return {width: width, height: height, left: shouldHorizontallyCenter ? '50%' : value3,
top: shouldVerticallyCenter ? '50%' : value3, marginLeft: value.marginLeft, marginTop: value.marginTop};
}
@@ -0,0 +1,440 @@
/* Metro module 15436; source: modules/voice_panel/native/pip/useControllerPIPState.tsx; dependencies: [57, 31, 1378, 4606, 8065, 1379, 4607, 11795, 8044, 15390, 566, 3774, 8448, 7739, 15437, 11383, 15438, 15439, 15441, 2] */
function _fun118098(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118098, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15633:6, offset: 0x024cbbe5, size: 283 bytes, params: 8, frame: 19
const env0_0 = require;
const _arrayLikeToArray_118101 = 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 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
const embeddedActivitiesStore = importDefault(1378) /* metro dependency 1378: EmbeddedActivitiesStore */;
const channelRTCStore = importDefault(4606) /* metro dependency 4606: ChannelRTCStore */;
const framesStore = importDefault(8065) /* metro dependency 8065: FramesStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const speakingStore = importDefault(4607) /* metro dependency 4607: SpeakingStore */;
const env0_10 = (require(11795) /* metro dependency 11795: VoicePanelConstants */).VoicePanelModes;
const env0_11 = (require(8044) /* metro dependency 8044: ActivityPanelConstants */).ActivityPanelModes;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/pip/useControllerPIPState.tsx');
exports.useControllerPIPState = useControllerPIPState;
}
function _createForOfIteratorHelperLoose_118099(a0, a1) { // fn#118099, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15633:228, offset: 0x024cbd00, 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 _fun118100;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_118101(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_118101(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_118101(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun118100;
}
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 useControllerPIPState({channelId, connected, focusedId, layoutManager, mode}) { // fn#118102, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15633:1255, offset: 0x024cbe74, size: 613 bytes, params: 2, frame: 35
var object2;
let binding = env0_4;
const value3 = binding.useRef({'id': null, 'mode': null, 'width': 0, 'height': 0, 'containerHeight': 0,
'showSecondaryPIP': false, id: undefined, mode: undefined});
let useState = binding.useState;
const value4 = Reflect.apply(useState, binding, [undefined]);
const binding2 = env0_3;
const value5 = binding2(value4, 2);
const property = value5[0];
var env0_4 = value5[1];
const env0_5 = binding.useRef(property);
binding.useInsertionEffect(_fun118103);
const value6 = useShowSecondaryPIP({channelId: channelId, mode: mode});
const value7 = (importDefault(15437) /* metro dependency 15437: useSelfHasVideo */)(channelId);
useState = binding.useState;
const property2 = binding2(Reflect.apply(useState, binding, [_fun118106]), 1)[0];
binding.useLayoutEffect(function() {
return _fun118109;
}, [property2]);
useState = binding.useState;
const value8 = binding2(Reflect.apply(useState, binding, [function() {
return layoutManager.getTargetDimensions(focusedId);
}]), 2);
const property3 = value8[0];
const env0_7 = value8[1];
const {participant, dimensions} = (importDefault(15438) /* metro dependency 15438: calculatePIPState */)(channelId,
layoutManager, focusedId, property, {connected: connected, mode: mode, focusedId: focusedId,
participantTargetDimensions: property3, selfHasVideo: value7, showSecondaryPIP: value6});
object2 = {};
copyDataProperties(object2, value3.current, focusedId);
copyDataProperties(object2, dimensions, focusedId);
object2['id'] = participant?.id;
object2['showSecondaryPIP'] = value6;
const voicePanelPIPUtilsModule = require(15439) /* metro dependency 15439: VoicePanelPIPUtils */;
const getPIPMode = voicePanelPIPUtilsModule.getPIPMode;
object2['mode'] = Reflect.apply(getPIPMode, voicePanelPIPUtilsModule, [{channelId: channelId, connected: connected,
manuallyFocusedId: focusedId, mode: mode, selfHasVideo: value7}]);
const value11 = useCachedPipState(object2, value3);
binding = env0_4;
binding.useEffect(_fun118113, [channelId, property2]);
binding.useEffect(function() {
var closure = _fun118118;
closure();
return layoutManager.subscribeFromItem(closure);
}, [focusedId, layoutManager, property3]);
(importDefault(15441) /* metro dependency 15441: useExternalPipAspectRatioUpdaterNative */)(channelId,
layoutManager, focusedId);
return value11;
}
function useShowSecondaryPIP({channelId, mode}) { // fn#118104, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15633:1549, owner: useControllerPIPState.useShowSecondaryPIP, offset: 0x024cc0d9, size: 138 bytes, params: 2, frame: 19
return (require(566) /* metro dependency 566: flux */).useStateFromStores([EmbeddedActivitiesStore, FramesStore,
ChannelStore], _fun118105, [channelId,
(importDefault(15390) /* metro dependency 15390: useIsConnectedToVoiceChannel */)(channelId), mode]);
}
function _fun118106() { // fn#118106, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15633:2171, offset: 0x024cc2b1, size: 58 bytes, params: 1, frame: 15
var environment;
const value = environment.__proto__;
return (importDefault(11383) /* metro dependency 11383 */)(function(a0) {
return a0();
}, 1000, {leading: true});
}
function _fun118108() { // fn#118108, offset: 0x024cc2eb, size: 11 bytes, params: 1, frame: 1
return _fun118109;
}
function useCachedPipState(a0, a1) { // fn#118111, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15633:2665, owner: useControllerPIPState.useCachedPipState, offset: 0x024cc321, size: 96 bytes, params: 3, frame: 16
const value = a0;
const env0_1 = a1;
const cheapWorkletShallowEqualModule = require(7739) /* metro dependency 7739: cheapWorkletShallowEqual */;
const value3 = cheapWorkletShallowEqualModule.cheapWorkletShallowEqual(value, a1.current);
const result = !value3;
env1_4.useEffect(_fun118112);
return value3 ? a1.current : value;
}
function _fun118113() { // fn#118113, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15633:2830, offset: 0x024cc39d, size: 138 bytes, params: 1, frame: 15
var environment;
const value = environment.__proto__;
const BatchedStoreListener = (require(566) /* metro dependency 566: flux */).BatchedStoreListener;
const batchedStoreListener = new BatchedStoreListener([SpeakingStore, ChannelRTCStore], _fun118114);
batchedStoreListener.attach('pipstate-change-listeners-' + channelId);
return _fun118116;
}
function _fun118117() { // fn#118117, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15633:3188, offset: 0x024cc4e8, size: 35 bytes, params: 1, frame: 11
const closure = updateParticipantDimensions;
closure();
return layoutManager.subscribeFromItem(closure);
}
function _fun118105() { // fn#118105, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15633:1662, offset: 0x024cc163, size: 334 bytes, params: 1, frame: 18
var r0;
var connectedFrame;
var activityPanelMode;
var PIP;
var modeBinding;
var connectedActivityLocation;
var embeddedActivityLocationChannelId;
var channel;
var activityPanelMode2;
const value = environment.__proto__.__proto__;
const channel2 = ChannelStore.getChannel(channelId);
if (channel2 == null) {
connectedFrame = FramesStore.getConnectedFrame();
activityPanelMode = FramesStore.getActivityPanelMode();
if (connectedFrame == null) {
connectedActivityLocation = EmbeddedActivitiesStore.getConnectedActivityLocation();
if (connectedActivityLocation == null) {
return false;
}
embeddedActivityLocationChannelId = (require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */).getEmbeddedActivityLocationChannelId(connectedActivityLocation);
channel = ChannelStore.getChannel(embeddedActivityLocationChannelId);
activityPanelMode2 = EmbeddedActivitiesStore.getActivityPanelMode();
r0 = channel != null && (require(8448) /* metro dependency 8448: ActivitiesInTextUtils */).isActivityInTextSupportedForChannel(channel);
r0 = r0 && embeddedActivityLocationChannelId !== channelId;
r0 = r0 && (activityPanelMode2 === ActivityPanelModes.PIP && (mode === VoicePanelModes.PIP || embeddedActivityLocationChannelId !== channelId));
return r0;
}
PIP = ActivityPanelModes.PIP;
if (activityPanelMode !== PIP) {
connectedActivityLocation = EmbeddedActivitiesStore.getConnectedActivityLocation();
if (connectedActivityLocation == null) {
return false;
}
embeddedActivityLocationChannelId = (require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */).getEmbeddedActivityLocationChannelId(connectedActivityLocation);
channel = ChannelStore.getChannel(embeddedActivityLocationChannelId);
activityPanelMode2 = EmbeddedActivitiesStore.getActivityPanelMode();
r0 = channel != null && (require(8448) /* metro dependency 8448: ActivitiesInTextUtils */).isActivityInTextSupportedForChannel(channel);
r0 = r0 && embeddedActivityLocationChannelId !== channelId;
r0 = r0 && (activityPanelMode2 === ActivityPanelModes.PIP && (mode === VoicePanelModes.PIP || embeddedActivityLocationChannelId !== channelId));
return r0;
}
modeBinding = mode;
PIP = VoicePanelModes.PIP;
if (modeBinding === PIP) {
return true;
}
if (mode === VoicePanelModes.PANEL) {
return true;
}
} else {
if (channel2.isVocal()) {
if (env0_2) {
connectedFrame = FramesStore.getConnectedFrame();
activityPanelMode = FramesStore.getActivityPanelMode();
if (connectedFrame == null) {
connectedActivityLocation = EmbeddedActivitiesStore.getConnectedActivityLocation();
if (connectedActivityLocation == null) {
return false;
}
embeddedActivityLocationChannelId = (require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */).getEmbeddedActivityLocationChannelId(connectedActivityLocation);
channel = ChannelStore.getChannel(embeddedActivityLocationChannelId);
activityPanelMode2 = EmbeddedActivitiesStore.getActivityPanelMode();
r0 = channel != null && (require(8448) /* metro dependency 8448: ActivitiesInTextUtils */).isActivityInTextSupportedForChannel(channel);
r0 = r0 && embeddedActivityLocationChannelId !== channelId;
r0 = r0 && (activityPanelMode2 === ActivityPanelModes.PIP && (mode === VoicePanelModes.PIP || embeddedActivityLocationChannelId !== channelId));
return r0;
}
PIP = ActivityPanelModes.PIP;
if (activityPanelMode !== PIP) {
connectedActivityLocation = EmbeddedActivitiesStore.getConnectedActivityLocation();
if (connectedActivityLocation == null) {
return false;
}
embeddedActivityLocationChannelId = (require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */).getEmbeddedActivityLocationChannelId(connectedActivityLocation);
channel = ChannelStore.getChannel(embeddedActivityLocationChannelId);
activityPanelMode2 = EmbeddedActivitiesStore.getActivityPanelMode();
r0 = channel != null && (require(8448) /* metro dependency 8448: ActivitiesInTextUtils */).isActivityInTextSupportedForChannel(channel);
r0 = r0 && embeddedActivityLocationChannelId !== channelId;
r0 = r0 && (activityPanelMode2 === ActivityPanelModes.PIP && (mode === VoicePanelModes.PIP || embeddedActivityLocationChannelId !== channelId));
return r0;
}
modeBinding = mode;
PIP = VoicePanelModes.PIP;
if (modeBinding === PIP) {
return true;
}
if (mode === VoicePanelModes.PANEL) {
return true;
}
connectedActivityLocation = EmbeddedActivitiesStore.getConnectedActivityLocation();
if (connectedActivityLocation == null) {
return false;
}
embeddedActivityLocationChannelId = (require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */).getEmbeddedActivityLocationChannelId(connectedActivityLocation);
channel = ChannelStore.getChannel(embeddedActivityLocationChannelId);
activityPanelMode2 = EmbeddedActivitiesStore.getActivityPanelMode();
r0 = channel != null && (require(8448) /* metro dependency 8448: ActivitiesInTextUtils */).isActivityInTextSupportedForChannel(channel);
r0 = r0 && embeddedActivityLocationChannelId !== channelId;
PIP = ActivityPanelModes.PIP;
r0 = r0 && (activityPanelMode2 === PIP && (mode === VoicePanelModes.PIP || embeddedActivityLocationChannelId !== channelId));
return r0;
}
return false;
}
connectedFrame = FramesStore.getConnectedFrame();
activityPanelMode = FramesStore.getActivityPanelMode();
if (connectedFrame == null) {
connectedActivityLocation = EmbeddedActivitiesStore.getConnectedActivityLocation();
if (connectedActivityLocation == null) {
return false;
}
embeddedActivityLocationChannelId = (require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */).getEmbeddedActivityLocationChannelId(connectedActivityLocation);
channel = ChannelStore.getChannel(embeddedActivityLocationChannelId);
activityPanelMode2 = EmbeddedActivitiesStore.getActivityPanelMode();
r0 = channel != null && (require(8448) /* metro dependency 8448: ActivitiesInTextUtils */).isActivityInTextSupportedForChannel(channel);
r0 = r0 && embeddedActivityLocationChannelId !== channelId;
r0 = r0 && (activityPanelMode2 === ActivityPanelModes.PIP && (mode === VoicePanelModes.PIP || embeddedActivityLocationChannelId !== channelId));
return r0;
}
PIP = ActivityPanelModes.PIP;
if (activityPanelMode !== PIP) {
connectedActivityLocation = EmbeddedActivitiesStore.getConnectedActivityLocation();
if (connectedActivityLocation == null) {
return false;
}
embeddedActivityLocationChannelId = (require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */).getEmbeddedActivityLocationChannelId(connectedActivityLocation);
channel = ChannelStore.getChannel(embeddedActivityLocationChannelId);
activityPanelMode2 = EmbeddedActivitiesStore.getActivityPanelMode();
r0 = channel != null && (require(8448) /* metro dependency 8448: ActivitiesInTextUtils */).isActivityInTextSupportedForChannel(channel);
r0 = r0 && embeddedActivityLocationChannelId !== channelId;
r0 = r0 && (activityPanelMode2 === ActivityPanelModes.PIP && (mode === VoicePanelModes.PIP || embeddedActivityLocationChannelId !== channelId));
return r0;
}
modeBinding = mode;
PIP = VoicePanelModes.PIP;
if (modeBinding === PIP) {
return true;
}
if (mode === VoicePanelModes.PANEL) {
return true;
}
}
connectedActivityLocation = EmbeddedActivitiesStore.getConnectedActivityLocation();
if (connectedActivityLocation == null) {
return false;
}
embeddedActivityLocationChannelId = (require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */).getEmbeddedActivityLocationChannelId(connectedActivityLocation);
channel = ChannelStore.getChannel(embeddedActivityLocationChannelId);
activityPanelMode2 = EmbeddedActivitiesStore.getActivityPanelMode();
r0 = channel != null && (require(8448) /* metro dependency 8448: ActivitiesInTextUtils */).isActivityInTextSupportedForChannel(channel) && embeddedActivityLocationChannelId !== channelId;
PIP = ActivityPanelModes.PIP;
r0 = r0 && (activityPanelMode2 === PIP && (mode === VoicePanelModes.PIP || embeddedActivityLocationChannelId !== channelId));
return r0;
}
function _fun118109() { // fn#118109, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15633:2248, offset: 0x024cc2f6, size: 19 bytes, params: 1, frame: 9
return env1_6.cancel();
}
function _fun118112() { // fn#118112, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15633:2772, offset: 0x024cc381, size: 28 bytes, params: 1, frame: 2
if (result) {
require.current = env0_0;
}
}
function _fun118114() { // fn#118114, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15633:2884, offset: 0x024cc427, size: 170 bytes, params: 1, frame: 21
var environment;
var r6;
var r2;
var value7;
var getParticipant;
var value8;
const value = environment.__proto__.__proto__;
const _createForOfIteratorHelperLoose_118099Binding = _createForOfIteratorHelperLoose_118099;
const speakers = SpeakingStore.getSpeakers();
const value3 = undefined;
const value4 = _createForOfIteratorHelperLoose_118099Binding(speakers);
const value5 = value4();
let done = value5.done;
if (done) {
r2 = value3;
} else {
r6 = value5;
while (true) {
value7 = r6.value;
getParticipant = ChannelRTCStore.getParticipant;
if (Reflect.apply(getParticipant, ChannelRTCStore, [channelId, value7]) != null) {
r2 = value7;
break;
}
value8 = value4();
done = value8.done;
if (done) {
r2 = value3;
break;
}
r6 = value8;
continue;
}
}
if (r2 !== env1_5.current && r2 != null) {
if (env1_5.current == null) {
env1_4(r2);
} else {
env1_6(_fun118115);
}
}
return value3;
}
function updateParticipantDimensions() { // fn#118118, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15633:3225, offset: 0x024cc50b, size: 25 bytes, params: 1, frame: 11
var environment;
let value = environment.__proto__;
env1_7(function(a0) {
var value = a0;
var value3 = layoutManager.getTargetDimensions(focusedId);
return require(dependencyMap[13]).cheapWorkletShallowEqual(value, value3) ? value : value3;
});
}
function _fun118115() { // fn#118115, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15633:3086, offset: 0x024cc4d1, size: 23 bytes, params: 1, frame: 11
return env2_4(env0_0);
}
@@ -0,0 +1,95 @@
/* Metro module 15442; source: modules/voice_panel/native/pip/usePIPAvoidanceSpecs.tsx; dependencies: [11795, 11793, 11796, 4017, 15319, 15364, 3860, 697, 7739, 15263, 15365, 11799, 11282, 2] */
function _fun118152(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118152, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15639:6, offset: 0x024cddad, size: 200 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = (require(11795) /* metro dependency 11795: VoicePanelConstants */).VoicePanelModes;
const env0_4 = (require(11793) /* metro dependency 11793: VoicePanelControlsConstants */).VoicePanelControlsModes;
const env0_5 = (require(11796) /* metro dependency 11796: MorphablePanelConstants */).PIP_WINDOW_OFFSET;
object = {code: 'function usePIPAvoidanceSpecsTsx1(){const{mode,controlsSpecs,keyboardHeight,safeArea,screenName}=this.__closure;return{mode:mode.get(),controlsSpecs:controlsSpecs.get(),keyboardHeight:keyboardHeight.get(),safeArea:safeArea.get(),screenName:screenName.get()};}'};
object = {code: 'function usePIPAvoidanceSpecsTsx2(props,previous){const{cheapWorkletShallowEqual,VoicePanelModes,VoicePanelControlsModes,DEFAULT_CHANNEL_INPUT_HEIGHT,PIP_WINDOW_OFFSET,getPIPBottomOffsetForPIPMode,getAdjustedBottomOffsets,calculateVoicePanelHeaderSpecs,edgeGutter,updateSharedValueIfChanged,pipAvoidanceSpecs}=this.__closure;if(cheapWorkletShallowEqual(props,previous!==null&&previous!==void 0?previous:undefined))return;const{mode:mode,controlsSpecs:controlsSpecs,keyboardHeight:keyboardHeight,safeArea:safeArea,screenName:screenName}=props;const screenBottomOffset=function(){if(mode!==VoicePanelModes.PIP){if(mode===VoicePanelModes.PANEL&&controlsSpecs.mode===VoicePanelControlsModes.DRAWER){return DEFAULT_CHANNEL_INPUT_HEIGHT+PIP_WINDOW_OFFSET;}return 0;}return getPIPBottomOffsetForPIPMode(screenName);}();let{bottomOffset:bottomOffset}=getAdjustedBottomOffsets({screenBottomOffset:screenBottomOffset,safeAreaBottom:safeArea.bottom,keyboardHeight:keyboardHeight});if(keyboardHeight<=0&&mode===VoicePanelModes.PANEL&&controlsSpecs.mode===VoicePanelControlsModes.FLOATING_DEFAULT){bottomOffset+=controlsSpecs.height+PIP_WINDOW_OFFSET;}const{height:headerHeight}=calculateVoicePanelHeaderSpecs(safeArea,edgeGutter);updateSharedValueIfChanged(pipAvoidanceSpecs,{top:mode===VoicePanelModes.PANEL&&controlsSpecs.mode===VoicePanelControlsModes.FLOATING_DEFAULT?headerHeight:0,bottom:bottomOffset});}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/pip/usePIPAvoidanceSpecs.tsx');
exports.default = usePIPAvoidanceSpecs_118153;
}
function usePIPAvoidanceSpecs_118153({mode, controlsSpecs, safeArea}) { // fn#118153, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15639:1965, offset: 0x024cde75, size: 450 bytes, params: 2, frame: 26
var object2;
const value2 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue({'top': 0,
'bottom': 0});
const value3 = (importDefault(15319) /* metro dependency 15319: useAnimatedKeyboardHeight */)();
const value4 = (importDefault(15364) /* metro dependency 15364: useScreenNameSharedValue */)();
const useTokenModule = require(3860) /* metro dependency 3860: useToken */;
const useToken = useTokenModule.useToken;
const VOICE_PANEL_GUTTER = (importDefault(697) /* metro dependency 697: native */).modules.mobile.VOICE_PANEL_GUTTER;
const value5 = Reflect.apply(useToken, useTokenModule, [VOICE_PANEL_GUTTER]);
const env0_6 = value5;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
const closure = usePIPAvoidanceSpecs_118153P;
closure.__closure = {mode: mode, controlsSpecs: controlsSpecs, keyboardHeight: value3, safeArea: safeArea,
screenName: value4};
closure.__workletHash = 17017598468922;
closure.__initData = env0_6;
const closure2 = usePIPAvoidanceSpecs_118153U;
object2 = {};
object2.cheapWorkletShallowEqual = (require(7739) /* metro dependency 7739: cheapWorkletShallowEqual */).cheapWorkletShallowEqual;
object2.VoicePanelModes = VoicePanelModes;
object2.VoicePanelControlsModes = VoicePanelControlsModes;
object2.DEFAULT_CHANNEL_INPUT_HEIGHT = 60;
object2.PIP_WINDOW_OFFSET = PIP_WINDOW_OFFSET;
object2.getPIPBottomOffsetForPIPMode = importDefault(15263) /* metro dependency 15263: getPIPBottomOffsetForPIPMode */;
object2.getAdjustedBottomOffsets = importDefault(15365) /* metro dependency 15365: getAdjustedBottomOffsets */;
object2.calculateVoicePanelHeaderSpecs = importDefault(11799) /* metro dependency 11799: calculateVoicePanelHeaderSpecs */;
object2.edgeGutter = value5;
object2.updateSharedValueIfChanged = importDefault(11282) /* metro dependency 11282: updateSharedValueIfChangedNative */;
object2.pipAvoidanceSpecs = value2;
closure2.__closure = object2;
closure2.__workletHash = 13029906729161;
closure2.__initData = env0_7;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
return value2;
}
function usePIPAvoidanceSpecs_118153P() { // fn#118154, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15639:2208, owner: usePIPAvoidanceSpecs_118153.p, offset: 0x024ce037, size: 96 bytes, params: 1, frame: 11
const object2 = {};
object2.mode = mode.get();
object2.controlsSpecs = controlsSpecs.get();
object2.keyboardHeight = env0_4.get();
object2.safeArea = safeArea.get();
object2.screenName = env0_5.get();
return object2;
}
function usePIPAvoidanceSpecs_118153U(a0, a1) { // fn#118155, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15639:2439, owner: usePIPAvoidanceSpecs_118153.u, offset: 0x024ce097, size: 417 bytes, params: 3, frame: 21
var r4;
var mode;
var controlsSpecs;
var keyboardHeight;
var safeArea;
var bottomOffset;
let value = a1;
const value3 = undefined;
const cheapWorkletShallowEqualModule = require(7739) /* metro dependency 7739: cheapWorkletShallowEqual */;
const cheapWorkletShallowEqual = cheapWorkletShallowEqualModule.cheapWorkletShallowEqual;
let r1 = value ?? value3;
if (!Reflect.apply(cheapWorkletShallowEqual, cheapWorkletShallowEqualModule, [a0, r1])) {
mode = a0.mode;
controlsSpecs = a0.controlsSpecs;
keyboardHeight = a0.keyboardHeight;
safeArea = a0.safeArea;
r4 = mode !== VoicePanelModes.PIP ? mode !== VoicePanelModes.PANEL || controlsSpecs.mode !== VoicePanelControlsModes.DRAWER ? 0 : 60 + PIP_WINDOW_OFFSET : (importDefault(15263) /* metro dependency 15263: getPIPBottomOffsetForPIPMode */)(a0.screenName);
value = importDefault(15365) /* metro dependency 15365: getAdjustedBottomOffsets */;
bottomOffset = value({screenBottomOffset: r4, safeAreaBottom: safeArea.bottom,
keyboardHeight: keyboardHeight}).bottomOffset;
value = 0;
r1 = keyboardHeight <= value && mode === VoicePanelModes.PANEL;
r1 = r1 && controlsSpecs.mode === VoicePanelControlsModes.FLOATING_DEFAULT;
r4 = r1 ? bottomOffset + (controlsSpecs.height + PIP_WINDOW_OFFSET) : bottomOffset;
(importDefault(11282) /* metro dependency 11282: updateSharedValueIfChangedNative */)(env0_3,
{top: mode !== VoicePanelModes.PANEL || controlsSpecs.mode !== VoicePanelControlsModes.FLOATING_DEFAULT ? value : (importDefault(11799) /* metro dependency 11799: calculateVoicePanelHeaderSpecs */)(safeArea,
env0_6).height, bottom: r4});
}
return value3;
}
@@ -0,0 +1,903 @@
/* Metro module 15511; source: modules/voice_panel/native/prejoin/VoicePanelPreJoinContent.tsx; dependencies: [5, 57, 31, 27, 1378, 4295, 12579, 4492, 1226, 1379, 3784, 4296, 1878, 4297, 4300, 11795, 11798, 661, 12584, 33, 4501, 11799, 697, 11794, 4796, 8913, 4285, 566, 6821, 4573, 1244, 10270, 6777, 3774, 15502, 1478, 4017, 8107, 8106, 10718, 5278, 15500, 4578, 8742, 480, 7684, 9243, 4617, 6238, 11624, 11319, 6771, 6789, 683, 15467, 4577, 4508, 8141, 15390, 15512, 2] */
function _fun118741(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118741, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:6, offset: 0x024eb26b, size: 1231 bytes, params: 8, frame: 29
var object2;
const env0_0 = require;
const _arrayLikeToArray_118744 = 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 = importDefault(5) /* metro dependency 5 */;
const env0_4 = importDefault(57) /* metro dependency 57 */;
let value = importAll(31) /* metro dependency 31 */;
const StyleSheet = (require(27) /* metro dependency 27 */).StyleSheet;
const embeddedActivitiesStore = importDefault(1378) /* metro dependency 1378: EmbeddedActivitiesStore */;
const gameConsoleStore = importDefault(4295) /* metro dependency 4295: GameConsoleStore */;
const voiceChannelBlockedUserStore = importDefault(12579) /* metro dependency 12579: VoiceChannelBlockedUserStore */;
const applicationStreamingStore = importDefault(4492) /* metro dependency 4492: ApplicationStreamingStore */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const permissionStore = importDefault(3784) /* metro dependency 3784: PermissionStore */;
const sessionsStore = importDefault(4296) /* metro dependency 4296: SessionsStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const voiceStateStore = importDefault(4297) /* metro dependency 4297: VoiceStateStore */;
const sortedVoiceStateStore = importDefault(4300) /* metro dependency 4300: SortedVoiceStateStore */;
const env0_17 = (require(11795) /* metro dependency 11795: VoicePanelConstants */).MODE_CHANGE_PHYSICS;
const EDGE_GUTTER = (require(11798) /* metro dependency 11798: VoicePanelCardConstants */).EDGE_GUTTER;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_19 = constantsModule.AnalyticEvents;
const env0_20 = constantsModule.AnalyticsSections;
const env0_21 = constantsModule.Permissions;
const env0_22 = (require(12584) /* metro dependency 12584: SharedSpaceWarningConstants */).VoiceChannelWarningSurfaces;
let value3 = require(33) /* metro dependency 33 */;
const env0_23 = value3.jsx;
const env0_24 = value3.jsxs;
const env0_25 = value3.Fragment;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {};
const BASE_VOICE_PANEL_HEADER_HEIGHT = (require(11799) /* metro dependency 11799: calculateVoicePanelHeaderSpecs */).BASE_VOICE_PANEL_HEADER_HEIGHT;
object2.contentWrapper = {'paddingTop': null, 'gap': 24, 'paddingBottom': 16,
paddingTop: EDGE_GUTTER + BASE_VOICE_PANEL_HEADER_HEIGHT + EDGE_GUTTER};
object2.channelInfoWrapper = {paddingHorizontal: 16};
object2.subheading = {'textAlign': 'center', 'paddingTop': 16, 'paddingBottom': 16};
const object3 = {'position': 'relative', 'width': '100%', 'aspectRatio': 1.7777777777777777, 'borderRadius': null,
'overflow': 'hidden', 'justifyContent': 'center'};
object3.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.lg;
const BLACK = (importDefault(697) /* metro dependency 697: native */).colors.BLACK;
object3.backgroundColor = BLACK;
object2.previewImageWrapper = object3;
const object6 = {};
copyDataProperties(object6, StyleSheet.absoluteFillObject, undefined);
object6['opacity'] = 0.5;
object2.previewImage = object6;
object2.activityInfoWrapper = {paddingHorizontal: 16};
object2.activityInfoHeader = {marginBottom: 8};
const object7 = {};
copyDataProperties(object7, StyleSheet.absoluteFillObject, undefined);
object7['display'] = 'flex';
object7['alignItems'] = 'center';
object7['justifyContent'] = 'center';
object2.joinButtonWrapper = object7;
object2.optInChannelsContainer = {marginHorizontal: 16};
const object9 = {'display': 'flex', 'flexDirection': 'row', 'alignItems': 'center'};
let PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object9.gap = PX_8;
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object9.padding = PX_8;
object9.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.xs;
const ICON_FEEDBACK_WARNING = (importDefault(697) /* metro dependency 697: native */).colors.ICON_FEEDBACK_WARNING;
object9.borderColor = ICON_FEEDBACK_WARNING;
object9.borderWidth = 1;
const BACKGROUND_FEEDBACK_WARNING = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_FEEDBACK_WARNING;
object9.backgroundColor = BACKGROUND_FEEDBACK_WARNING;
const PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object9.marginHorizontal = PX_16;
object2.blockedMemberWarning = object9;
object2.consolePreJoinPadding = {height: 36};
const env0_26 = Reflect.apply(createStyles, createStylesModule, [object2]);
const env0_27 = value.memo(_fun118766);
object2 = {code: 'function VoicePanelPreJoinContentTsx1(){const{windowDimensions}=this.__closure;return windowDimensions.get().width;}'};
object2 = {code: 'function VoicePanelPreJoinContentTsx2(width,previous){const{runOnJS,setActivityPreviewWidth,EDGE_GUTTER}=this.__closure;if(width===previous)return;runOnJS(setActivityPreviewWidth)(width-(EDGE_GUTTER+16)*2);}'};
const env0_30 = value.memo(_fun118767);
const env0_31 = value.memo(_fun118768);
const env0_32 = value.memo(VoicePanelPreJoinContentInner);
object2 = {code: "function VoicePanelPreJoinContentTsx3(){const{windowDimensions,roundToNearestPixel,controlsSpecs,safeArea,withSpring,transitionState,TransitionStates,interpolate,useReducedMotion,MODE_CHANGE_PHYSICS,runOnJS,transitionCleanUp}=this.__closure;const{height:windowHeight}=windowDimensions.get();return{paddingBottom:windowHeight-roundToNearestPixel(windowHeight*0.8)+controlsSpecs.get().height+safeArea.get().bottom,opacity:withSpring(transitionState===TransitionStates.YEETED?0:1),transform:[{translateY:withSpring(interpolate(!useReducedMotion.get()&&transitionState===TransitionStates.YEETED?1:0,[0,1],[0,400]),MODE_CHANGE_PHYSICS,'respect-motion-settings',function(finished=false){finished&&transitionState===TransitionStates.YEETED&&runOnJS(transitionCleanUp)();})}]};}"};
object2 = {code: 'function VoicePanelPreJoinContentTsx4(finished=false){const{transitionState,TransitionStates,runOnJS,transitionCleanUp}=this.__closure;finished&&transitionState===TransitionStates.YEETED&&runOnJS(transitionCleanUp)();}'};
value = value.memo(VoicePanelPreJoinWrapper);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/prejoin/VoicePanelPreJoinContent.tsx');
exports.default = value;
}
function _createForOfIteratorHelperLoose_118742(a0, a1) { // fn#118742, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:475, offset: 0x024eb73a, 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 _fun118743;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_118744(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_118744(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_118744(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun118743;
}
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 StreamPreview({voiceState, stream, channelId}) { // fn#118745, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:2450, offset: 0x024eb8ae, size: 504 bytes, params: 2, frame: 30
const styles = useStyles();
const {mode,
setFocused} = env0_5.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const value3 = env0_5.useCallback(_fun118746, [channelId, stream, setFocused]);
const env0_3 = (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelStore], function() {
return ChannelStore.getChannel(channelId);
});
const value4 = (require(566) /* metro dependency 566: flux */).useStateFromStores([PermissionStore], function() {
var CONNECT = Permissions.CONNECT;
return PermissionStore.can(CONNECT, channel);
});
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const format = intl.format;
const I0mOAs = (require(1244) /* metro dependency 1244: indexNative */).t.I0mOAs;
const text = <Text variant="text-sm/semibold" style={styles.activityInfoHeader} color="text-default">{Reflect.apply(format,
intl, [I0mOAs, {username: voiceState.nick ?? voiceState.user.username}])}</Text>;
const defaultImport2 = NativeView;
const VoicePanelStreamPreview = (require(10270) /* metro dependency 10270: VoicePanelStreamPreview */).VoicePanelStreamPreview;
return (
<NativeView style={styles.activityInfoWrapper}>
{text}
{((Component) => <Component style={styles.previewImageWrapper}><VoicePanelStreamPreview mode={mode} disabled={!value4} stream={stream} onPress={value3} /></Component>)(defaultImport2)}
</NativeView>
);
}
function ActivityInfo({activity, analyticsLocations}) { // fn#118749, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:3809, offset: 0x024ebb42, size: 1171 bytes, params: 2, frame: 37
var r0;
var NativeView;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
var items3;
var PressableOpacity;
var items2;
var NativeView2;
var Button;
var object8;
var Icon;
var value;
const styles = useStyles();
const property = env0_4((importDefault(6777) /* metro dependency 6777: useGetOrFetchApplications */)([activity.applicationId]),
1)[0];
const embeddedActivityLocationUtilsModule = require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */;
const getEmbeddedActivityLocationChannelId = embeddedActivityLocationUtilsModule.getEmbeddedActivityLocationChannelId;
const value6 = (importDefault(15502) /* metro dependency 15502: useActivityUsers */)(activity.applicationId,
Reflect.apply(getEmbeddedActivityLocationChannelId, embeddedActivityLocationUtilsModule, [activity.location]));
const {channelId,
windowDimensions} = env0_5.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
var env0_4 = windowDimensions;
const [property2, property3] = env0_4(env0_5.useState(function() {
return require(dependencyMap[35]).getWindowDimensions().width - 2 * (EDGE_GUTTER + 16);
}), 2);
var env0_5 = property3;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
const closure = function() {
return windowDimensions.get().width;
};
closure.__closure = {windowDimensions: windowDimensions};
closure.__workletHash = 16837592262556;
closure.__initData = env0_28;
const closure2 = ActivityInfoS;
closure2.__closure = {runOnJS: reanimatedRexportModule.runOnJS, setActivityPreviewWidth: property3,
EDGE_GUTTER: EDGE_GUTTER};
closure2.__workletHash = 1481130207412;
closure2.__initData = env0_29;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
const value10 = (require(8107) /* metro dependency 8107: getEmbeddedActivityJoinability */).useEmbeddedActivityJoinability({userId: AuthenticationStore.getId(),
channelId: channelId, application: property});
const EmbeddedActivityJoinability = (require(8107) /* metro dependency 8107: getEmbeddedActivityJoinability */).EmbeddedActivityJoinability;
const CAN_JOIN = EmbeddedActivityJoinability.CAN_JOIN;
const value12 = env0_5.useCallback(_fun118753, [activity.launchId, analyticsLocations, property,
value10 === CAN_JOIN, channelId, value10]);
if (property == null) {
r0 = null;
} else {
NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
var defaultImport4Props = {style: styles.activityInfoWrapper};
items3 = [((Text) => <Text variant="text-sm/semibold" style={styles.activityInfoHeader} color="text-default">{intl.format(t['n/IJ6Y'],
{n: value6.length})}</Text>)((require(4573) /* metro dependency 4573: Text */).Text)];
PressableOpacity = (require(5278) /* metro dependency 5278: Pressables */).PressableOpacity;
var pressableOpacityProps = {activeOpacity: 0.7, onPress: value12, style: styles.previewImageWrapper,
accessible: false};
items2 = [((Component) => <Component style={styles.previewImage}>{((Component) => <Component imageBackground={(importDefault(10718) /* metro dependency 10718: useEmbeddedActivityBackground */)({applicationId: activity.applicationId,
size: property2,
names: ['embedded_background']})} aspectRatio={1.7777777777777777} />)(importDefault(15500) /* metro dependency 15500: ActivityShelfItemBackground */)}</Component>)(importDefault(6821) /* metro dependency 6821: NativeView */)];
NativeView2 = importDefault(6821) /* metro dependency 6821: NativeView */;
var defaultImport7Props = {style: styles.joinButtonWrapper};
Button = (require(4578) /* metro dependency 4578: ButtonNative */).Button;
var buttonProps = {'text': null, 'size': 'sm', 'iconPosition': 'start', 'variant': 'primary-overlay',
text: intl.formatToPlainString(t['YV/hE8'], {name: property.name})};
Icon = (require(4578) /* metro dependency 4578: ButtonNative */).Button.Icon;
value = property.getIconURL(20);
buttonProps.icon = <Icon variant="entity" source={{'uri': null, 'width': 20, 'height': 20,
uri: value ?? undefined}} />;
buttonProps.onPress = value12;
items2[1] = <NativeView2 {...defaultImport7Props}><Button {...buttonProps} /></NativeView2>;
items3[1] = <PressableOpacity {...pressableOpacityProps}>{items2}</PressableOpacity>;
value = <NativeView {...defaultImport4Props}>{items3}</NativeView>;
r0 = value;
}
return r0;
}
function RoomMembersSection({title, members, channelId, guildId}) { // fn#118757, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:6643, offset: 0x024ec18f, size: 245 bytes, params: 2, frame: 31
var r6;
var value4;
var user;
var push;
var jsxRuntimeEnv0_23Binding2;
var MemberRowItem;
var object;
var defaultImport;
var value6;
const VoicePanelFormSection = (require(9243) /* metro dependency 9243: FormComponents */).VoicePanelFormSection;
const items2 = [];
const value2 = _createForOfIteratorHelperLoose_118742(members);
const value3 = value2();
let done = value3.done;
if (!done) {
r6 = value3;
while (true) {
value4 = r6.value;
user = UserStore.getUser(value4);
if (user != null) {
push = items2.push;
jsxRuntimeEnv0_23Binding2 = jsxRuntimeEnv0_23;
MemberRowItem = (require(9243) /* metro dependency 9243: FormComponents */).MemberRowItem;
object = {user: user, channelId: channelId, guildId: guildId};
defaultImport = importDefault(4617) /* metro dependency 4617: NicknameUtils */;
object.nick = defaultImport.getName(guildId, channelId, user);
Reflect.apply(push, items2, [<MemberRowItem {...object} key={value4} />]);
}
value6 = value2();
done = value6.done;
if (done) {
break;
}
r6 = value6;
continue;
}
}
return (
<VoicePanelFormSection title={title} hasIcons>
{items2}
</VoicePanelFormSection>
);
}
function RoomMembers({members, streamingMembers, blockedMembers, ignoredMembers}) { // fn#118758, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:7009, offset: 0x024ec284, size: 1033 bytes, params: 2, frame: 40
var r5;
var r9;
var r15;
var r23;
var jsxRuntimeEnv0_23Binding;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
var formatToPlainString;
var VoicePanelFormSection;
var object;
var vloEU7;
var items2;
var value16;
var value17;
var done;
var value18;
var has;
var user;
var id;
var value19;
var value20;
var push;
var MemberRowItem;
var object2;
var defaultImport;
var getName;
var value21;
var items3;
const {channelId,
guildId} = env0_5.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const [property, env0_2] = env0_4(env0_5.useState(20), 2);
const value5 = blockedMembers.size + ignoredMembers.size;
let length = members.length;
const value6 = length - value5;
const jsxRuntimeEnv0_25Binding = jsxRuntimeEnv0_25;
const items4 = [value5 > 0 && ((Component) => <Component channelId={channelId} blockedUserIds={blockedMembers} ignoredUserIds={ignoredMembers} />)(env0_30)];
items4[1] = streamingMembers.map(_fun118759);
items4[2] = blockedMembers.size > 0 && <RoomMembersSection title={intl.formatToPlainString((require(1244) /* metro dependency 1244: indexNative */).t.pGJ1Qy,
{n: blockedMembers.size})} members={blockedMembers} channelId={channelId} guildId={guildId} />;
items4[3] = ignoredMembers.size > 0 && <RoomMembersSection title={intl.formatToPlainString((require(1244) /* metro dependency 1244: indexNative */).t['/pXOCN'],
{n: ignoredMembers.size})} members={ignoredMembers} channelId={channelId} guildId={guildId} />;
const value13 = value6 > 0;
if (value13) {
VoicePanelFormSection = (require(9243) /* metro dependency 9243: FormComponents */).VoicePanelFormSection;
object = {hasIcons: true};
if (value5 === 0) {
formatToPlainString = intl.formatToPlainString;
vloEU7 = (require(1244) /* metro dependency 1244: indexNative */).t.vloEU7;
length = members.length;
r9 = Reflect.apply(formatToPlainString, intl, [vloEU7, {n: length}]);
} else {
r9 = intl.formatToPlainString((require(1244) /* metro dependency 1244: indexNative */).t.R0h4pE,
{n: value6});
}
object.title = r9;
items2 = [];
value16 = _createForOfIteratorHelperLoose_118742(members);
value17 = value16();
done = value17.done;
if (!done) {
r15 = value17;
while (true) {
value18 = r15.value;
length = items2.length;
if (length >= property) {
break;
}
has = blockedMembers.has;
user = value18.user;
id = user.id;
value19 = Reflect.apply(has, blockedMembers, [id]);
if (value19) {
r23 = value19;
continue;
}
has = ignoredMembers.has;
user = value18.user;
id = user.id;
value20 = Reflect.apply(has, ignoredMembers, [id]);
r23 = value20;
if (r23) {
continue;
}
push = items2.push;
jsxRuntimeEnv0_23Binding = jsxRuntimeEnv0_23;
MemberRowItem = (require(9243) /* metro dependency 9243: FormComponents */).MemberRowItem;
object2 = {};
user = value18.user;
object2.user = user;
object2.channelId = channelId;
object2.guildId = guildId;
defaultImport = importDefault(4617) /* metro dependency 4617: NicknameUtils */;
getName = defaultImport.getName;
user = value18.user;
object2.nick = Reflect.apply(getName, defaultImport, [guildId, channelId, user]);
user = value18.user;
id = user.id;
Reflect.apply(push, items2, [<MemberRowItem {...object2} key={id} />]);
value21 = value16();
done = value21.done;
if (done) {
break;
}
r15 = value21;
continue;
}
}
items3 = [items2];
items3[1] = value6 > property && ((TableRow) => <TableRow label={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.F4MCUO)} onPress={onPress_118760} />)((require(6238) /* metro dependency 6238: TableRowNative */).TableRow);
r5 = <VoicePanelFormSection {...object}>{items3}</VoicePanelFormSection>;
} else {
r5 = value13;
}
items4[4] = r5;
return (
<>
{items4}
</>
);
}
function PreJoinTransitioner(a0) { // fn#118761, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:10467, offset: 0x024ec718, size: 503 bytes, params: 2, frame: 30
const transitionState = a0.transitionState;
const transitionCleanUp = a0.transitionCleanUp;
const value = Object.create(null);
value.transitionState = 0;
value.transitionCleanUp = 0;
const value2 = copyDataProperties({}, a0, value, undefined);
const styles = useStyles();
const value4 = env0_5.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const windowDimensions = value4.windowDimensions;
const controlsSpecs = value4.controlsSpecs;
const safeArea = value4.safeArea;
const preJoinContentSize = value4.preJoinContentSize;
var env0_5 = preJoinContentSize;
const useReducedMotion = value4.useReducedMotion;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
const closure = PreJoinTransitionerO;
const object2 = {windowDimensions: windowDimensions,
roundToNearestPixel: importDefault(11624) /* metro dependency 11624: roundToNearestPixel */,
controlsSpecs: controlsSpecs, safeArea: safeArea};
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.transitionState = transitionState;
const TransitionStates = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates;
object2.TransitionStates = TransitionStates;
object2.interpolate = reanimatedRexportModule.interpolate;
object2.useReducedMotion = useReducedMotion;
object2.MODE_CHANGE_PHYSICS = MODE_CHANGE_PHYSICS;
object2.runOnJS = reanimatedRexportModule.runOnJS;
object2.transitionCleanUp = transitionCleanUp;
closure.__closure = object2;
closure.__workletHash = 16643118377748;
closure.__initData = env0_33;
return ((Component) => <Component style={Reflect.apply(useAnimatedStyle, reanimatedRexportModule,
[closure])} collapsable={false}>{((Component) => <Component onLayout={env0_5.useCallback(function(a0) {
preJoinContentSize.set(importDefault(dependencyMap[49])(a0.nativeEvent.layout.height));
},
[preJoinContentSize])} collapsable={false} style={styles.contentWrapper}>{((Component) => <Component {...value2} />)(env0_32)}</Component>)(importDefault(6821) /* metro dependency 6821: NativeView */)}</Component>)(importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */);
}
function renderItem_118765(a0, a1, a2, a3) { // fn#118765, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:11909, offset: 0x024ecb90, size: 53 bytes, params: 5, frame: 15
return (
<PreJoinTransitioner
transitionState={a2}
transitionCleanUp={a3}
{...a1}
key={a0}
/>
);
}
function _fun118766({hasMembers}) { // fn#118766, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:3224, offset: 0x024ecbc5, size: 186 bytes, params: 2, frame: 22
var r0;
var NativeView;
var Text;
var intl;
const styles = useStyles();
if (hasMembers) {
r0 = null;
} else {
NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
var defaultImportProps = {style: styles.channelInfoWrapper};
Text = (require(4573) /* metro dependency 4573: Text */).Text;
var textProps = {'variant': 'text-sm/medium', 'color': 'text-default', style: styles.subheading};
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
r0 = <NativeView {...defaultImportProps}><Text {...textProps}>{intl.string((require(1244) /* metro dependency 1244: indexNative */).t.sS2J0G)}</Text></NativeView>;
}
return r0;
}
function _fun118767({channelId, blockedUserIds, ignoredUserIds}) { // fn#118767, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:5866, offset: 0x024ecc7f, size: 641 bytes, params: 2, frame: 24
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const styles = useStyles();
const defaultImport = importDefault(8742) /* metro dependency 8742: useTrackImpression */;
const object3 = {};
const ImpressionNames = (require(480) /* metro dependency 480: AnalyticsUtils */).ImpressionNames;
const VOICE_CHANNEL_BLOCKED_USER_WARNING = ImpressionNames.VOICE_CHANNEL_BLOCKED_USER_WARNING;
object3.name = VOICE_CHANNEL_BLOCKED_USER_WARNING;
const object4 = {channel_id: channelId};
const Array = global.Array;
object4.blocked_user_ids = Array.from(blockedUserIds);
const PRE_JOIN_SHEET = VoiceChannelWarningSurfaces.PRE_JOIN_SHEET;
object4.warning_surface = PRE_JOIN_SHEET;
object3.properties = object4;
defaultImport(object3);
const size = ignoredUserIds.size;
const size2 = blockedUserIds.size;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const CjrALd = (require(1244) /* metro dependency 1244: indexNative */).t.CjrALd;
const value2 = Reflect.apply(string, intl, [CjrALd]);
const r9 = size2 > 0 && size > 0 ? intl.string((require(1244) /* metro dependency 1244: indexNative */).t.MpRfpC) : size > 0 ? intl.format((require(1244) /* metro dependency 1244: indexNative */).t.u9trAZ,
{n: size}) : intl.format((require(1244) /* metro dependency 1244: indexNative */).t['6X29zb'], {n: size2});
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const CircleErrorIcon = (require(7684) /* metro dependency 7684: CircleErrorIcon */).CircleErrorIcon;
const circleErrorIcon = <CircleErrorIcon color="text-feedback-warning" />;
const items2 = [r9, ' '];
items2[2] = value2 != null ? <Text variant="heading-sm/semibold">{value2}</Text> : null;
return (
<NativeView style={styles.blockedMemberWarning}>
{circleErrorIcon}
<Text
variant="text-sm/bold"
color="interactive-text-active"
style={{flexShrink: 1}}
>
{items2}
</Text>
</NativeView>
);
}
function _fun118768({channelId}) { // fn#118768, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:8253, offset: 0x024ecf00, size: 159 bytes, params: 2, frame: 19
var r0;
var value;
const styles = useStyles();
const fluxModule = require(566) /* metro dependency 566: flux */;
const useStateFromStores = fluxModule.useStateFromStores;
const items = [AuthenticationStore];
items[1] = GameConsoleStore;
items[2] = VoiceStateStore;
items[3] = SessionsStore;
if (Reflect.apply(useStateFromStores, fluxModule, [items, _fun118769, [channelId]])) {
value = importDefault(6821) /* metro dependency 6821: NativeView */;
value = ((Component) => <Component style={styles.consolePreJoinPadding} />)(value);
r0 = value;
} else {
r0 = null;
}
return r0;
}
function VoicePanelPreJoinContentInner({members, streamingMembers, blockedMembers, ignoredMembers, activities}) { // fn#118770, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:8682, offset: 0x024ed054, size: 500 bytes, params: 2, frame: 30
const styles = useStyles();
const {channelId,
guildId} = env0_5.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const channel = (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelStore], function() {
return ChannelStore.getChannel(channelId);
});
const value3 = (importDefault(11319) /* metro dependency 11319: useShowChannelOptInNotice */)(channel);
let defaultImport = importDefault(6771) /* metro dependency 6771: useAnalyticsLocations */;
const VOICE_PANEL_PRE_JOIN = (importDefault(6789) /* metro dependency 6789: AnalyticsLocation */).VOICE_PANEL_PRE_JOIN;
env0_5.useEffect(function() {
var defaultImport = importDefault(dependencyMap[53]);
var VIEW_VOICE_CHANNEL = AnalyticEvents.VIEW_VOICE_CHANNEL;
defaultImport.track(VIEW_VOICE_CHANNEL, {guild_id: guildId, channel_id: channelId,
location_stack: analyticsLocations});
}, [channelId, guildId, defaultImport(VOICE_PANEL_PRE_JOIN).analyticsLocations]);
const jsxRuntimeEnv0_25Binding = jsxRuntimeEnv0_25;
const items2 = [((Component) => <Component hasMembers={members.length > 0} />)(env0_27)];
items2[1] = value3 ? ((Component) => <Component style={styles.optInChannelsContainer} channel={channel} analyticsSection={AnalyticsSections.CHANNEL} />)(importDefault(15467) /* metro dependency 15467: VoicePanelChannelOptInNotice */) : null;
items2[2] = activities.map(_fun118773);
let r6 = members.length > 0 || blockedMembers.size > 0;
r6 = (!r6 ? ignoredMembers.size > 0 : r6) && <RoomMembers members={members} streamingMembers={streamingMembers} blockedMembers={blockedMembers} ignoredMembers={ignoredMembers} />;
items2[3] = r6;
items2[4] = ((Component) => <Component channelId={channelId} />)(env0_31);
return (
<>
{items2}
</>
);
}
function VoicePanelPreJoinWrapper() { // fn#118774, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:12029, offset: 0x024ed2c8, size: 237 bytes, params: 1, frame: 23
const {channelId,
guildId} = env0_5.useContext(importDefault(11794) /* metro dependency 11794: VoicePanelStateContext */);
const value4 = (require(566) /* metro dependency 566: flux */).useStateFromStores([SortedVoiceStateStore,
VoiceChannelBlockedUserStore, EmbeddedActivitiesStore, ApplicationStreamingStore], _fun118775,
[(importDefault(15390) /* metro dependency 15390: useIsConnectedToVoiceChannel */)(channelId), channelId,
guildId],
(require(15512) /* metro dependency 15512: VoicePanelPreJoinUtils */).areVoicePanelPreJoinContentPropsEqual);
const TransitionItem = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionItem;
return <TransitionItem item={value4} renderItem={renderItem_118765} />;
}
function _fun118746() { // fn#118746, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:2588, offset: 0x024ebaa6, size: 118 bytes, params: 1, frame: 18
let value = environment.__proto__;
const defaultImport = importDefault(4796) /* metro dependency 4796: SelectedChannelActionCreators */;
defaultImport.selectVoiceChannel(channelId);
value = require(8913) /* metro dependency 8913: StreamActionCreators */;
const watchStream = value.watchStream;
const streamBinding = stream;
Reflect.apply(watchStream, value, [streamBinding, {forceMultiple: true}]);
const setFocusedBinding = setFocused;
value = require(4285) /* metro dependency 4285: StreamKeyUtils */;
setFocusedBinding(value.encodeStreamKey(streamBinding));
}
function ActivityInfoS(a0, a1) { // fn#118752, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:4301, owner: ActivityInfo.s, offset: 0x024ec02c, size: 83 bytes, params: 3, frame: 14
var value;
if (a0 !== a1) {
value = environment.__proto__;
(require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS(env0_5)(a0 - 2 * (EDGE_GUTTER + 16));
}
}
function _fun118753() { // fn#118753, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:4647, offset: 0x024ec07f, size: 80 bytes, params: 1, frame: 14
const defaultImport = importDefault(8106) /* metro dependency 8106: handlePressJoinActivity */;
const object2 = {};
object2.embeddedActivityJoinability = env0_6;
const env0_0 = env1_3(_fun118755);
object2.handleCanJoin = handleCanJoin_118756;
defaultImport(object2);
}
function _fun118759(a0) { // fn#118759, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:7307, offset: 0x024ec68d, size: 112 bytes, params: 2, frame: 18
var r0;
var r1;
var r2;
var item3;
var value3;
const iterator = a0[Symbol.iterator]();
const iterator2 = iterator.next;
let item2 = Reflect.apply(iterator2, iterator, []);
let item = item2.value;
item2 = item2.done ? undefined : iterator;
const value = undefined;
const value2 = item2 === value;
const r5 = value2 ? value : item;
if (value2) {
r0 = value;
r1 = item2;
r2 = value2;
} else {
item3 = Reflect.apply(iterator2, item2, []);
item = item3.value;
item3 = item3.done ? undefined : item2;
value3 = item3 === value;
if (value3) {
r0 = value;
r1 = item3;
r2 = value3;
} else {
r0 = item;
r1 = item3;
r2 = value3;
}
}
if (!r2) {
r1.return();
}
return (
<StreamPreview
channelId={channelId}
voiceState={r5}
stream={r0}
key={r0.ownerId}
/>
);
}
function RoomMembersOnPress() { // fn#118760, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:8219, owner: RoomMembers.onPress, offset: 0x024ec6fd, size: 27 bytes, params: 1, frame: 11
return env0_2(env0_1 + 20);
}
function PreJoinTransitionerO() { // fn#118762, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:10708, owner: PreJoinTransitioner.o, offset: 0x024ec90f, size: 463 bytes, params: 1, frame: 26
const windowDimensionsBinding = windowDimensions;
let get = windowDimensionsBinding.get;
const height = Reflect.apply(get, windowDimensionsBinding, []).height;
const object2 = {};
const value3 = height - (importDefault(11624) /* metro dependency 11624: roundToNearestPixel */)(0.8 * height);
const controlsSpecsBinding = controlsSpecs;
get = controlsSpecsBinding.get;
const value4 = value3 + Reflect.apply(get, controlsSpecsBinding, []).height;
const safeAreaBinding = safeArea;
get = safeAreaBinding.get;
object2.paddingBottom = value4 + Reflect.apply(get, safeAreaBinding, []).bottom;
const springModule = require(4577) /* metro dependency 4577: spring */;
let withSpring = springModule.withSpring;
const transitionStateBinding = transitionState;
const TransitionStates = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates;
const YEETED = TransitionStates.YEETED;
const value5 = 1;
object2.opacity = Reflect.apply(withSpring, springModule, [transitionStateBinding !== YEETED ? value5 : 0]);
const moduleValue2 = springModule;
withSpring = moduleValue2.withSpring;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const interpolate = reanimatedRexportModule.interpolate;
get = useReducedMotion.get;
const value8 = Reflect.apply(interpolate, reanimatedRexportModule, [Reflect.apply(get, useReducedMotion,
[]) ? 0 : transitionState === TransitionStates.YEETED ? value5 : 0, [0, 1], [0, 400]]);
const closure = oN;
const object4 = {};
object4.transitionState = transitionState;
object4.TransitionStates = TransitionStates;
object4.runOnJS = reanimatedRexportModule.runOnJS;
object4.transitionCleanUp = transitionCleanUp;
closure.__closure = object4;
closure.__workletHash = 2541522666097;
closure.__initData = env1_34;
object2.transform = [{translateY: Reflect.apply(withSpring, moduleValue2, [value8, MODE_CHANGE_PHYSICS,
'respect-motion-settings', closure])}];
return object2;
}
function _fun118769() { // fn#118769, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:8334, offset: 0x024ecf9f, size: 181 bytes, params: 1, frame: 17
var sessionId;
var r1;
var r0;
var value8;
var getSessionById;
let value = environment.__proto__;
const id = AuthenticationStore.getId();
const getVoiceStateForSession = VoiceStateStore.getVoiceStateForSession;
const getRemoteSessionId = GameConsoleStore.getRemoteSessionId;
const value3 = Reflect.apply(getVoiceStateForSession, VoiceStateStore, [id, Reflect.apply(getRemoteSessionId,
GameConsoleStore, [])]);
const value4 = undefined;
let r2 = value3 ?? value4;
const awaitingRemoteSessionInfo = GameConsoleStore.getAwaitingRemoteSessionInfo();
const value7 = (awaitingRemoteSessionInfo == null ? value4 : awaitingRemoteSessionInfo.channelId) === channelId;
if (value7) {
r0 = value7;
} else {
value8 = (r2 == null ? value4 : r2.channelId) === channelId;
if (value8) {
getSessionById = SessionsStore.getSessionById;
sessionId = r2 == null ? value4 : r2.sessionId;
value = '';
r2 = sessionId ?? value;
value = Reflect.apply(getSessionById, SessionsStore, [r2]) != null;
r1 = value;
} else {
r1 = value8;
}
r0 = r1;
}
return r0;
}
function _fun118773(a0) { // fn#118773, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:9250, offset: 0x024ed296, size: 50 bytes, params: 2, frame: 15
return (
<ActivityInfo
activity={a0}
analyticsLocations={analyticsLocations}
key={a0.launchId}
/>
);
}
function _fun118775() { // fn#118775, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:12176, offset: 0x024ed3b5, size: 262 bytes, params: 1, frame: 26
var r7;
var value10;
var voiceState;
var selfStream;
var getStreamForUser;
var user;
var id;
var value11;
var value12;
if (env0_2) {
return undefined;
}
const voiceStatesForChannelAlt = SortedVoiceStateStore.getVoiceStatesForChannelAlt(channelId, guildId ?? undefined);
const getBlockedUsersForVoiceChannel = VoiceChannelBlockedUserStore.getBlockedUsersForVoiceChannel;
channelIdBinding = channelId;
const value5 = Reflect.apply(getBlockedUsersForVoiceChannel, VoiceChannelBlockedUserStore, [channelIdBinding]);
const ignoredUsersForVoiceChannel = VoiceChannelBlockedUserStore.getIgnoredUsersForVoiceChannel(channelIdBinding);
const embeddedActivitiesForChannel = EmbeddedActivitiesStore.getEmbeddedActivitiesForChannel(channelIdBinding);
const items2 = [];
const value8 = _createForOfIteratorHelperLoose_118742(voiceStatesForChannelAlt);
const value9 = value8();
let done = value9.done;
if (!done) {
r7 = value9;
while (true) {
value10 = r7.value;
voiceState = value10.voiceState;
selfStream = voiceState.selfStream;
if (selfStream) {
getStreamForUser = ApplicationStreamingStore.getStreamForUser;
user = value10.user;
id = user.id;
value11 = Reflect.apply(getStreamForUser, ApplicationStreamingStore, [id, guildId]);
if (value11 == null) {
break;
}
items2.push([value10, value11]);
break;
}
value12 = value8();
done = value12.done;
if (done) {
break;
}
r7 = value12;
continue;
}
}
return {members: voiceStatesForChannelAlt, activities: embeddedActivitiesForChannel, streamingMembers: items2,
blockedMembers: value5, ignoredMembers: ignoredUsersForVoiceChannel};
}
function* _fun118755() { // fn#118755, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:4718, offset: 0x024ec0da, size: 181 bytes, params: 1, frame: 15
var value5;
var value6;
if (true) {
value = environment.__proto__.__proto__;
if (GameConsoleStore) {
if (dependencyMap == null) {
return undefined;
}
value5 = environment.__proto__.__proto__.__proto__;
value6 = env3_0(env3_2[38]);
yield value6.maybeJoinEmbeddedActivity({channelId: env2_3, applicationId: dependencyMap.id,
launchId: require.launchId, inputApplication: dependencyMap, analyticsLocations: importDefault});
if (false) {
return undefined;
}
} else {
env3_1(env3_2[24]).selectVoiceChannel(env2_3);
}
}
}
function oN() { // fn#118763, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15708:11045, owner: PreJoinTransitioner.o.n, offset: 0x024ecade, size: 109 bytes, params: 1, frame: 14
var transitionStateBinding;
var runOnJS;
var value2;
let value = a0;
let r1 = value !== undefined ? value : false;
if (r1) {
value = environment.__proto__;
transitionStateBinding = transitionState;
value = environment.__proto__.__proto__;
value = transitionStateBinding === (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates.YEETED;
r1 = value;
}
if (r1) {
value = environment.__proto__.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
runOnJS = value.runOnJS;
value2 = environment.__proto__;
Reflect.apply(runOnJS, value, [transitionCleanUp])();
}
}
@@ -0,0 +1,172 @@
/* Metro module 15512; source: modules/voice_panel/native/prejoin/VoicePanelPreJoinUtils.tsx; dependencies: [628, 2] */
function _fun118776(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118776, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15709:6, offset: 0x024ed4bb, size: 121 bytes, params: 8, frame: 17
const _arrayLikeToArray_118779 = 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});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/prejoin/VoicePanelPreJoinUtils.tsx');
exports.areVoicePanelPreJoinContentPropsEqual = areVoicePanelPreJoinContentPropsEqual;
}
function _createForOfIteratorHelperLoose_118777(a0, a1) { // fn#118777, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15709:46, offset: 0x024ed534, 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 _fun118778;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_118779(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_118779(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_118779(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun118778;
}
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 areVoicePanelPreJoinContentPropsEqual(a0, a1) { // fn#118780, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15709:1143, offset: 0x024ed6a8, size: 186 bytes, params: 3, frame: 23
var r3;
var r4;
var _createForOfIteratorHelperLoose_118777Binding;
var streamingMembers;
var value3;
var done;
var value4;
var property;
var property2;
var property3;
var value5;
var value6;
if (a0 == null) {
return a0 === a1;
}
if (a1 == null) {
return a0 === a1;
}
var value;
const value2 = 0;
if (importDefault(dependencyMap[value2])(a0, a1, ['streamingMembers'])) {
_createForOfIteratorHelperLoose_118777Binding = _createForOfIteratorHelperLoose_118777;
streamingMembers = a0.streamingMembers;
value = _createForOfIteratorHelperLoose_118777Binding(streamingMembers);
value3 = value();
done = value3.done;
if (done) {
return true;
}
r3 = value2;
r4 = value3;
loopExit5: while (true) {
value4 = r4.value;
streamingMembers = a1.streamingMembers;
property = streamingMembers[r3];
if (property == null) {
return false;
}
property2 = value4[value2];
if (property2 !== property[value2]) {
break loopExit5;
}
property3 = value4[1];
if (property3 !== property[1]) {
break loopExit5;
}
value5 = typeof r3 === 'bigint' ? r3 + 1n : +r3 + 1;
value6 = value();
done = value6.done;
if (done) {
return true;
}
r3 = value5;
r4 = value6;
continue;
}
}
return false;
}
@@ -0,0 +1,51 @@
/* Metro module 15536; source: modules/voice_panel/native/shared/CircleWithCutout.tsx; dependencies: [31, 27, 33, 7743, 7744, 2] */
function _fun118941(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118941, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15733:6, offset: 0x024f5bab, size: 233 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 PixelRatio = (require(27) /* metro dependency 27 */).PixelRatio;
const value2 = require(33) /* metro dependency 33 */;
const env0_3 = value2.jsx;
const env0_4 = value2.jsxs;
const env0_5 = PixelRatio.get();
value = value.memo(CircleWithCutout_118942);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/shared/CircleWithCutout.tsx');
exports.default = value;
const getBadgeLeft = (require(7743) /* metro dependency 7743: CircleWithCutoutUtils */).getBadgeLeft;
exports.getBadgeLeft = getBadgeLeft;
const getBadgeTop = (require(7743) /* metro dependency 7743: CircleWithCutoutUtils */).getBadgeTop;
exports.getBadgeTop = getBadgeTop;
}
function CircleWithCutout_118942({fill, circleRadius, cutoutRadius, enableCutout, cutoutPositionInDegrees, alignBadgeEdgeWithCircleEdge, badgeRadius, scaleToPixelDensity}) { // fn#118942, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15733:178, offset: 0x024f5c94, size: 507 bytes, params: 2, frame: 32
var r20;
var r21;
var value13;
alignBadgeEdgeWithCircleEdge = !(alignBadgeEdgeWithCircleEdge === undefined) && alignBadgeEdgeWithCircleEdge;
scaleToPixelDensity = scaleToPixelDensity === undefined || scaleToPixelDensity;
const r18 = scaleToPixelDensity ? env0_5 : 1;
const value6 = circleRadius * r18;
const r0 = badgeRadius != null ? badgeRadius * r18 : undefined;
const value8 = 2 * value6;
if (alignBadgeEdgeWithCircleEdge && r0 != null) {
value13 = 2 * value6 - r0;
r20 = r0;
r21 = value13;
} else {
r20 = (require(7743) /* metro dependency 7743: CircleWithCutoutUtils */).getCutoutCenterY(value6,
cutoutPositionInDegrees);
r21 = (require(7743) /* metro dependency 7743: CircleWithCutoutUtils */).getCutoutCenterX(value6,
cutoutPositionInDegrees);
}
const defaultImport = importDefault(7744) /* metro dependency 7744 */;
const object = {};
object.transform = [{scale: 1 / r18}];
const Defs = (require(7744) /* metro dependency 7744 */).Defs;
const Mask = (require(7744) /* metro dependency 7744 */).Mask;
const Rect = (require(7744) /* metro dependency 7744 */).Rect;
const rect = <Rect width={value8} height={value8} fill="white" />;
const Circle = (require(7744) /* metro dependency 7744 */).Circle;
return ((Component) => <Component height={value8} width={value8} style={object}><Defs><Mask id="mask">{rect}<Circle cx={r21} cy={r20} r={cutoutRadius * r18} fill="black" /></Mask></Defs><Circle cx={value6} cy={value6} r={value6} fill={fill} mask={enableCutout ? 'url(#mask)' : undefined} /></Component>)(defaultImport);
}
@@ -0,0 +1,55 @@
/* Metro module 7743; source: modules/voice_panel/native/shared/CircleWithCutoutUtils.tsx; dependencies: [31, 33, 7744, 2] */
function _fun61971(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#61971, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7921:6, offset: 0x01b509b4, size: 220 bytes, params: 8, frame: 21
const env0_0 = require;
const closure = getCutoutCenterX;
const closure2 = getCutoutCenterY;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
importAll(31) /* metro dependency 31 */;
const value = require(33) /* metro dependency 33 */;
const env0_3 = value.jsx;
const env0_4 = value.jsxs;
const Math = global.Math;
const PI = Math.PI;
const env0_5 = PI / 180;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/shared/CircleWithCutoutUtils.tsx');
exports.default = CircleWithCutout;
exports.getBadgeTop = getBadgeTop;
exports.getBadgeLeft = getBadgeLeft;
exports.getCutoutCenterX = closure;
exports.getCutoutCenterY = closure2;
}
function getCutoutCenterX(a0, a1) { // fn#61972, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7921:145, offset: 0x01b50a90, size: 46 bytes, params: 3, frame: 13
const Math = global.Math;
return a0 + a0 * Math.sin(a1 * env0_5);
}
function getCutoutCenterY(a0, a1) { // fn#61973, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7921:201, offset: 0x01b50abe, size: 46 bytes, params: 3, frame: 13
const Math = global.Math;
return a0 - a0 * Math.cos(a1 * env0_5);
}
function CircleWithCutout({circleRadius, cutoutRadius, enableCutout, cutoutPositionInDegrees, circleFillColor}) { // fn#61974, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7921:360, offset: 0x01b50aec, size: 346 bytes, params: 2, frame: 31
let value = 2 * circleRadius;
const cutoutCenterX = getCutoutCenterX(circleRadius, cutoutPositionInDegrees);
const cutoutCenterY = getCutoutCenterY(circleRadius, cutoutPositionInDegrees);
const defaultImport = importDefault(7744) /* metro dependency 7744 */;
const object2 = {height: value, width: value};
const Defs = (require(7744) /* metro dependency 7744 */).Defs;
const Mask = (require(7744) /* metro dependency 7744 */).Mask;
const Rect = (require(7744) /* metro dependency 7744 */).Rect;
value = <Rect width={value} height={value} fill="white" />;
const Circle = (require(7744) /* metro dependency 7744 */).Circle;
value = <Defs><Mask id="mask">{value}<Circle cx={cutoutCenterX} cy={cutoutCenterY} r={cutoutRadius} fill="black" /></Mask></Defs>;
return ((Component) => <Component {...object2}>{value}<Circle cx={circleRadius} cy={circleRadius} r={circleRadius} fill={circleFillColor} mask={enableCutout ? 'url(#mask)' : undefined} /></Component>)(defaultImport);
}
function getBadgeTop(a0, a1, a2) { // fn#61975, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7921:828, offset: 0x01b50c46, size: 30 bytes, params: 4, frame: 13
return getCutoutCenterY(a1, a2) - a0;
}
function getBadgeLeft(a0, a1, a2) { // fn#61976, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7921:903, offset: 0x01b50c64, size: 30 bytes, params: 4, frame: 13
return getCutoutCenterX(a1, a2) - a0;
}
@@ -0,0 +1,151 @@
/* Metro module 9243; source: modules/voice_panel/native/shared/FormComponents.tsx; dependencies: [31, 4396, 33, 4501, 697, 6821, 6231, 9244, 1305, 6771, 9245, 9256, 8917, 4635, 8699, 8743, 566, 7128, 4573, 1244, 6238, 4578, 8916, 3995, 9299, 9322, 2] */
function _fun72268(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72268, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9428:6, offset: 0x01d406fc, size: 400 bytes, params: 8, frame: 22
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const presenceStore = importDefault(4396) /* metro dependency 4396: PresenceStore */;
let 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;
object2 = {};
object2.container = {marginHorizontal: 16};
object2.voiceBadgesContainer = {flexDirection: 'row'};
const object3 = {'marginLeft': 8, 'padding': 6};
const MOBILE_VOICE_PANEL_BADGE_BACKGROUND = (importDefault(697) /* metro dependency 697: native */).colors.MOBILE_VOICE_PANEL_BADGE_BACKGROUND;
object3.backgroundColor = MOBILE_VOICE_PANEL_BADGE_BACKGROUND;
object3.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object2.iconWrapper = object3;
const INTERACTIVE_TEXT_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.INTERACTIVE_TEXT_DEFAULT;
object2.icon = {'width': 16, 'height': 16, tintColor: INTERACTIVE_TEXT_DEFAULT};
object2.notConnectedAvatar = {opacity: 0.5};
object2.memberRow = {'flexDirection': 'row', 'alignItems': 'center', 'gap': 4};
const env0_7 = Reflect.apply(createStyles, value, [object2]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_panel/native/shared/FormComponents.tsx');
exports.VoicePanelFormSection = VoicePanelFormSection;
exports.MemberRowItem = MemberRowItem;
}
function VoiceBadges({muteDeafenIconState, videoIconState}) { // fn#72269, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9428:547, offset: 0x01d4088c, size: 344 bytes, params: 2, frame: 28
const styles = useStyles();
return ((Component) => <Component style={styles.voiceBadgesContainer}>{muteDeafenIconState != null ? ((Component) => <Component style={styles.iconWrapper}>{((MuteDeafenIcon) => <MuteDeafenIcon state={muteDeafenIconState} size={(require(1305) /* metro dependency 1305: native */).IconSizes.SMALL} style={styles.icon} />)((require(9244) /* metro dependency 9244: VoiceStateIcons */).MuteDeafenIcon)}</Component>)(importDefault(6821) /* metro dependency 6821: NativeView */) : null}{videoIconState != null ? ((Component) => <Component style={styles.iconWrapper}>{((VideoIcon) => <VideoIcon state={videoIconState} size={(require(1305) /* metro dependency 1305: native */).IconSizes.SMALL} style={styles.icon} />)((require(9244) /* metro dependency 9244: VoiceStateIcons */).VideoIcon)}</Component>)(importDefault(6821) /* metro dependency 6821: NativeView */) : null}</Component>)(importDefault(6821) /* metro dependency 6821: NativeView */);
}
function VoicePanelFormSection(a0) { // fn#72270, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9428:1052, offset: 0x01d409e4, size: 144 bytes, params: 2, frame: 20
const style = a0.style;
const value = Object.create(null);
value.style = 0;
const value2 = copyDataProperties({}, a0, value, undefined);
const styles = useStyles();
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const items2 = [styles.container, style];
const TableRowGroup = (require(6231) /* metro dependency 6231: TableRowGroupNative */).TableRowGroup;
return (
<NativeView style={items2}>
<TableRowGroup {...value2} />
</NativeView>
);
}
function MemberRowItem({user, channelId, selfStream, nick, guildId, notConnected, showRing, showSecureFramesUI}) { // fn#72271, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9428:1209, offset: 0x01d40a74, size: 1026 bytes, params: 2, frame: 35
var object2;
var r4;
var Button;
var intl;
selfStream = !(selfStream === undefined) && selfStream;
notConnected = !(notConnected === undefined) && notConnected;
showSecureFramesUI = !(showSecureFramesUI === undefined) && showSecureFramesUI;
const styles = useStyles();
const analyticsLocations = (importDefault(6771) /* metro dependency 6771: useAnalyticsLocations */)().analyticsLocations;
const env0_3 = analyticsLocations;
const voiceStateIconUtilsModule = require(9245) /* metro dependency 9245: VoiceStateIconUtils */;
const useMuteDeafenIconState = voiceStateIconUtilsModule.useMuteDeafenIconState;
let id = user.id;
const value6 = Reflect.apply(useMuteDeafenIconState, voiceStateIconUtilsModule, [id, guildId]);
const value7 = voiceStateIconUtilsModule.useVideoIconState(user.id, guildId);
id = user.id;
const value8 = (require(9256) /* metro dependency 9256: useIsSecureFramesVerified */).useIsUserSecureFramesVerified({userId: id,
channelId: channelId});
const value9 = (require(8917) /* metro dependency 8917: useCanRing */).useCanRing(user, 'MemberRowItem');
const value11 = (require(8699) /* metro dependency 8699: useDisplayNameStylesFont */).useDisplayNameStylesFont({displayNameStyles: (importDefault(4635) /* metro dependency 4635: useDisplayNameStyles */)({userId: user.id,
guildId: guildId})});
const binding = env0_3;
const value12 = binding.useCallback(_fun72272, [id, channelId, analyticsLocations]);
const value13 = binding.useMemo(_fun72274,
[(require(566) /* metro dependency 566: flux */).useStateFromStores([PresenceStore], function() {
return require(dependencyMap[17]).getStreamerActivityByUserId(id, PresenceStore);
}), selfStream]);
const TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
object2 = {onPress: value12};
const Avatar = (require(1305) /* metro dependency 1305: native */).Avatar;
const AvatarSizes = (require(1305) /* metro dependency 1305: native */).AvatarSizes;
const REFRESH_MEDIUM_32 = AvatarSizes.REFRESH_MEDIUM_32;
object2.icon = <Avatar user={user} guildId={guildId} size={REFRESH_MEDIUM_32} style={notConnected ? styles.notConnectedAvatar : undefined} />;
object2.subLabel = value13;
if (showRing) {
if (value9) {
Button = (require(4578) /* metro dependency 4578: ButtonNative */).Button;
var buttonProps = {'size': 'sm', 'variant': 'secondary', onPress: onPress_72275};
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
buttonProps.text = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.bHa9kN);
r4 = <Button {...buttonProps} />;
} else {
r4 = value6 != null || value7 != null ? <VoiceBadges muteDeafenIconState={value6} videoIconState={value7} /> : undefined;
}
} else {
r4 = value6 != null || value7 != null ? <VoiceBadges muteDeafenIconState={value6} videoIconState={value7} /> : undefined;
}
object2.trailing = r4;
const r15 = nick ?? (require(3995) /* metro dependency 3995: UserUtils */).getName(user);
const NativeView = importDefault(6821) /* metro dependency 6821: NativeView */;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const items2 = [<Text variant="text-md/semibold" color={notConnected ? 'text-muted' : 'text-default'} style={value11 != null && ({fontFamily: value11})}>{r15}</Text>];
items2[1] = ((Component) => <Component userId={user.id} />)(importDefault(9299) /* metro dependency 9299: GuildTag */);
items2[2] = showSecureFramesUI && value8 ? ((ShieldLockIcon) => <ShieldLockIcon size="xs" style={styles.icon} />)((require(9322) /* metro dependency 9322: ShieldLockIcon */).ShieldLockIcon) : null;
object2.label = <NativeView style={styles.memberRow}>{items2}</NativeView>;
return <TableRow {...object2} />;
}
function _fun72272() { // fn#72272, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9428:1687, offset: 0x01d40e76, size: 69 bytes, params: 1, frame: 13
const value = environment.__proto__;
(importDefault(8743) /* metro dependency 8743: showUserProfileActionSheet */)({userId: id, channelId: channelId,
isVoiceContext: true, sourceAnalyticsLocations: analyticsLocations});
}
function _fun72274() { // fn#72274, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9428:1877, offset: 0x01d40eed, size: 260 bytes, params: 1, frame: 22
var r1;
var r0;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
var value3;
var value;
const selfStreamBinding = selfStream;
const value2 = null;
if (selfStreamBinding) {
if (value2 != streamerActivityByUserId) {
value3 = environment.__proto__;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
r1 = <Text variant="text-xs/medium" color="text-muted" lineClamp={1}>{intl.format((require(1244) /* metro dependency 1244: indexNative */).t['0wJXSh'],
{name: value2 == streamerActivityByUserId.details ? streamerActivityByUserId.name : streamerActivityByUserId.details !== '' ? streamerActivityByUserId.details : streamerActivityByUserId.name})}</Text>;
} else {
value = environment.__proto__;
value = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.eXan7B);
r1 = value;
}
r0 = r1;
} else {
r0 = value2;
}
return r0;
}
function MemberRowItemOnPress() { // fn#72275, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9428:2368, owner: MemberRowItem.onPress, offset: 0x01d40ff1, size: 70 bytes, params: 1, frame: 15
let value = environment.__proto__;
value = importDefault(8916) /* metro dependency 8916: CallActionCreators */;
return value.ring(channelId, [user.id], 'voice_panel_floating_cta');
}
Loaded 100 of 16065 files, more files were not shown because too many files have changed in this diff. Show more