decord/source/components_native/StreamPreview.tsx

160 lines
6 KiB
TypeScript
Raw Normal View History

2026-08-05 07:35:12 +00:00
// Module ID: 10806
// Function ID: 10807
2026-07-29 08:29:29 +00:00
// Name: render
2026-08-05 07:35:12 +00:00
// Dependencies: [19, 17, 1302, 21, 4255, 712, 3967, 4101, 10807, 10808, 1236, 4797, 10809, 589, 2]
2026-07-20 16:05:17 +00:00
// Exports: default
2026-08-05 07:35:12 +00:00
// Module 10806 (render)
2026-07-29 08:29:29 +00:00
import importAllResult from "noop";
2026-07-23 10:11:24 +00:00
import get_ActivityIndicator from "get ActivityIndicator";
2026-07-29 08:29:29 +00:00
import handleThemeChange from "handleThemeChange";
2026-07-23 10:11:24 +00:00
import jsxProd from "jsxProd";
2026-07-29 08:29:29 +00:00
import createCacheKey from "createCacheKey";
import createCacheKey from "createCacheKey";
2026-07-20 16:05:17 +00:00
2026-07-29 08:29:29 +00:00
let StyleSheet;
let c3;
let c4;
let closure_6;
let error;
let require = arg1;
({ Image: c3, View: c4, StyleSheet } = get_ActivityIndicator);
({ jsx: closure_6, jsxs: error } = jsxProd);
createCacheKey = { wrapper: null, text: null, fallbackImage: null };
createCacheKey = {};
let merged = Object.assign(StyleSheet.absoluteFillObject);
createCacheKey.alignItems = "center";
createCacheKey.justifyContent = "center";
createCacheKey.paddingLeft = 20;
createCacheKey.paddingRight = 20;
createCacheKey[0] = createCacheKey;
createCacheKey[1] = { textAlign: "center", fontSize: 14, lineHeight: 18, marginTop: 16, color: require("Themes").colors.TEXT_MUTED };
createCacheKey[2] = { width: "100%" };
createCacheKey = createCacheKey.createLegacyClassComponentStyles(createCacheKey);
const PureComponent = importAllResult.PureComponent;
class DefaultFallback extends PureComponent {
}
DefaultFallback.prototype["render"] = function render() {
const tmp = createCacheKey(this.context);
let obj = { style: tmp.wrapper, children: null };
obj = { resizeMode: "contain", style: tmp.fallbackImage, source: null };
if (obj3.isThemeDark(this.props.theme)) {
2026-08-05 07:35:12 +00:00
let tmp6Result = tmp6(10807);
2026-07-20 16:05:17 +00:00
} else {
2026-08-05 07:35:12 +00:00
tmp6Result = tmp6(10808);
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
obj[2] = tmp6Result;
obj[1] = closure_6(closure_3, obj);
return closure_6(closure_4, obj);
};
DefaultFallback.contextType = require("ManaContext").ThemeContext;
const obj2 = { touchable: null, imageContainer: null, image: null };
2026-08-05 07:35:12 +00:00
const obj3 = { flex: 1, width: "100%", height: "__closure", aspectRatio: true, backgroundColor: true };
2026-07-29 08:29:29 +00:00
obj3[4] = require("Themes").colors.BACKGROUND_BASE_LOWEST;
obj2[0] = obj3;
createCacheKey = { flex: 1, backgroundColor: require("Themes").unsafe_rawColors.BLACK };
obj2[1] = createCacheKey;
obj2[2] = { flex: 1 };
let closure_10 = createCacheKey.createLegacyClassComponentStyles(obj2);
const PureComponent2 = importAllResult.PureComponent;
class StreamPreview extends PureComponent2 {
constructor() {
applyArgumentsResult = HermesBuiltin.applyArguments(new.target, new.target);
closure_0 = applyArgumentsResult;
applyArgumentsResult.state = { isImageLoaded: false, isImageErrored: false };
applyArgumentsResult.handleLoadStart = function handleLoadStart() {
applyArgumentsResult.setState({ isImageLoaded: false, isImageErrored: false });
};
applyArgumentsResult.handleLoad = function handleLoad() {
applyArgumentsResult.setState({ isImageLoaded: true });
};
applyArgumentsResult.handleError = function handleError() {
applyArgumentsResult.setState({ isImageErrored: true });
};
return applyArgumentsResult;
2026-07-20 16:05:17 +00:00
}
}
2026-07-29 08:29:29 +00:00
StreamPreview.prototype["render"] = function render() {
let isFetching;
let renderFallback;
let theme;
let url;
const tmp = callback3(this.context);
({ url, isFetching, renderFallback, theme } = this.props);
if (null != url) {
if (!isFetching) {
if (!this.state.isImageErrored) {
if (!tmp7) {
let renderFallbackResult;
if (renderFallback != null) {
renderFallbackResult = renderFallback(true, theme);
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
let tmp8 = renderFallbackResult;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
let obj = { resizeMode: "contain", style: null, source: null, onLoadStart: null, onLoad: null, onError: null };
obj[1] = tmp.image;
obj = { uri: null, cache: "force-cache" };
obj[0] = url;
obj[2] = obj;
({ handleLoadStart: obj[3], handleLoad: obj[4], handleError: obj[5] } = this);
const tmp12 = callback(closure_3, obj);
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
obj = { accessibilityRole: "button", accessibilityLabel: null, activeOpacity: 0.6, style: null, disabled: null, onPress: null, children: null };
obj[1] = tmp2;
const items = [tmp.touchable, tmp3];
obj[3] = items;
obj[4] = tmp6;
obj[5] = tmp5;
const obj1 = { style: null, children: null };
obj1[0] = tmp.imageContainer;
const items1 = [tmp8, tmp12];
obj1[1] = items1;
const items2 = [callback2(closure_4, obj1), tmp4];
obj[6] = items2;
2026-08-05 07:35:12 +00:00
return callback2(require(4797) /* PressableBase */.PressableOpacity, obj);
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
}
let renderFallbackResult1;
if (renderFallback != null) {
renderFallbackResult1 = renderFallback(isFetching, theme);
}
tmp8 = renderFallbackResult1;
};
StreamPreview.contextType = require("ManaContext").ThemeContext;
StreamPreview.defaultProps = {
2026-07-20 16:05:17 +00:00
renderFallback: function defaultRenderFallback(arg0, theme) {
2026-07-29 08:29:29 +00:00
const obj = { theme, caption: null };
const intl = require(1236) /* getSystemLocale */.intl;
2026-07-20 16:05:17 +00:00
const string = intl.string;
2026-07-29 08:29:29 +00:00
const t = require(1236) /* getSystemLocale */.t;
2026-07-20 16:05:17 +00:00
if (arg0) {
let stringResult = string(t.NQ7H8V);
} else {
stringResult = string(t.uQZTBV);
}
2026-07-29 08:29:29 +00:00
obj[1] = stringResult;
return closure_6(DefaultFallback, obj);
2026-07-20 16:05:17 +00:00
}
};
2026-07-29 08:29:29 +00:00
let obj1 = { textAlign: "center", fontSize: 14, lineHeight: 18, marginTop: 16, color: require("Themes").colors.TEXT_MUTED };
const result = require("handleThemeChange").fileFinishedImporting("components_native/StreamPreview.tsx");
2026-07-20 16:05:17 +00:00
export default function ConnectedStreamPreview(stream) {
let channelId;
let guildId;
let isLoading;
let ownerId;
let previewUrl;
({ guildId, channelId, ownerId } = stream.stream);
2026-08-05 07:35:12 +00:00
({ previewUrl, isLoading } = importDefault(10809)(guildId, channelId, ownerId));
2026-07-29 08:29:29 +00:00
let obj = require(589) /* initialize */;
const items = [handleThemeChange];
2026-07-20 16:05:17 +00:00
obj = {};
2026-07-29 08:29:29 +00:00
const stateFromStores = obj.useStateFromStores(items, () => theme.theme);
2026-07-20 16:05:17 +00:00
const merged = Object.assign(stream);
2026-07-29 08:29:29 +00:00
obj.url = previewUrl;
obj.isFetching = isLoading;
obj.theme = stateFromStores;
return callback(StreamPreview, obj);
2026-07-20 16:05:17 +00:00
};