// Metro module 15589 (f15590). import * as Module19 from "react"; import { useEffect, useRef, useMemo, useCallback } from "react"; import { DraftType } from "../../../../stores/DraftStore"; import UploadAttachmentStore from "../../../../stores/UploadAttachmentStore"; import { MediaKeyboardTarget, MediaPickerActionSheetEngagedActions } from "../MediaKeyboardConstants"; import { AnalyticEvents, ChatInputComponentViewedTypes } from "../../../../Constants"; import { AppLauncherRouteName } from "../../../app_launcher/native/AppLauncherNativeConstants"; import { KEYBOARD_ANIMATION_CONFIG } from "../../../keyboard/native/PortalKeyboardConstants"; import { jsx } from "react/jsx-runtime"; import AnalyticsUtils from "../../../../utils/AnalyticsUtils"; import { useSharedValue } from "../../../reanimated/ReanimatedRexport"; import { useKeyboardContextForType } from "../../../keyboard/native/useKeyboardType"; import { KeyboardTypes } from "../../../keyboard/native/KeyboardTypes"; import { useAppLauncherActionSheet } from "../../../app_launcher/native/AppLauncherActionSheet"; import { useMobileVisualRefreshConfig } from "../../../themes/experiments/MobileVisualRefreshExperiment"; import { useToken } from "../../../../design/tokens/native/useToken"; import Module712 from "../../../../_bundle/Module712"; import { getIsAppLauncherEnabled } from "../../../activities/ActivitiesInTextUtils"; import useMediaKeyboardConfig from "./useMediaKeyboardConfig"; import { useFileTypeFiltering } from "../../../interactions/FileTypeFiltering"; import { addImagesFromPicker, addAttachmentForCommand, handleSelectKeyboardItem, mediaNodeToUploadItem, handleAttachFile, handleCameraDialog, handleViewAllDialog, handleLimitedPickerDialog, handleSelectThread } from "../MediaKeyboardUtils"; import { getFileFromUploadItem } from "../../../../utils/native/UploadUtils"; import { dismissKeyboard } from "../../../../utils/native/ChatInputUtils"; import { UploadOrigin } from "../../../../lib/uploader/Upload"; import { isAndroid } from "../../../../utils/PlatformUtils"; import { CloudUpload } from "../../../../lib/uploader/CloudUpload"; import showUploadPreviewActionSheet from "../../../media_uploads/native/showUploadPreviewActionSheet"; import { openCreatePollModal } from "../../../polls/native/PollCreationModalActionCreators"; import { intl, t } from "../../../../intl/index.native"; import { AppsIcon } from "../../../../design/components/Icon/native/redesign/generated/AppsIcon"; import { ThreadIcon } from "../../../../design/components/Icon/native/redesign/generated/ThreadIcon"; import { PollsIcon } from "../../../../design/components/Icon/native/redesign/generated/PollsIcon"; import { AttachmentIcon } from "../../../../design/components/Icon/native/redesign/generated/AttachmentIcon"; import { ImageIcon } from "../../../../design/components/Icon/native/redesign/generated/ImageIcon"; import MediaKeyboardBottomSheetHeaderSimple from "./MediaKeyboardBottomSheetHeaderSimple"; import MediaKeyboardAccessoriesContainer from "./MediaKeyboardAccessoriesContainer"; import MediaKeyboardFloatingSend from "./MediaKeyboardFloatingSend"; import MediaKeyboardBottomSheetActions from "./MediaKeyboardBottomSheetActions"; import MediaKeyboardBottomSheet from "./MediaKeyboardBottomSheet"; import MediaKeyboardList from "./MediaKeyboardList"; import { HermesBuiltin } from "../../../../_hermes/prelude"; function $mk116983($env) { return (a0) => (0, $env.$parent[1])(a0, $env[0]); } let $mk116982 = function() { return () => dismissKeyboard(); }; let env11114 = {}; const r40 = Module19.memo(function MediaKeyboard(props) { let env22219 = { $parent: env11114 }; const channel = props.channel; env22219[0] = channel; const chatInputRef = props.chatInputRef; env22219[1] = chatInputRef; const { onClose, transitionState } = props; env22219[2] = void 0; env22219[3] = void 0; env22219[4] = void 0; env22219[5] = void 0; env22219[6] = void 0; env22219[7] = void 0; env22219[8] = void 0; env22219[9] = void 0; env22219[10] = void 0; env22219[11] = void 0; env22219[12] = void 0; env22219[13] = void 0; env22219[14] = void 0; env22219[15] = void 0; useEffect(() => { const CHAT_INPUT_COMPONENT_VIEWED = AnalyticEvents.CHAT_INPUT_COMPONENT_VIEWED; const r14 = env22219[0]; AnalyticsUtils.track(CHAT_INPUT_COMPONENT_VIEWED, { type: ChatInputComponentViewedTypes.MEDIA_PICKER, channel_id: r14.id, guild_id: r14.guild_id }); }, [channel.id, channel.guild_id]); const ref = useRef(null); env22219[2] = ref; const sharedValue2 = useSharedValue(-1); env22219[3] = sharedValue2; const sharedValue = useSharedValue(0); env22219[4] = sharedValue; const keyboardContextForType = useKeyboardContextForType(KeyboardTypes.MEDIA); env22219[5] = keyboardContextForType; const appLauncherActionSheet = useAppLauncherActionSheet({ chatInputRef, channel }).appLauncherActionSheet; let chatInputFloating = useMobileVisualRefreshConfig({ location: "MediaKeyboard" }).chatInputFloating; const token = useToken(Module712.modules.mobile.MEDIA_KEYBOARD_SEND_VERTICAL_INSET); env22219[6] = token; const r23 = chatInputFloating ? getIsAppLauncherEnabled(channel) : chatInputFloating; env22219[7] = r23; const mediaKeyboardConfig = useMediaKeyboardConfig({ channel, context: keyboardContextForType }); env22219[8] = mediaKeyboardConfig; const fileTypeFiltering = useFileTypeFiltering(mediaKeyboardConfig.fileTypes); const allowedExtensions = fileTypeFiltering.allowedExtensions; env22219[9] = allowedExtensions; const validateFilenames = fileTypeFiltering.validateFilenames; env22219[10] = validateFilenames; const showInvalidFileTypeAlert = fileTypeFiltering.showInvalidFileTypeAlert; env22219[11] = showInvalidFileTypeAlert; const mediaFilesAllowed = fileTypeFiltering.mediaFilesAllowed; const memo = useMemo(() => { let env28092 = { $parent: env22219 }; env28092[0] = function onRestoreKeyboard() { const context = env22219[5]; if (context.target !== MediaKeyboardTarget.APP_LAUNCHER) { env22219[1].current.openCustomKeyboard({ type: KeyboardTypes.MEDIA, context }); } }; env28092[1] = function onSelectFiles(a0, a1) { const r11 = env22219[5]; if (r11.target === MediaKeyboardTarget.CHAT) { addImagesFromPicker(env22219[0].id, a0, a1); } else if (r11.target === MediaKeyboardTarget.COMMAND) { if (env22219[9].length > 0 && !(0, env22219[10])([getFileFromUploadItem(a0[0]).filename])) { return (0, env22219[11])(); } addAttachmentForCommand(env22219[0].id, env22219[1], a0[0], r11, a1); } }; env28092[2] = function onSelectItem({ channelId: channelId2, item: item2, isIncluded: isIncluded2 }) { AnalyticsUtils.track(AnalyticEvents.MEDIA_PICKER_ACTION_SHEET_ENGAGED, { action: MediaPickerActionSheetEngagedActions.MEDIA_SELECTED }); const r27 = env22219[5]; if (r27.target === MediaKeyboardTarget.CHAT) { handleSelectKeyboardItem(channelId2, item2, isIncluded2, false); } else if (r27.target === MediaKeyboardTarget.COMMAND) { const r36 = mediaNodeToUploadItem(item2); if (env22219[9].length > 0 && !(0, env22219[10])([getFileFromUploadItem(r36).filename])) { return (0, env22219[11])(); } addAttachmentForCommand(channelId2, env22219[1], r36, r27, UploadOrigin.IMAGE_PICKER); } }; return { onAttachPress: () => { let env30898; const r11 = {}; const FILE_ATTACHMENT = UploadOrigin.FILE_ATTACHMENT; const r16 = env30898 = { $parent: env28092 }; env30898[0] = FILE_ATTACHMENT; HermesBuiltin.copyDataProperties(r11, { channel: env22219[0], uploadLimit: env22219[8].uploadLimit, extensions: env22219[9], onDismissKeyboard: $mk116982(), onRestoreKeyboard: env28092[0], onSelectFiles: $mk116983(r16) }); handleAttachFile(r11); }, onPressCamera: (a0) => { let env30899; const r11 = {}; const IMAGE_PICKER = UploadOrigin.IMAGE_PICKER; const r16 = env30899 = { $parent: env28092 }; env30899[0] = IMAGE_PICKER; HermesBuiltin.copyDataProperties(r11, { channel: env22219[0], uploadLimit: env22219[8].uploadLimit, extensions: env22219[9], onDismissKeyboard: $mk116982(), onRestoreKeyboard: env28092[0], onSelectFiles: $mk116983(r16) }); r11.previewType = a0; handleCameraDialog(r11); }, onPressHeader: () => { if (env22219[3].get() === 0) { const current2 = env22219[2].current; if (current2 != null) { current2.expand(); } } else { const current = env22219[2].current; if (current != null) { current.collapse(); } } }, onViewAll: () => { let env30900; const r5 = {}; const IMAGE_PICKER = UploadOrigin.IMAGE_PICKER; const r10 = env30900 = { $parent: env28092 }; env30900[0] = IMAGE_PICKER; const r20 = env22219[8]; HermesBuiltin.copyDataProperties(r5, { channel: env22219[0], uploadLimit: r20.uploadLimit, extensions: env22219[9], onDismissKeyboard: $mk116982(), onRestoreKeyboard: env28092[0], onSelectFiles: $mk116983(r10) }); r5.draftType = r20.draftType; handleViewAllDialog(r5); if (isAndroid()) { const current = env22219[2].current; if (current != null) { current.collapse(); } } }, onManageLimited: () => { handleLimitedPickerDialog({ onDismissKeyboard: dismissKeyboard, onRestoreKeyboard: env28092[0] }); }, onPressItem: (a0) => { (0, env28092[2])({ channelId: a0.channelId, item: a0.item, isIncluded: a0.isIncluded }); }, onLongPressItem: ({ channelId, item, isIncluded }) => { let c30901_3; c30901_3 = void 0; const cloudUpload = new CloudUpload(mediaNodeToUploadItem(item), channelId); const r26 = isIncluded ? UploadAttachmentStore.getUpload(channelId, cloudUpload.id, DraftType.ChannelMessage) : void 0; const onRemove = r26 == null ? void 0 : () => handleSelectKeyboardItem(channelId, item, isIncluded, false); c30901_3 = onRemove; let upload = r26; if (upload == null) { upload = cloudUpload; } showUploadPreviewActionSheet({ channelId, disableAddDescription: r26 == null, disableSpoiler: r26 == null, upload, onAdd: r26 == null ? () => (0, env28092[2])({ channelId, item, isIncluded }) : void 0, onEdit: (a0) => { if (c30901_3 != null) { c30901_3(); } (0, env28092[1])([a0], UploadOrigin.IMAGE_EDITOR); }, onRemove }); }, onPollsPress: () => { const CHAT_INPUT_COMPONENT_VIEWED = AnalyticEvents.CHAT_INPUT_COMPONENT_VIEWED; const channel = env22219[0]; AnalyticsUtils.track(CHAT_INPUT_COMPONENT_VIEWED, { type: ChatInputComponentViewedTypes.POLLS, channel_id: channel.id, guild_id: channel.guild_id }); env22219[1].current.closeCustomKeyboard(); openCreatePollModal({ channel, onCancel: env28092[0] }); }, onAppsPress: () => { env22219[1].current.openCustomKeyboard({ type: KeyboardTypes.APP_LAUNCHER, context: { initialRouteName: AppLauncherRouteName.HOME } }); }, onThreadPress: () => { handleSelectThread(env22219[0], env22219[1]); }, onSend: () => { const current = env22219[2].current; if (current != null) { current.collapse(); } env22219[1].current.handleSend(); } }; }, [sharedValue2, channel, chatInputRef, keyboardContextForType, ref, mediaKeyboardConfig, allowedExtensions, validateFilenames, showInvalidFileTypeAlert]); env22219[12] = memo; if (chatInputFloating) { chatInputFloating = mediaKeyboardConfig.canStartThreads; } env22219[13] = chatInputFloating; const memo2 = useMemo(() => { const r6 = env22219[7] ? [{ text: intl.string(t.PHjkRE), IconComponent: AppsIcon, onPress: env22219[12].onAppsPress, disabled: false }] : []; const r35 = env22219[13] ? [{ text: intl.string(t["7Xm5QI"]), IconComponent: ThreadIcon, onPress: env22219[12].onThreadPress, disabled: false }] : []; const r74 = { text: intl.string(t.RgIi2B), IconComponent: PollsIcon, onPress: null, disabled: null }; const r80 = env22219[12]; r74.onPress = r80.onPollsPress; const r82 = env22219[8]; r74.disabled = !r82.canPostPolls; const r84 = [r74, ...r35, ...r6, { text: intl.string(t["8Hvr3+"]), IconComponent: AttachmentIcon, onPress: r80.onAttachPress, disabled: r82.uploadDisabled }]; return [{ text: intl.string(t.Zmm6dN), IconComponent: ImageIcon, onPress: r80.onViewAll, disabled: r82.uploadDisabled }, ...r84]; }, [memo, mediaKeyboardConfig.uploadDisabled, mediaKeyboardConfig.canPostPolls, r23, chatInputFloating]); env22219[14] = memo2; env22219[15] = useRef(null); const callback = useCallback((a0) => (0, jsx)(MediaKeyboardBottomSheetHeaderSimple, { animatedIndex: a0.animatedIndex, onPress: env22219[12].onPressHeader }), [memo]); return { const animatedIndex = env22219[3]; const r22 = env22219[8]; return { const current = env22219[15].current; return current == null ? void 0 : current.setInsetFab(event + env22219[6]); }} uploadDisabled={r22.uploadDisabled} overflowButtons={env22219[14]} /> ; }, [sharedValue2, sharedValue, memo, channel.id, mediaKeyboardConfig, memo2, token])} handleComponent={callback} overlayComponent={appLauncherActionSheet} onClose={onClose} onAccessibilityFocusRestore={() => env22219[1].current.focusPhotosButton()} transitionState={transitionState}> ; }); export default r40;