decord/beta/source/modules/media/native/AttachmentPreview.tsx
github-actions 9b6fea255e chore: update source for beta 346.12
Skipped 1 file(s) >100MB (GitHub limit): source/__polyfill/04xxx/module_4821.js (118.4 MB)
2026-09-18 19:45:33 +00:00

230 lines
8.6 KiB
TypeScript

// Module ID: 10325
// Function ID: 10326
// Name: AttachmentPreview
// Dependencies: [19, 17, 21, 4636, 576, 10326, 10327, 10328, 10329, 10330, 10331, 10332, 10333, 10334, 10335, 10336, 10337, 10338, 10339, 5215, 4632, 1363, 5668, 1176, 10260, 8425, 2]
// Exports: default
// Module 10325 (AttachmentPreview)
import nativeDefault from "native" /* 576 */;
import native from "native" /* 1176 */;
import PlatformUtils from "PlatformUtils" /* 1363 */;
import Text_Text from "Text/Text" /* 4632 */;
import FileUtils from "FileUtils" /* 5215 */;
import FastImageDefault from "FastImage" /* 5668 */;
import _modDef10326 from "module_10326" /* 10326 */;
import _modDef10327 from "module_10327" /* 10327 */;
import _modDef10328 from "module_10328" /* 10328 */;
import _modDef10329 from "module_10329" /* 10329 */;
import _modDef10330 from "module_10330" /* 10330 */;
import _modDef10331 from "module_10331" /* 10331 */;
import _modDef10332 from "module_10332" /* 10332 */;
import _modDef10333 from "module_10333" /* 10333 */;
import _modDef10334 from "module_10334" /* 10334 */;
import _modDef10335 from "module_10335" /* 10335 */;
import _modDef10336 from "module_10336" /* 10336 */;
import _modDef10337 from "module_10337" /* 10337 */;
import _modDef10338 from "module_10338" /* 10338 */;
import _modDef10339 from "module_10339" /* 10339 */;
import noop from "module_19" /* 19 */;
require = fn;
class AttachmentIcon {
constructor(arg0) {
fileName = global.fileName;
items = [];
items[0] = fileName;
tmp = closure_8();
obj = {
style: tmp.attachmentFileIcon,
source: closure_3.useMemo(() => {
const obj = FileUtils;
let str = fileName;
if (fileName == null) {
str = "";
}
let tmp2 = obj4[obj.classifyFileName(obj, str)];
if (tmp2 == null) {
tmp2 = _modDef10337;
}
return tmp2;
}, items)
};
return jsx(Image, obj);
}
}
function FilenameText(fileName) {
fileName = fileName.fileName;
const tmp = closure_8();
let str = fileName;
if (fileName == null) {
str = "";
}
const match = /(?:\.([^.]+))?$/.exec(str);
let tmp5 = null != fileName;
if (tmp5) {
tmp5 = "" !== fileName;
}
if (tmp5) {
const obj2 = { style: tmp.attachmentFileName, ellipsizeMode: "middle", lineClamp: 1, variant: "text-xs/medium", color: "mobile-text-heading-primary", children: fileName };
tmp5 = timestampProducer(Text_Text.Text, obj2);
}
const items = [tmp5, ];
const obj3 = { style: tmp.attachmentFileName, lineClamp: 1, variant: "text-xs/medium", color: "text-muted", children: null };
let str3 = "UNKNOWN";
if (null != match) {
str3 = "UNKNOWN";
if (null != match[1]) {
str3 = match[1].toUpperCase();
}
}
obj4 = { children: null };
obj3.children = str3;
items[1] = timestampProducer(Text_Text.Text, obj3);
obj4.children = items;
return React5(hasOwnProperty, obj4);
}
function DefaultAttachmentPreview(fileName) {
fileName = fileName.fileName;
({ maxFileWidth, borderRadius } = fileName);
const obj = { style: null, children: null };
const items = [closure_8().fileInfoAttachmentPreviewFile, { maxWidth: maxFileWidth, borderRadius }];
obj.style = items;
const items1 = [timestampProducer(AttachmentIcon, { fileName }), timestampProducer(FilenameText, { fileName })];
obj.children = items1;
return React5(hasOwnProperty, obj);
}
get_ActivityIndicator = fn(17);
({ Image: closure_4, View: hasOwnProperty } = get_ActivityIndicator);
const jsxProd = fn(21);
({ jsx: metroRequire, jsxs: closure_7 } = jsxProd);
const createStyles = fn(4636);
let obj = { fileInfoAttachmentPreviewFile: { flexDirection: "row", alignItems: "center", overflow: "hidden", borderRadius: nativeDefault.radii.sm, height: 75, padding: 12, flex: 1, gap: nativeDefault.space.PX_8 }, attachmentFileIcon: { height: 32, width: 24 }, attachmentFileName: { paddingRight: 4, paddingLeft: 4, maxWidth: 136 }, videoIcon: { position: "absolute", top: 0, left: 0, right: 0, bottom: 0, alignItems: "center", justifyContent: "center" } };
const React6 = createStyles.createStyles(obj);
let obj4 = { archive: _modDef10326, acrobat: _modDef10327, ae: _modDef10328, ai: _modDef10329, audio: _modDef10330, code: _modDef10331, document: _modDef10332, image: _modDef10333, photoshop: _modDef10334, sketch: _modDef10335, spreadsheet: _modDef10336, unknown: _modDef10337, video: _modDef10338, webcode: _modDef10339 };
let closure_13 = noop.memo((borderRadius) => {
({ uri, width, height, style, fileName } = borderRadius);
const size = { uri, width, height };
const size1 = { width, height, borderRadius: borderRadius.borderRadius };
let isMatch = null != fileName;
if (isMatch) {
isMatch = "" !== fileName;
}
if (isMatch) {
isMatch = /\.gif$/i.test(fileName);
const obj3 = /\.gif$/i;
}
if (isMatch) {
let isIOSResult = PlatformUtils.isIOS();
if (isIOSResult) {
isIOSResult = uri.startsWith("ph://");
}
if (!isIOSResult) {
let isAndroidResult = tmp2(1363).isAndroid();
if (isAndroidResult) {
isAndroidResult = uri.startsWith("content://");
}
isIOSResult = isAndroidResult;
const tmp2Result = tmp2(1363);
}
isMatch = isIOSResult;
tmp2 = require;
}
const obj = { style: null, children: null };
const items = [size1, style, { overflow: "hidden" }];
obj.style = items;
if (isMatch) {
const obj2 = { style: null, source: null, resizeMode: "cover", enableAnimation: true };
const items1 = [size1, style];
obj2.style = items1;
obj2.source = size;
obj.children = tmp6(FastImageDefault, obj2);
let tmp10 = obj;
} else {
const obj5 = { style: null, source: null, localImageSource: null };
const items2 = [size1, style];
obj5.style = items2;
obj5.source = size;
obj5.localImageSource = size;
obj.children = tmp6(native.ThumbnailImage, obj5);
tmp10 = obj;
}
return timestampProducer(hasOwnProperty, tmp10);
});
let size = fn(2);
const result = size.fileFinishedImporting("modules/media/native/AttachmentPreview.tsx");
export default function AttachmentPreview(height) {
({ uri, isVideo, width } = height);
if (width === undefined) {
width = 75;
}
let num = height.height;
if (num === undefined) {
num = 75;
}
({ fileName, borderRadius, maxFileWidth } = height);
if (borderRadius === undefined) {
borderRadius = nativeDefault.radii.sm;
}
let flag = height.showPlayOnVideoPreview;
if (flag === undefined) {
flag = false;
}
let defaultPreview = height.defaultPreview;
if (defaultPreview === undefined) {
const obj = { fileName, maxFileWidth, borderRadius };
defaultPreview = timestampProducer(DefaultAttachmentPreview, obj);
}
const style = height.style;
let videoIcon = closure_8();
if (height.isImage) {
const size = { uri, width, height: num, borderRadius, style, fileName };
let tmp9 = timestampProducer(closure_13, size);
} else {
if (!isVideo) {
if (obj3.isIOS()) {
let tmp6 = tmp8;
let CirclePlayIcon = tmp7;
}
tmp9 = defaultPreview;
if (isVideo) {
tmp9 = defaultPreview;
if (tmp7Result.isIOS()) {
obj4 = { style, children: null };
const obj5 = { style: null, source: null, muted: true, paused: true, resizeMode: "cover", preventsDisplaySleepDuringVideoPlayback: false };
const size1 = { height: num, width };
obj5.style = size1;
const obj6 = { uri };
obj5.source = obj6;
obj4.children = timestampProducer(tmp7(8425).VideoComponent, obj5);
tmp9 = timestampProducer(hasOwnProperty, obj4);
}
tmp7Result = tmp7(1363);
}
obj3 = PlatformUtils;
tmp8 = dependencyMap;
} else {
tmp6 = dependencyMap;
CirclePlayIcon = require;
}
if (flag) {
const obj7 = { style, children: null };
const size2 = { uri, width, height: num, borderRadius, style, fileName };
const items = [timestampProducer(closure_13, size2), ];
const obj8 = { style: null, children: null };
videoIcon = videoIcon.videoIcon;
obj8.style = videoIcon;
CirclePlayIcon = CirclePlayIcon(10260).CirclePlayIcon;
tmp6 = timestampProducer(CirclePlayIcon, { size: "md", color: "white", secondaryColor: "black" });
obj8.children = tmp6;
items[1] = timestampProducer(hasOwnProperty, obj8);
obj7.children = items;
let tmp14 = React5(hasOwnProperty, obj7);
} else {
const size3 = { uri, width, height: num, borderRadius, style, fileName };
tmp14 = timestampProducer(closure_13, size3);
}
}
return tmp9;
};
export { AttachmentIcon };