Files
discord-decomp/sources/modules/media_keyboard/native/MediaKeyboardUtils.tsx
T
2026-07-27 16:20:00 +03:00

882 lines
41 KiB
TypeScript

/* Metro module 11095; source: modules/media_keyboard/native/MediaKeyboardUtils.tsx; dependencies: [5, 1312, 1379, 4645, 1934, 4644, 1580, 661, 4661, 4650, 7879, 4658, 4651, 4662, 683, 4673, 4660, 477, 4092, 11096, 1239, 10381, 4570, 11120, 11121, 22, 2] */
function _fun84949(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#84949, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:6, offset: 0x01f5e24c, size: 621 bytes, params: 8, frame: 27
const env0_0 = require;
const _arrayLikeToArray_84952 = 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 = addImagesFromPicker;
const closure2 = handleCameraDialog;
const closure3 = handleViewAllDialog;
const closure4 = function() {
return _handleLimitedPickerDialog.apply(this, arguments);
};
const closure5 = function() {
return _handleAttachFile.apply(this, arguments);
};
const closure6 = mediaNodeToUploadItem;
const closure7 = handleSelectKeyboardItem;
const closure8 = function(a0) {
if (MediaKeyboardTarget.CHAT === a0) {
return DraftType.ChannelMessage;
}
if (MediaKeyboardTarget.COMMAND === a0) {
return DraftType.SlashCommand;
}
if (MediaKeyboardTarget.APP_LAUNCHER === a0) {
return DraftType.ApplicationLauncherCommand;
}
if (MediaKeyboardTarget.INTERACTION_MODAL === a0) {
return DraftType.InteractionModal;
}
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(5) /* metro dependency 5 */;
const unsyncedUserSettingsStore = importDefault(1312) /* metro dependency 1312: UnsyncedUserSettingsStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const env0_6 = (require(4645) /* metro dependency 4645: DraftStore */).DraftType;
const selectedChannelStore = importDefault(1934) /* metro dependency 1934: SelectedChannelStore */;
const uploadAttachmentStore = importDefault(4644) /* metro dependency 4644: UploadAttachmentStore */;
let value = require(1580) /* metro dependency 1580: MediaKeyboardConstants */;
const env0_9 = value.MediaKeyboardTarget;
const env0_10 = value.InAppCameraUsedViews;
value = require(661) /* metro dependency 661: Constants */;
const env0_11 = value.AnalyticEvents;
const env0_12 = value.AnalyticsObjects;
const env0_13 = value.AnalyticsObjectTypes;
const env0_14 = value.AnalyticsPages;
const env0_15 = value.AnalyticsSections;
const env0_16 = value.ChatInputComponentViewedTypes;
const env0_17 = value.ComponentActions;
const env0_18 = value.MAX_UPLOAD_COUNT;
const env0_19 = (require(4661) /* metro dependency 4661: NativePermissionConstants */).NativePermissionTypes;
object = {code: 'function animatedIndexThreshold_MediaKeyboardUtilsTsx1(animatedSnapPoints,thresholdPercent){return animatedSnapPoints.get().length===1?thresholdPercent-1:thresholdPercent*(animatedSnapPoints.get().length-1);}'};
value = _fun84984();
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/media_keyboard/native/MediaKeyboardUtils.tsx');
exports.addImagesFromPicker = closure;
exports.addAttachmentForCommand = addAttachmentForCommand;
exports.handleCameraDialog = closure2;
exports.handleViewAllDialog = closure3;
exports.handleLimitedPickerDialog = closure4;
exports.handleSelectGift = handleSelectGift;
exports.handleSelectThread = handleSelectThread;
exports.handleAttachFile = closure5;
exports.mediaNodeToUploadItem = closure6;
exports.cropResultToUploadItem = cropResultToUploadItem;
exports.handleSelectKeyboardItem = closure7;
exports.showSimpleMediaKeyboard = showSimpleMediaKeyboard;
exports.animatedIndexThreshold = value;
exports.getMediaKeyboardDraftType = closure8;
}
function _createForOfIteratorHelperLoose_84950(a0, a1) { // fn#84950, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:457, offset: 0x01f5e4b9, 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 _fun84951;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_84952(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_84952(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_84952(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun84951;
}
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 addImagesFromPicker(a0, a1, a2) { // fn#84953, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:1367, offset: 0x01f5e62d, size: 212 bytes, params: 4, frame: 17
const env0_0 = a0;
const env0_1 = a2;
const UploadOrigin = (require(4650) /* metro dependency 4650: Upload */).UploadOrigin;
const FILE_ATTACHMENT = UploadOrigin.FILE_ATTACHMENT;
if (a2 !== FILE_ATTACHMENT) {
(importDefault(7879) /* metro dependency 7879: UploadAttachmentActionCreators */).addFiles({files: a1.filter(_fun84954).map(function(a0) {
var r2;
var object = {};
copyDataProperties(object, a0, r2);
object['origin'] = importDefault;
return object;
}), channelId: a0, draftType: DraftType.ChannelMessage});
} else {
(importDefault(7879) /* metro dependency 7879: UploadAttachmentActionCreators */).addFiles({files: a1,
channelId: a0, draftType: DraftType.ChannelMessage});
}
}
function handleCameraDialog({channel, previewType, onDismissKeyboard, onRestoreKeyboard, onSelectFiles}) { // fn#84957, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:1753, offset: 0x01f5e7b4, size: 121 bytes, params: 2, frame: 13
const defaultImport = importDefault(4662) /* metro dependency 4662: NativePermissionUtils */;
const requestPermission = defaultImport.requestPermission;
const CAMERA = NativePermissionTypes.CAMERA;
Reflect.apply(requestPermission, defaultImport, [CAMERA]).then(_fun84958);
}
function handleViewAllDialog({channel, draftType, uploadLimit, includedUploadIds, onDismissKeyboard, onRestoreKeyboard, onSelectFiles}) { // fn#84960, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:2949, offset: 0x01f5eb38, size: 231 bytes, params: 2, frame: 14
var r3;
var defaultImport;
const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */;
if (platformUtilsModule.isIOS()) {
if ((require(4092) /* metro dependency 4092: DeviceUtils */).getSystemVersionMajor() >= 14) {
r3 = global.Promise.resolve(true);
} else {
defaultImport = importDefault(4662) /* metro dependency 4662: NativePermissionUtils */;
r3 = defaultImport.requestPermission(NativePermissionTypes.PHOTOS);
}
} else {
defaultImport = importDefault(4662) /* metro dependency 4662: NativePermissionUtils */;
r3 = defaultImport.requestPermission(NativePermissionTypes.PHOTOS);
}
r3.then(_fun84961);
}
function _handleLimitedPickerDialog() { // fn#84969, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:4394, offset: 0x01f5f020, size: 50 bytes, params: 1, frame: 14
return env0_3(_fun84971).apply(this, arguments);
}
function _handleAttachFile() { // fn#84973, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:4677, offset: 0x01f5f0c7, size: 50 bytes, params: 1, frame: 14
return env0_3(_fun84975).apply(this, arguments);
}
function mediaNodeToUploadItem(a0, a1) { // fn#84980, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:5625, offset: 0x01f5f3b3, size: 213 bytes, params: 3, frame: 18
const image = a0.node.image;
const object2 = {};
object2.id = a0.node.id ?? image.uri;
const UploadOrigin = (require(4650) /* metro dependency 4650: Upload */).UploadOrigin;
const IMAGE_PICKER = UploadOrigin.IMAGE_PICKER;
object2.origin = IMAGE_PICKER;
object2.uri = image.uri;
object2.originalUri = image.uri;
object2.mimeType = image.mimeType;
object2.width = image.width;
object2.height = image.height;
const filename = image.filename;
object2.filename = filename;
object2.playableDuration = image.playableDuration;
const UploadPlatform = (require(4650) /* metro dependency 4650: Upload */).UploadPlatform;
const REACT_NATIVE = UploadPlatform.REACT_NATIVE;
object2.platform = REACT_NATIVE;
copyDataProperties(object2, a1 != null && ({createdUsingInAppCamera: a1}), filename);
return object2;
}
function handleSelectKeyboardItem(a0, a1, a2, a3) { // fn#84981, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:5983, offset: 0x01f5f488, size: 201 bytes, params: 5, frame: 20
var defaultImport;
var addFile;
var object2;
var upload;
var defaultImport2;
const env0_0 = a1.node.image;
if (a2) {
upload = UploadAttachmentStore.findUpload(a0, DraftType.ChannelMessage, _fun84982);
if (upload != null) {
defaultImport2 = importDefault(7879) /* metro dependency 7879: UploadAttachmentActionCreators */;
defaultImport2.remove(a0, upload.id, DraftType.ChannelMessage);
}
} else {
defaultImport = importDefault(7879) /* metro dependency 7879: UploadAttachmentActionCreators */;
addFile = defaultImport.addFile;
object2 = {channelId: a0};
object2.file = mediaNodeToUploadItem(a1, a3);
object2.draftType = DraftType.ChannelMessage;
Reflect.apply(addFile, defaultImport, [object2]);
}
}
function _fun84984() { // fn#84984, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:6503, offset: 0x01f5f5f4, size: 48 bytes, params: 1, frame: 2
const closure = function(a0, a1) {
return a0.get().length === 1 ? a1 - 1 : a1 * (a0.get().length - 1);
};
closure.__closure = {};
closure.__workletHash = 97398083076;
closure.__initData = env0_20;
return closure;
}
function addAttachmentForCommand(a0, a1, a2, a3, a4) { // fn#84986, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:7148, offset: 0x01f5f65d, size: 322 bytes, params: 6, frame: 23
var r13;
var applicationCommandManager;
var value3;
const option = a3.option;
const uploadUtilsModule = require(4651) /* metro dependency 4651: UploadUtils */;
const getFile = uploadUtilsModule.getFile;
let filename = a2.filename;
filename = Reflect.apply(getFile, uploadUtilsModule, [{uri: a2.uri, overrideFilename: filename,
overrideType: a2.mimeType}]).filename;
const target = a3.target;
const COMMAND = MediaKeyboardTarget.COMMAND;
if (target === COMMAND) {
applicationCommandManager = a1.current.getApplicationCommandManager();
if (applicationCommandManager != null) {
value3 = false;
applicationCommandManager.insertOrJumpCommandOption(option, undefined, value3, {displayText: filename,
preferred: true});
r13 = value3;
}
}
const mediaKeyboardDraftType = getMediaKeyboardDraftType(a3.target);
let value = importDefault(7879) /* metro dependency 7879: UploadAttachmentActionCreators */;
value.remove(a0, a3.option.name, mediaKeyboardDraftType);
value = importDefault(7879) /* metro dependency 7879: UploadAttachmentActionCreators */;
const addFile = value.addFile;
const object = {};
copyDataProperties(object, a2, r13);
object['origin'] = a4;
object['id'] = option.name;
object['filename'] = filename;
Reflect.apply(addFile, value, [{channelId: a0, file: object, draftType: mediaKeyboardDraftType,
allowOptimization: false}]);
}
function handleSelectGift(a0, {current}, a2) { // fn#84987, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:7793, offset: 0x01f5f79f, size: 431 bytes, params: 4, frame: 22
const env0_0 = a2;
const channelId = SelectedChannelStore.getChannelId();
current.closeCustomKeyboard();
const channel = ChannelStore.getChannel(channelId);
const ComponentDispatch = (require(1239) /* metro dependency 1239: ComponentDispatchUtils */).ComponentDispatch;
const dispatch = ComponentDispatch.dispatch;
const MEDIA_KEYBOARD_GIFT_SELECTED = ComponentActions.MEDIA_KEYBOARD_GIFT_SELECTED;
Reflect.apply(dispatch, ComponentDispatch, [MEDIA_KEYBOARD_GIFT_SELECTED]);
const object2 = {};
const CHANNEL_TEXT_AREA = AnalyticsSections.CHANNEL_TEXT_AREA;
object2.section = CHANNEL_TEXT_AREA;
const BUTTON_ICON = AnalyticsObjects.BUTTON_ICON;
object2.object = BUTTON_ICON;
const GIFT = AnalyticsObjectTypes.GIFT;
object2.objectType = GIFT;
object2.page = channel?.guild_id != null ? AnalyticsPages.GUILD_CHANNEL : AnalyticsPages.DM_CHANNEL;
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const CHAT_INPUT_COMPONENT_VIEWED = AnalyticEvents.CHAT_INPUT_COMPONENT_VIEWED;
const NITRO_GIFTING = ChatInputComponentViewedTypes.NITRO_GIFTING;
Reflect.apply(track, defaultImport, [CHAT_INPUT_COMPONENT_VIEWED, {type: NITRO_GIFTING, channel_id: channel?.id,
guild_id: channel?.guild_id}]);
const openGiftModalModule = require(10381) /* metro dependency 10381: openGiftModal */;
openGiftModalModule.openGiftModal({recipientUserId: channel != null && channel.isDM() ? channel.getRecipientId() : undefined,
analyticsLocation: object2, analyticsLocations: a0, navigationParams: {presentation: 'card'},
onDismiss: a2?.current != null ? _fun84988 : undefined});
}
function handleSelectThread(a0, a1) { // fn#84989, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:8512, offset: 0x01f5f981, size: 204 bytes, params: 3, frame: 20
var moduleValue;
const value2 = undefined;
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const CHAT_INPUT_COMPONENT_VIEWED = AnalyticEvents.CHAT_INPUT_COMPONENT_VIEWED;
const START_THREAD = ChatInputComponentViewedTypes.START_THREAD;
Reflect.apply(track, defaultImport, [CHAT_INPUT_COMPONENT_VIEWED, {type: START_THREAD, channel_id: a0.id,
guild_id: a0 == null ? value2 : a0.guild_id}]);
if (a0 != null) {
a1.current.openSystemKeyboard();
moduleValue = require(477) /* metro dependency 477: PlatformUtils */;
if (moduleValue.isIOS()) {
a1.current.blur();
}
(require(11120) /* metro dependency 11120: navigateToThreadCreation */).navigateToThreadCreation(a0,
'Plus Button');
}
return value2;
}
function cropResultToUploadItem(a0) { // fn#84990, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:8905, offset: 0x01f5fa4d, size: 214 bytes, params: 2, frame: 18
let path = a0.path;
let value = path.startsWith('file://');
path = a0.path;
const r6 = value ? path : 'file://' + path;
value = a0.path.split('/');
value = value.pop();
const object2 = {};
const defaultImport = importDefault(22) /* metro dependency 22 */;
object2.id = defaultImport.uniqueId(a0.path);
object2.uri = r6;
object2.originalUri = r6;
object2.mimeType = a0.mime;
object2.width = a0.width;
object2.height = a0.height;
object2.filename = value;
const UploadPlatform = (require(4650) /* metro dependency 4650: Upload */).UploadPlatform;
const REACT_NATIVE = UploadPlatform.REACT_NATIVE;
object2.platform = REACT_NATIVE;
return object2;
}
function showSimpleMediaKeyboard(a0) { // fn#84991, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:9268, offset: 0x01f5fb23, size: 221 bytes, params: 2, frame: 19
var object2;
const env0_0 = a0;
const getMediaKeyboardDraftTypeBinding = getMediaKeyboardDraftType;
const CHAT = MediaKeyboardTarget.CHAT;
const mediaKeyboardDraftTypeBinding = getMediaKeyboardDraftTypeBinding(({target: CHAT}).target);
const onAttachFileParams = function(a0) {
return {channel: a0, uploadLimit: MAX_UPLOAD_COUNT, onDismissKeyboard: _fun84993, onRestoreKeyboard: _fun84994,
onSelectFiles: _fun84995};
};
const showMediaKeyboardActionSheetModule = require(11096) /* metro dependency 11096: showMediaKeyboardActionSheet */;
const showMediaKeyboardActionSheet = showMediaKeyboardActionSheetModule.showMediaKeyboardActionSheet;
object2 = {channel: a0, draftType: mediaKeyboardDraftTypeBinding};
object2.uploadLimit = MAX_UPLOAD_COUNT;
object2.disableWhenReachedLimit = true;
object2.onAttachPress = function() {
var handleAttachFileBinding = handleAttachFile;
var object = {};
copyDataProperties(object, onAttachFileParams(require(dependencyMap[9]).UploadOrigin.FILE_ATTACHMENT), require);
handleAttachFileBinding(object);
};
object2.onPressCamera = function(a0) {
var handleCameraDialogBinding = handleCameraDialog;
var object = {};
copyDataProperties(object, onAttachFileParams(require(dependencyMap[9]).UploadOrigin.IMAGE_PICKER), require);
object['previewType'] = a0;
handleCameraDialogBinding(object);
};
object2.onPressItem = function({channelId, item, isIncluded}) {
require(dependencyMap[19]).hideMediaKeyboardActionSheet();
handleSelectKeyboardItem(channelId, item, isIncluded);
};
object2.onViewAll = onViewAll;
object2.onManageLimited = function() {
var handleLimitedPickerDialogBinding = handleLimitedPickerDialog;
var object = {};
object.onDismissKeyboard = require(dependencyMap[19]).hideMediaKeyboardActionSheet;
object.onRestoreKeyboard = _fun85001;
handleLimitedPickerDialogBinding(object);
};
const hideMediaKeyboardActionSheet = showMediaKeyboardActionSheetModule.hideMediaKeyboardActionSheet;
object2.onClose = hideMediaKeyboardActionSheet;
object2.onBack = hideMediaKeyboardActionSheet;
Reflect.apply(showMediaKeyboardActionSheet, showMediaKeyboardActionSheetModule, [object2]);
}
function _fun84954(a0) { // fn#84954, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:1465, offset: 0x01f5e701, size: 100 bytes, params: 2, frame: 17
const env0_0 = a0;
return env0_0 != null && a0.uri != null && a0.uri !== '' && UploadAttachmentStore.findUpload(env0_0,
DraftType.ChannelMessage, _fun84955) == null;
}
function _fun84958(a0) { // fn#84958, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:1907, offset: 0x01f5e82d, size: 203 bytes, params: 2, frame: 20
var environment;
var value;
var defaultImport;
var track;
var CHAT_INPUT_COMPONENT_VIEWED;
var object2;
var channelBinding;
var defaultImport2;
var launchCamera;
if (a0) {
value = environment.__proto__;
defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
track = defaultImport.track;
CHAT_INPUT_COMPONENT_VIEWED = AnalyticEvents.CHAT_INPUT_COMPONENT_VIEWED;
channelBinding = channel;
Reflect.apply(track, defaultImport, [CHAT_INPUT_COMPONENT_VIEWED, {type: ChatInputComponentViewedTypes.CAMERA,
channel_id: channelBinding.id, guild_id: channelBinding.guild_id}]);
onDismissKeyboard();
defaultImport2 = importDefault(4673) /* metro dependency 4673: ImagePicker */;
launchCamera = defaultImport2.launchCamera;
object2 = {'mediaType': 'mixed', 'includeBase64': false, 'quality': null, 'videoQuality': 'high',
'saveToPhotos': null, 'skipProcessing': true};
object2.quality = (require(4660) /* metro dependency 4660: UploadUtils */).getImageCompressionQuality();
object2.saveToPhotos = UnsyncedUserSettingsStore.saveCameraUploadsToDevice;
Reflect.apply(launchCamera, defaultImport2, [object2, _fun84959]);
}
}
function _fun84961(a0) { // fn#84961, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:3215, offset: 0x01f5ec1f, size: 381 bytes, params: 2, frame: 19
var environment;
var r6;
var r2;
var value;
var defaultImport;
var track;
var CHAT_INPUT_COMPONENT_VIEWED;
var object2;
var channelBinding;
var id;
var getUploads;
var value3;
var uploadLimitBinding;
var value5;
var moduleValue;
var moduleValue2;
if (a0) {
value = environment.__proto__;
defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
track = defaultImport.track;
CHAT_INPUT_COMPONENT_VIEWED = AnalyticEvents.CHAT_INPUT_COMPONENT_VIEWED;
channelBinding = channel;
id = channelBinding.id;
Reflect.apply(track, defaultImport, [CHAT_INPUT_COMPONENT_VIEWED,
{type: ChatInputComponentViewedTypes.NATIVE_MEDIA_PICKER, channel_id: id,
guild_id: channelBinding.guild_id}]);
onDismissKeyboard();
getUploads = UploadAttachmentStore.getUploads;
id = channelBinding.id;
value3 = Reflect.apply(getUploads, UploadAttachmentStore, [id, draftType]);
r6 = includedUploadIds == null ? value3 : value3.filter(function(a0) {
return includedUploadIds.includes(a0.id);
});
object2 = {'mediaType': 'any', 'includeBase64': false};
uploadLimitBinding = uploadLimit;
value5 = 1;
if (uploadLimitBinding > value5) {
uploadLimitBinding = uploadLimit;
moduleValue = require(477) /* metro dependency 477: PlatformUtils */;
r2 = uploadLimitBinding - (moduleValue.isIOS() ? r6.filter(_fun84963).length : r6.length);
} else {
r2 = value5;
}
object2.selectionLimit = r2;
object2.selections = r6.map(_fun84964);
moduleValue2 = require(477) /* metro dependency 477: PlatformUtils */;
object2.includeExtra = !moduleValue2.isIOS();
object2.skipProcessing = true;
value = importDefault(4673) /* metro dependency 4673: ImagePicker */;
value.launchImageLibrary(object2, _fun84965);
}
}
async function _fun84971({onDismissKeyboard, onRestoreKeyboard}) { // fn#84971, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:4469, offset: 0x01f5f066, size: 97 bytes, params: 2, frame: 15
if (true) {
await undefined;
if (false) {
return undefined;
}
onDismissKeyboard();
value = environment.__proto__.__proto__;
value = env2_0(env2_2[19]);
await value.presentLimitedLibraryPicker();
if (false) {
return undefined;
}
onRestoreKeyboard();
}
}
async function _fun84975({channel, uploadLimit, extensions, onDismissKeyboard, onRestoreKeyboard, onSelectFiles}) { // fn#84975, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:4734, offset: 0x01f5f10d, size: 314 bytes, params: 2, frame: 25
var environment;
if (true) {
await undefined;
if (false) {
return undefined;
}
onDismissKeyboard();
value = environment.__proto__.__proto__;
var binding = env2_1;
var binding2 = env2_2;
var value4 = binding(binding2[14]);
var track = value4.track;
var CHAT_INPUT_COMPONENT_VIEWED = env2_11.CHAT_INPUT_COMPONENT_VIEWED;
var ATTACH_FILE = env2_16.ATTACH_FILE;
Reflect.apply(track, value4, [CHAT_INPUT_COMPONENT_VIEWED, {type: ATTACH_FILE, channel_id: channel.id,
guild_id: channel.guild_id}]);
value = env2_0(binding2[24]);
await value.handleDocumentSelection({pickMultiple: uploadLimit > 1, extensions: extensions});
if (false) {
return undefined;
}
onRestoreKeyboard();
if (value != null) {
if (value.length < 1) {
return undefined;
}
var Promise = global.Promise;
var all = Promise.all;
var Array = global.Array;
value = Array.from(value);
await Reflect.apply(all, Promise, [value.map(_fun84976())]);
value = undefined;
if (false) {
return value;
}
onSelectFiles(value);
}
}
}
function _fun84982(a0) { // fn#84982, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:6090, offset: 0x01f5f551, size: 49 bytes, params: 2, frame: 13
let value = environment.__proto__;
value = require(4658) /* metro dependency 4658: UploadUtils */;
return value.doesImageMatchUpload(image, a0);
}
function _fun84988() { // fn#84988, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:8435, offset: 0x01f5f94e, size: 51 bytes, params: 1, frame: 12
const value = environment.__proto__;
return (require(4570) /* metro dependency 4570: setAccessibilityFocusAndroid */).setAccessibilityFocus({ref: importDefault});
}
function onAttachFileParams(a0) { // fn#84992, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:9379, owner: showSimpleMediaKeyboard.onAttachFileParams, offset: 0x01f5fc00, size: 72 bytes, params: 2, frame: 3
return {channel: a0, uploadLimit: MAX_UPLOAD_COUNT, onDismissKeyboard: onDismissKeyboard_84993,
onRestoreKeyboard: onRestoreKeyboard_84994, onSelectFiles: onSelectFiles_84995};
}
function onViewAll() { // fn#84999, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:10022, owner: showSimpleMediaKeyboard.onViewAll, offset: 0x01f5fd87, size: 82 bytes, params: 1, frame: 16
const handleViewAllDialogBinding = handleViewAllDialog;
const object2 = {};
const onAttachFileParamsBinding = onAttachFileParams;
const UploadOrigin = (require(4650) /* metro dependency 4650: Upload */).UploadOrigin;
const IMAGE_PICKER = UploadOrigin.IMAGE_PICKER;
copyDataProperties(object2, onAttachFileParamsBinding(IMAGE_PICKER), require);
object2['draftType'] = env0_1;
handleViewAllDialogBinding(object2);
}
function onManageLimited() { // fn#85000, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:10137, owner: showSimpleMediaKeyboard.onManageLimited, offset: 0x01f5fdd9, size: 63 bytes, params: 1, frame: 13
const handleLimitedPickerDialogBinding = handleLimitedPickerDialog;
const object2 = {};
object2.onDismissKeyboard = (require(11096) /* metro dependency 11096: showMediaKeyboardActionSheet */).hideMediaKeyboardActionSheet;
object2.onRestoreKeyboard = onRestoreKeyboard_85001;
handleLimitedPickerDialogBinding(object2);
}
function _fun84955(a0) { // fn#84955, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:1541, offset: 0x01f5e765, size: 49 bytes, params: 2, frame: 13
const value = environment.__proto__.__proto__;
return (require(4658) /* metro dependency 4658: UploadUtils */).doesImageMatchUpload(env0_0, a0);
}
function _fun84959(a0) { // fn#84959, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:2203, offset: 0x01f5e8f8, size: 576 bytes, params: 2, frame: 20
var r9;
var r0;
var value;
var property;
var uri;
var type;
var fileName;
var object2;
var value10;
var value11;
var defaultImport;
if (a0.didCancel) {
value = environment.__proto__;
onRestoreKeyboard();
} else if (a0.errorCode == null) {
if (a0.assets != null) {
if (a0.assets.length > 0) {
property = a0.assets[0];
if (property != null) {
uri = property.uri;
if (uri != null) {
if (property.height != null) {
if (property.width != null) {
type = property.type;
if (type != null) {
r0 = type;
} else {
fileName = property.fileName;
r9 = fileName == null ? undefined : fileName.split('.').pop();
r0 = r9 != null && property.fileType != null ? ('' + property.fileType + '/' + r9).toLowerCase() : 'image/jpeg';
}
object2 = {};
object2.id = property.id;
uri = property.uri;
object2.uri = uri;
uri = property.uri;
object2.originalUri = uri;
object2.width = property.width;
object2.height = property.height;
fileName = property.fileName;
object2.filename = fileName == null ? 'camera_upload.' + (r0.split('/')[1] ?? 'jpeg') : property.fileName !== '' ? property.fileName : 'camera_upload.' + (r0.split('/')[1] ?? 'jpeg');
object2.playableDuration = property.duration;
value10 = environment.__proto__.__proto__;
object2.platform = (require(4650) /* metro dependency 4650: Upload */).UploadPlatform.REACT_NATIVE;
object2.createdUsingInAppCamera = true;
object2.mimeType = r0;
value11 = environment.__proto__;
onSelectFiles([object2]);
defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
defaultImport.track(AnalyticEvents.IN_APP_CAMERA_USED,
{camera_view: InAppCameraUsedViews.FULLY_EXPANDED,
camera_preview_type: previewType});
onRestoreKeyboard();
}
}
}
}
}
}
}
}
function _fun84963({origin}) { // fn#84963, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:3502, offset: 0x01f5edb7, size: 52 bytes, params: 2, frame: 12
const UploadOrigin = (require(4650) /* metro dependency 4650: Upload */).UploadOrigin;
const IMAGE_PICKER = UploadOrigin.IMAGE_PICKER;
return origin !== IMAGE_PICKER;
}
function _fun84965(a0) { // fn#84965, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:3682, offset: 0x01f5edeb, size: 349 bytes, params: 2, frame: 21
var environment;
var r5;
var errorCode;
var value2;
var length;
var assets;
var replaceSelection;
var binding;
var forEach;
var items2;
var value3;
var _createForOfIteratorHelperLoose_84950Binding;
var value4;
var value5;
var done;
var value6;
var uri;
var push;
var object2;
var id;
var mimeType;
var width;
var height;
var fileName;
var duration;
var UploadPlatform;
var REACT_NATIVE;
var value7;
const env0_0 = a0;
onRestoreKeyboard();
reducibleJoin13: while (true) {
if (a0.didCancel) {
break reducibleJoin13;
}
errorCode = a0.errorCode;
if (errorCode != null) {
break reducibleJoin13;
}
value2 = environment;
length = env0_0.length;
if (length === 0) {
if (a0.assets == null) {
break reducibleJoin13;
}
if (a0.assets.length === 0) {
break reducibleJoin13;
}
}
replaceSelection = a0.replaceSelection;
reducibleJoin7: while (true) {
if (replaceSelection) {
binding = env0_0;
forEach = binding.forEach;
Reflect.apply(forEach, binding, [_fun84966]);
break reducibleJoin7;
}
break reducibleJoin7;
}
items2 = [];
value3 = environment.__proto__.__proto__;
_createForOfIteratorHelperLoose_84950Binding = _createForOfIteratorHelperLoose_84950;
assets = a0.assets;
value4 = _createForOfIteratorHelperLoose_84950Binding(assets);
value5 = value4();
done = value5.done;
if (!done) {
r5 = value5;
reducibleLoop8: while (true) {
value6 = r5.value;
uri = value6.uri;
reducibleJoin10: while (true) {
if (uri == null) {
break reducibleJoin10;
}
push = items2.push;
object2 = {};
id = value6.id;
object2.id = id;
uri = value6.uri;
object2.uri = uri;
uri = value6.uri;
object2.originalUri = uri;
mimeType = value6.mimeType;
object2.mimeType = mimeType;
width = value6.width;
object2.width = width;
height = value6.height;
object2.height = height;
fileName = value6.fileName;
object2.filename = fileName;
duration = value6.duration;
object2.playableDuration = duration;
UploadPlatform = (require(4650) /* metro dependency 4650: Upload */).UploadPlatform;
REACT_NATIVE = UploadPlatform.REACT_NATIVE;
object2.platform = REACT_NATIVE;
Reflect.apply(push, items2, [object2]);
break reducibleJoin10;
}
value7 = value4();
done = value7.done;
if (done) {
break reducibleLoop8;
}
r5 = value7;
continue reducibleLoop8;
}
}
length = items2.length;
if (length > 0) {
onSelectFiles(items2);
break reducibleJoin13;
}
break reducibleJoin13;
}
}
function _fun84976() { // fn#84976, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:5099, offset: 0x01f5f247, size: 36 bytes, params: 1, frame: 12
const env0_0 = env3_3(_fun84978);
return _fun84979;
}
function onAttachFileParamsOnDismissKeyboard() { // fn#84993, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:9426, owner: showSimpleMediaKeyboard.onAttachFileParams.onDismissKeyboard, offset: 0x01f5fc48, size: 37 bytes, params: 1, frame: 11
const value = environment.__proto__.__proto__;
return (require(11096) /* metro dependency 11096: showMediaKeyboardActionSheet */).hideMediaKeyboardActionSheet();
}
function onAttachFileParamsOnRestoreKeyboard() { // fn#84994, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:9489, owner: showSimpleMediaKeyboard.onAttachFileParams.onRestoreKeyboard, offset: 0x01f5fc6d, size: 23 bytes, params: 1, frame: 11
showSimpleMediaKeyboard(env1_0);
}
function onAttachFileParamsOnSelectFiles(a0) { // fn#84995, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:9534, owner: showSimpleMediaKeyboard.onAttachFileParams.onSelectFiles, offset: 0x01f5fc84, size: 40 bytes, params: 2, frame: 15
addImagesFromPicker(env1_0.id, a0, env0_0);
}
function _fun84966(a0) { // fn#84966, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:3810, offset: 0x01f5ef48, size: 167 bytes, params: 2, frame: 18
var environment;
var defaultImport;
var remove;
var value6;
const env0_0 = a0;
const origin = a0.origin;
const UploadOrigin = (require(4650) /* metro dependency 4650: Upload */).UploadOrigin;
const IMAGE_PICKER = UploadOrigin.IMAGE_PICKER;
if (!(origin !== IMAGE_PICKER || env0_0.assets != null && env0_0.assets.some(_fun84967))) {
defaultImport = importDefault(7879) /* metro dependency 7879: UploadAttachmentActionCreators */;
remove = defaultImport.remove;
value6 = environment.__proto__.__proto__;
Reflect.apply(remove, defaultImport, [channel.id, a0.id, DraftType.ChannelMessage]);
}
}
function* _fun84978(a0) { // fn#84978, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:5119, offset: 0x01f5f276, size: 317 bytes, params: 2, frame: 24
if (false) {
return undefined;
}
const uri = a0.uri;
value = environment.__proto__.__proto__.__proto__.__proto__.__proto__;
let binding = env5_0;
const value3 = undefined;
const value4 = binding(env5_2[16]);
const getImageDimensionsIfMissing = value4.getImageDimensionsIfMissing;
yield Reflect.apply(getImageDimensionsIfMissing, value4, [uri, value3, value3, a0.name ?? value3]);
const value5 = undefined;
if (false) {
return value5;
}
const width = value5.width;
const height = value5.height;
const object2 = {};
object2.id = env5_1(env5_2[25]).uniqueId(uri);
object2.uri = uri;
object2.originalUri = uri;
object2.filename = a0.name ?? uri.split('/').at(-1);
object2.mimeType = a0.type ?? value3;
object2.channelId = env2_0.id;
binding = env5_0;
const binding2 = env5_2;
const UploadPlatform = binding(binding2[9]).UploadPlatform;
const REACT_NATIVE = UploadPlatform.REACT_NATIVE;
object2.platform = REACT_NATIVE;
const UploadOrigin = binding(binding2[9]).UploadOrigin;
const FILE_ATTACHMENT = UploadOrigin.FILE_ATTACHMENT;
object2.origin = FILE_ATTACHMENT;
object2.width = width;
object2.height = height;
return object2;
}
function _fun84967(a0) { // fn#84967, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:3895, offset: 0x01f5efef, size: 49 bytes, params: 2, frame: 13
const value = environment.__proto__.__proto__.__proto__.__proto__;
return (require(4658) /* metro dependency 4658: UploadUtils */).doesImageMatchUpload(a0, env0_0);
}