decord/source/modules/media_uploads/native/UploadPreviewActionSheet.tsx
2026-08-24 06:08:38 +00:00

286 lines
11 KiB
TypeScript

// Module ID: 10307
// Function ID: 10308
// Name: UploadPreviewActionSheet
// Dependencies: [32, 19, 17, 4830, 6989, 21, 4668, 712, 38, 4834, 1494, 1629, 4766, 4346, 4856, 10308, 4097, 8113, 4843, 10476, 10477, 6988, 6990, 4738, 4739, 500, 9055, 10324, 6317, 6322, 10478, 10480, 1236, 8597, 10482, 8505, 6920, 10484, 4750, 4337, 2]
// Exports: default
// Module 10307 (UploadPreviewActionSheet)
import ThemesDefault from "Themes" /* 712 */;
import closure_3 from "_slicedToArray" /* 32 */;
import closure_4 from "noop" /* 19 */;
import get_ActivityIndicator from "get ActivityIndicator" /* 17 */;
import { DraftType } from "handleChanged" /* 4830 */;
import { ACTION_SHEET_MAX_WIDTH } from "ACTION_SHEET_START_HEIGHT_RATIO" /* 6989 */;
import jsxProd from "jsxProd" /* 21 */;
import createCacheKey from "createCacheKey" /* 4668 */;
const require = arg1;
({ Image: c5, View: closure_6 } = get_ActivityIndicator);
({ jsx: c9, jsxs: c10 } = jsxProd);
createCacheKey = { contentContainer: { padding: 16 }, imageWrap: null, imageContainer: null };
createCacheKey = { backgroundColor: ThemesDefault.colors.BACKGROUND_SURFACE_HIGH, padding: ThemesDefault.space.PX_8, borderRadius: ThemesDefault.radii.md, width: "100%" };
createCacheKey[1] = createCacheKey;
createCacheKey[2] = { overflow: "hidden", alignSelf: "center", borderRadius: ThemesDefault.radii.md - ThemesDefault.space.PX_4 };
let closure_11 = createCacheKey.createStyles(createCacheKey);
let obj1 = { overflow: "hidden", alignSelf: "center", borderRadius: ThemesDefault.radii.md - ThemesDefault.space.PX_4 };
let result = require("set").fileFinishedImporting("modules/media_uploads/native/UploadPreviewActionSheet.tsx");
export default function UploadPreviewActionSheet(onAdd) {
onAdd = onAdd.onAdd;
const onEdit = onAdd.onEdit;
const onRemove = onAdd.onRemove;
const channelId = onAdd.channelId;
({ onClose: closure_4, disableAddDescription } = onAdd);
if (disableAddDescription === undefined) {
disableAddDescription = false;
}
const upload = onAdd.upload;
closure_5 = undefined;
let id;
let isVideo;
let item;
let spoiler;
let width;
let callback;
const tmp = callback();
closure_5 = tmp;
id = upload.id;
isVideo = upload.isVideo;
({ isImage, isThumbnail } = upload);
item = upload.item;
spoiler = upload.spoiler;
onEdit(onRemove[8])(item.platform === onAdd(onRemove[9]).UploadPlatform.REACT_NATIVE, "Upload must be a React Native upload item.");
width = onEdit(onRemove[10])().width;
const bottom = onEdit(onRemove[11])().bottom;
onEdit(onRemove[12])(() => () => {
if (closure_4 != null) {
tmp();
}
});
let obj = React;
const items = [width, item, tmp];
const size = React.useMemo(() => {
({ height, width } = item);
width = Math.min(width, item) - 2 * closure_5.contentContainer.padding - 2 * closure_5.imageWrap.padding;
if (null != height) {
if (null != width) {
if (0 !== height) {
if (0 !== width) {
const _Math = Math;
const result = width / Math.max(width, height);
const obj = { width: null, height: null };
obj[0] = width * result;
obj[1] = height * result;
return obj;
}
}
return { width: 300, height: 300 };
}
}
return { width, height: width };
}, items);
const items1 = [onRemove, id];
const items2 = [onAdd];
callback = React.useCallback(() => {
onEdit(onRemove[13]).hideActionSheet();
if (onRemove != null) {
tmp2(id);
}
}, items1);
const items3 = [onEdit, item];
const callback1 = React.useCallback(() => {
onEdit(onRemove[13]).hideActionSheet();
if (onAdd != null) {
onAdd();
}
}, items2);
const items4 = [isVideo, item];
const callback2 = React.useCallback(() => {
let obj = onEdit(onRemove[13]);
obj.hideActionSheet();
({ width, height, uri } = item);
obj = { uri, freeStyleCropEnabled: true, width: null, height: null };
let tmp2;
if (0 !== width) {
tmp2 = width;
}
obj[2] = tmp2;
let tmp3;
if (0 !== height) {
tmp3 = height;
}
obj[3] = tmp3;
const obj2 = onEdit(onRemove[14]);
const launchCropperResult = onEdit(onRemove[14]).launchCropper(obj);
onEdit(onRemove[14]).launchCropper(obj).then((path) => {
if (closure_1 != null) {
tmp(closure_1_0(closure_1_2[15]).cropResultToUploadItem(path));
const obj = closure_1_0(closure_1_2[15]);
}
}).catch((code) => {
if ("E_PICKER_CANCELLED" !== code.code) {
let obj = callback2(4097);
obj = { key: "CROP_ERROR", IconComponent: null, content: null };
obj[1] = callback(8113).CircleErrorIcon;
obj[2] = code.message;
obj.open(obj);
}
});
}, items3);
const memo = React.useMemo(() => {
const obj = onAdd(onRemove[18]);
return obj.getCaptionLabel(onAdd(onRemove[18]).getType(item.uri), isVideo, item);
}, items4);
let tmp13 = isImage;
if (isImage) {
tmp13 = !disableAddDescription;
}
let tmp14 = !tmp2;
if (!(undefined !== isThumbnail && isThumbnail)) {
tmp14 = !onAdd.disableSpoiler;
}
let tmp22Result4 = tmp3(tmp4[19])(channelId, upload);
const tmp5 = onEdit(onRemove[8]);
const tmp16 = onEdit(onRemove[20])(channelId, upload);
[tmp18, c11] = channelId(obj.useState(undefined), 2);
let sum2;
if (null != tmp18) {
const sum = tmp18 + bottom;
const sum1 = sum + tmp3(tmp4[7]).space.PX_32;
sum2 = sum1 + tmp3(tmp4[7]).space.PX_16;
}
if (isImage) {
isImage = null != onEdit;
}
obj = { scrollable: true, startHeight: sum2, children: null };
obj = { contentContainerStyle: null, children: null };
const tmp17 = channelId(obj.useState(undefined), 2);
obj[0] = { padding: onEdit(onRemove[7]).space.PX_16, paddingBottom: bottom };
let obj2 = {
spacing: 16,
onLayout(nativeEvent) {
_undefined(nativeEvent.nativeEvent.layout.height);
},
children: null
};
const items5 = [spoiler(onAdd(onRemove[24]).Text, { variant: "text-md/semibold", children: item.filename }), , , ];
const obj4 = { style: tmp.imageWrap, children: null };
const obj5 = { style: items6, children: null };
items6 = [tmp.imageContainer, { width: size.width, height: size.height }];
obj1 = { padding: onEdit(onRemove[7]).space.PX_16, paddingBottom: bottom };
const obj3 = { variant: "text-md/semibold", children: item.filename };
if (tmp6Result.isIOS()) {
if (isVideo) {
const uri = item.uri;
if (uri.startsWith("file://")) {
const obj6 = { style: null, source: null, muted: true, paused: true, preventsDisplaySleepDuringVideoPlayback: false };
({ width: obj12[0], height: obj12[1] } = size);
obj6[0] = { width: null, height: null };
const obj8 = { uri: null };
obj8[0] = item.uri;
obj6[1] = obj8;
let tmp22Result = tmp22(tmp6(tmp4[26]).VideoComponent, obj6);
const obj7 = { width: null, height: null };
}
const items7 = [tmp22Result, ];
tmp22Result = null != memo;
if (tmp22Result) {
tmp22Result = "" !== memo;
}
if (tmp22Result) {
const obj9 = { label: null };
obj9[0] = memo;
tmp22Result = tmp22(tmp6(tmp4[27]).Caption, obj9);
}
items7[1] = tmp22Result;
obj5[1] = items7;
obj4[1] = tmp23(tmp24, obj5);
items5[1] = tmp22(tmp24, obj4);
if (!tmp13) {
if (!tmp14) {
if (!tmp22Result4) {
let tmp23Result = null;
}
items5[2] = tmp23Result;
if (null != onRemove) {
const obj10 = { icon: null, text: null, onPress: null, variant: "destructive" };
obj10[0] = tmp22(tmp6(tmp4[39]).TrashIcon, { size: "sm", color: "control-primary-text-default" });
const intl6 = tmp6(tmp4[32]).intl;
obj10[1] = intl6.string(tmp6(tmp4[32]).t["40jBO/"]);
obj10[2] = callback;
let tmp22Result1 = tmp22(tmp6(tmp4[38]).Button, obj10);
} else {
tmp22Result1 = null;
if (null != onAdd) {
const obj11 = { icon: null, text: null, onPress: null };
obj11[0] = tmp22(tmp6(tmp4[30]).ImageFileIcon, { size: "sm", color: "control-primary-text-default" });
const intl5 = tmp6(tmp4[32]).intl;
obj11[1] = intl5.string(tmp6(tmp4[32]).t.s7oPyG);
obj11[2] = callback1;
tmp22Result1 = tmp22(tmp6(tmp4[38]).Button, obj11);
}
}
items5[3] = tmp22Result1;
obj2[2] = items5;
obj[1] = tmp23(tmp6(tmp4[23]).Stack, obj2);
obj[2] = tmp22(tmp6(tmp4[22]).BottomSheetScrollView, obj);
return tmp22(tmp6(tmp4[21]).BottomSheet, obj);
}
}
let tmp22Result2 = null;
if (tmp13) {
const obj12 = { icon: null, onPress: null, label: null, arrow: true };
obj12[0] = tmp22(tmp6(tmp4[30]).ImageFileIcon, {});
obj12[1] = function onPress() {
let obj = onEdit(onRemove[31]);
obj = { source: item, channelId, id };
return obj.open(obj);
};
const intl = tmp6(tmp4[32]).intl;
obj12[2] = intl.string(tmp6(tmp4[32]).t["5S2AK+"]);
tmp22Result2 = tmp22(tmp6(tmp4[29]).TableRow, obj12);
}
const items8 = [tmp22Result2, , , ];
let tmp22Result3 = null;
if (tmp14) {
const obj13 = { icon: null, onPress: null, label: null, checked: null };
obj13[0] = tmp22(tmp6(tmp4[34]).SpoilerIcon, {});
obj13[1] = function onPress() {
let obj = onEdit(onRemove[13]);
obj.hideActionSheet();
obj = { spoiler: !spoiler };
onEdit(onRemove[35]).update(channelId, id, isVideo.ChannelMessage, obj);
};
const intl2 = tmp6(tmp4[32]).intl;
obj13[2] = intl2.string(tmp6(tmp4[32]).t["gsI+xC"]);
obj13[3] = spoiler;
tmp22Result3 = tmp22(tmp6(tmp4[33]).TableCheckboxRow, obj13);
}
items8[1] = tmp22Result3;
if (tmp22Result4) {
const obj14 = { icon: null, label: null, onPress: null, checked: null };
obj14[0] = tmp22(tmp6(tmp4[36]).ImageIcon, {});
const intl3 = tmp6(tmp4[32]).intl;
obj14[1] = intl3.string(tmp6(tmp4[32]).t.ews2pj);
obj14[2] = tmp16;
obj14[3] = tmp2;
tmp22Result4 = tmp22(tmp6(tmp4[33]).TableCheckboxRow, obj14);
}
items8[2] = tmp22Result4;
let tmp22Result5 = null;
if (isImage) {
const obj15 = { icon: null, onPress: null, label: null, arrow: true };
obj15[0] = tmp22(tmp6(tmp4[37]).PencilSparkleIcon, {});
obj15[1] = callback2;
const intl4 = tmp6(tmp4[32]).intl;
obj15[2] = intl4.string(tmp6(tmp4[32]).t.b0y3DL);
tmp22Result5 = tmp22(tmp6(tmp4[29]).TableRow, obj15);
}
const obj16 = { hasIcons: true, children: null };
items8[3] = tmp22Result5;
obj16[1] = items8;
tmp23Result = tmp23(tmp6(tmp4[28]).TableRowGroup, obj16);
}
}
tmp22Result = tmp22(closure_5, { style: { width: size.width, height: size.height }, source: item });
};