Files
discord-decomp/utils/LazyAPIPromise.tsx
T
2026-11-01 12:12:55 +02:00

65 lines
1.6 KiB
TypeScript

// Metro module 8223 (f8224).
import { useState } from "react";
import { APIError } from "../errors/index";
export default function useLazyAPIPromise(c16380_0, c16380_1) {
let _execFn2 = function _execFn() {
const r9 = async () => {
let r58;
let c29925_2;
let c29925_3 = 0;
let c31461_0, c31461_1, c31461_2;
try {
c31461_0 = void 0;
c31461_1 = void 0;
setState(true);
setState2(null);
c29925_3 = 1;
c31461_0 = await c16380_0();
(0, setState)(false);
(0, setState2)(null);
r58 = c31461_0;
c29925_3 = 0;
} catch ($e) {
const r27 = $e;
let r7 = r27;
c29925_2 = r27;
if (c29925_3 !== 0) {
while (true) {
try {
const r67 = c29925_2;
c29925_3 = 0;
c31461_2 = r67;
c31461_1 = new APIError(c31461_2);
if (c16380_1 != null) {
c16380_1(c31461_1);
}
(0, setState2)(c31461_1);
(0, setState)(false);
} catch (r63) {
r7 = r63;
c29925_2 = r63;
if (c29925_3 === 0) {
break;
}
continue;
}
return null;
}
}
throw r7;
}
return r58;
};
_execFn2 = r9;
return r9.apply(this, arguments);
};
const [loading, setState] = useState(false);
const [error, setState2] = useState(null);
return [function execFn() {
return _execFn2.apply(this, arguments);
}, {
loading,
error
}];
};