Files
discord-decomp/_bundle/Module3962.js
T
2026-11-01 12:12:55 +02:00

204 lines
6.1 KiB
JavaScript

// Metro module 3962 (f3963).
import _slicedToArray from "./_slicedToArray";
import { useState, useMemo, useRef, useEffect } from "react";
import { Image } from "react-native";
import { RiveFileFactory } from "./Module3945";
import { callDispose } from "./Module3942";
let env2257 = {};
export function useRiveFile(a0, r7 = {}) {
let env13758 = {
$parent: env2257
};
env13758[0] = r7;
env13758[1] = void 0;
env13758[2] = void 0;
env13758[3] = void 0;
env13758[4] = void 0;
env13758[5] = void 0;
env13758[6] = void 0;
const r14 = _slicedToArray((0, useState)({
riveFile: void 0,
isLoading: true,
error: null
}), 2);
const r15 = r14[0];
env13758[1] = r14[1];
const r20 = (0, useMemo)(() => {
const referencedAssets = env13758[0].referencedAssets;
const r1 = {};
let c24899_0 = r1;
let r8 = void 0;
if (referencedAssets !== void 0) {
Object.entries(referencedAssets).forEach((item) => {
let r42;
const [r27, image] = item;
const r33 = image !== null && typeof image === "object" && "__type" in image && image.__type === "HybridObject<RiveImage>";
L28: {
if (!r33) {
const source = image.source;
if (typeof source === "number") {
const r47 = Image.resolveAssetSource(source);
if (r47 && r47.uri) {
r42 = {
sourceAssetId: r47.uri
};
break L28;
}
throw new Error("Invalid asset source provided.");
}
const uri = source.uri;
if (typeof source === "object" && uri) {
r42 = {
sourceUrl: uri
};
break L28;
}
const { fileName, path } = source;
if (typeof source === "object" && fileName) {
const r41 = {
sourceAsset: fileName
};
r42 = r41;
if (!path) {
break L28;
}
r41.path = path;
r42 = r41;
break L28;
}
throw new Error("Invalid source provided.");
}
r42 = {
image
};
}
c24899_0[r27] = r42;
});
r8 = r1;
}
return r8;
}, [r7.referencedAssets]);
env13758[2] = r20;
env13758[3] = (0, useRef)(r20);
const r24 = a0 != null && typeof a0 === "object" && "uri" in a0 ? "uri" : "primitive";
env13758[4] = r24;
const r27 = a0 != null && typeof a0 === "object" && "uri" in a0 ? a0.uri : a0;
env13758[5] = r27;
useEffect(() => {
let env24900 = {
$parent: env13758
};
env24900[0] = null;
let c24901_0 = async () => {
let c31333_1, c31333_2;
let c31333_3 = 0;
let c31922_0;
const r11 = void 0;
L34: {
L25: {
L20: {
try {
c31333_1 = r11;
c31333_3 = 1;
const r25 = env13758[4] === "uri" ? {
uri: env13758[5]
} : env13758[5];
if (r25 == null) {
(0, env13758[1])({
riveFile: null,
isLoading: false,
error: new Error("No Rive file input provided.")
});
c31333_3 = 0;
break L34;
}
L23: {
if (typeof r25 === "string") {
c31333_1.$parent[0] = !r25.startsWith("http://") && !r25.startsWith("https://") ? await RiveFileFactory.fromResource(r25, env13758[3].current) : await RiveFileFactory.fromURL(r25, env13758[3].current);
} else {
if (typeof r25 !== "number" && !("uri" in r25)) {
if (r25 instanceof ArrayBuffer) {
c31333_1.$parent[0] = await RiveFileFactory.fromBytes(r25, env13758[3].current);
break L23;
}
(0, env13758[1])({
riveFile: c31333_1.$parent[0],
isLoading: false,
error: null
});
c31333_3 = 0;
break L20;
}
c31333_1.$parent[0] = await RiveFileFactory.fromSource(r25, env13758[3].current);
}
}
(0, env13758[1])({
riveFile: c31333_1.$parent[0],
isLoading: false,
error: null
});
c31333_3 = 0;
break L25;
} catch ($e) {
const r41 = $e;
let r7 = r41;
c31333_2 = r41;
if (c31333_3 !== 0) {
while (true) {
try {
const r229 = c31333_2;
c31333_3 = 0;
c31922_0 = r229;
console.error(c31922_0);
env13758[1]({
riveFile: null,
isLoading: false,
error: c31922_0 instanceof Error ? c31922_0 : new Error("Failed to load Rive file")
});
break L25;
} catch (r225) {
r7 = r225;
c31333_2 = r225;
if (c31333_3 === 0) {
break;
}
}
}
}
throw r7;
}
}
return void 0;
}
return void 0;
}
};
(function loadRiveFile() {
return c24901_0.apply(this, arguments);
})();
return () => {
if (env24900[0]) {
callDispose(env24900[0]);
}
};
}, [r24, r27]);
const riveFile = r15.riveFile;
env13758[6] = riveFile;
useEffect(() => {
const r2 = env13758[3];
const current = r2.current;
const data = env13758[2];
if (current !== data && env13758[6] && data) {
env13758[6].updateReferencedAssets({
data
});
r2.current = data;
}
}, [r20, riveFile]);
return {
riveFile: r15.riveFile,
isLoading: r15.isLoading,
error: r15.error
};
}