Files
discord-decomp/modules/virtual_currency/hooks/useRedeemVirtualCurrency.tsx
T
2026-11-01 12:12:55 +02:00

1208 lines
31 KiB
TypeScript

// Metro module 8723 (f8724).
import _asyncToGenerator from "../../../_bundle/_asyncToGenerator";
import _slicedToArray from "../../../_bundle/_slicedToArray";
import { useState, useCallback, useEffect } from "react";
import { OrderStatus } from "../../payments/PaymentConstants";
import OrbRedemptionOrdersExperiment from "../experiments/OrbRedemptionOrdersExperiment";
import BillingError from "../../../errors/BillingError";
import { OrderProcessingPendingError, fetchOrderEntitlements, OrderSigningFailedWithConstraintsError, signOrder } from "../../payments/OrderActionCreators";
import { isExpectedHttpClientError, captureBillingException } from "../../../utils/BillingUtils";
import { redeemVirtualCurrencyForSKU } from "../VirtualCurrencyActionCreators";
import { intl, t } from "../../../intl/index.native";
import { HermesBuiltin, $createGenerator } from "../../../_hermes/prelude";
function $mk118100($env) {
return function* _loop(a0) {
let env31979 = {
$parent: $env
};
env31979[0] = a0;
env31979[2] = 0;
env31979[3] = 0;
L14: {
const r23 = env31979.$parent;
env31979[1] = r23;
let c32128_0 = env31979[0];
if (r23[4].length > 0) {
break L14;
}
yield new Promise((resolve) => setTimeout(resolve, c32128_0));
const r46 = env31979[1];
const r47 = r46.$parent.$parent;
env31979[1][4] = yield (0, r47[0])(r47[2][6]).fetchOrderEntitlements(r46.$parent[7].id);
return void 0;
}
return 1;
};
}
let env5687 = {};
export function useRedeemVirtualCurrency(a0) {
let env16744 = {
$parent: env5687
};
const r8 = _slicedToArray(useState(""), 2);
const responseMessage = r8[0];
env16744[0] = r8[1];
const r22 = _slicedToArray(useState([]), 2);
const entitlements = r22[0];
env16744[1] = entitlements;
env16744[2] = r22[1];
const r12 = _slicedToArray(useState(null), 2);
const error = r12[0];
env16744[3] = error;
env16744[4] = r12[1];
const r28 = _slicedToArray(useState(false), 2);
const isSubmitting = r28[0];
env16744[5] = r28[1];
const enabled = OrbRedemptionOrdersExperiment.useConfig({
location: "orb_checkout_modal"
}).enabled;
env16744[6] = enabled;
let r15 = a0?.order;
if (r15 == null) {
r15 = null;
}
env16744[7] = r15;
const onSignFailure = a0?.onSignFailure;
env16744[8] = onSignFailure;
let c16745_0 = _asyncToGenerator(function(c29975_0, loadId, c29975_2) {
let c29975_3, c29975_4, c29975_5, c29975_6, next, c29975_8, c29975_9, c29975_10, c29975_12;
let c29975_13 = 0;
let c29975_14 = 0;
let c29975_11 = 0;
return $createGenerator(function(a0, a1, a2) {
let r2, r13, r20, r21, r32, r36, r49, r52, r54, r69, r74, r99, r113, r133, r236, r258, r259, r279, r337, r338, method, method2, method3, value, value3, value4;
let env31472;
let $pc = 0, $e;
while (true) {
switch ($pc) {
case 0:
const r0 = c29975_14;
r2 = r0;
if (r0 === 2) {
$pc = 98;
continue;
}
$pc = 1;
continue;
case 1:
const r30 = r2;
r21 = void 0;
r20 = env16744;
r13 = Symbol;
if (r30 === 3) {
$pc = 93;
continue;
}
$pc = 2;
continue;
case 2:
try {
c29975_14 = 2;
r52 = c29975_13;
if (r52 === 0) {
$pc = 76;
continue;
}
$pc = 3;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 3:
try {
if (r52 === 1) {
$pc = 60;
continue;
}
$pc = 4;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 4:
try {
if (r52 === 2) {
$pc = 48;
continue;
}
$pc = 5;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 5:
try {
if (r52 === 3) {
$pc = 29;
continue;
}
$pc = 6;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 6:
try {
if (r52 === 4) {
$pc = 28;
continue;
}
$pc = 7;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 7:
try {
if (r52 === 5) {
$pc = 16;
continue;
}
$pc = 8;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 8:
try {
const r39 = c29975_8;
r32 = c29975_12;
c29975_11 = 2;
method = HermesBuiltin.getMethod(r39, "throw");
if (method === void 0) {
$pc = 13;
continue;
}
$pc = 9;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 9:
try {
r54 = method.call(c29975_8, r32);
HermesBuiltin.ensureObject(r54, "iterator.throw() did not return an object");
if (r54.done) {
$pc = 12;
continue;
}
$pc = 10;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 10:
try {
c29975_13 = 5;
c29975_14 = 1;
$pc = 11;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 11:
return r54;
case 12:
try {
c29975_6 = r54;
$pc = 37;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 13:
try {
method3 = HermesBuiltin.getMethod(c29975_8, "return");
if (method3 === void 0) {
$pc = 15;
continue;
}
$pc = 14;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 14:
try {
HermesBuiltin.ensureObject(method3.call(c29975_8), "iterator.return() did not return an object");
$pc = 15;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 15:
try {
HermesBuiltin.throwTypeError("yield* delegate must have a .throw() method");
$pc = 16;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 16:
try {
c29975_11 = 3;
if (a0 === 1) {
$pc = 27;
continue;
}
$pc = 17;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 17:
try {
c29975_5 = a1;
if (a0 === 2) {
$pc = 19;
continue;
}
$pc = 18;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 18:
try {
c29975_11 = 2;
r69 = a1;
$pc = 34;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 19:
try {
c29975_5 = a1;
c29975_11 = 2;
method2 = HermesBuiltin.getMethod(c29975_8, "return");
if (method2 === void 0) {
$pc = 25;
continue;
}
$pc = 20;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 20:
try {
r74 = method2.call(c29975_8, c29975_5);
HermesBuiltin.ensureObject(r74, "iterator.return() did not return an object");
if (r74.done) {
$pc = 23;
continue;
}
$pc = 21;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 21:
try {
c29975_13 = 5;
c29975_14 = 1;
$pc = 22;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 22:
return r74;
case 23:
try {
value = r74.value;
c29975_11 = 1;
const r81 = c29975_3;
if (r81 !== void 0 && typeof r81.return === "function") {
r81.return();
}
c29975_11 = 0;
c29975_14 = 3;
$pc = 24;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 24:
return {
value,
done: true
};
case 25:
try {
c29975_11 = 1;
const r84 = c29975_3;
if (r84 !== void 0 && typeof r84.return === "function") {
r84.return();
}
c29975_11 = 0;
c29975_14 = 3;
$pc = 26;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 26:
return {
value: a1,
done: true
};
case 27:
try {
c29975_14 = 3;
throw a1;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 28:
try {
const r88 = c29975_12;
c29975_11 = 1;
const r90 = c29975_3;
if (r90 !== void 0 && typeof r90.return === "function") {
try {
r90.return();
} catch {}
}
throw r88;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 29:
try {
if (a0 === 1) {
$pc = 47;
continue;
}
$pc = 30;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 30:
try {
if (a0 === 2) {
$pc = 45;
continue;
}
$pc = 31;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 31:
try {
const r91 = c29975_9;
env31472[4] = a1;
env31472[5] = $mk118100(r91);
const r93 = [250, 500, 1000, 1500, 2500, 4250];
c29975_4 = r93;
const r95 = r93[Symbol.iterator]();
c29975_4 = r95.next;
c29975_3 = r95;
$pc = 32;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 32:
try {
const r97 = c29975_4;
let r98 = c29975_3;
r99 = r98 === void 0 ? void 0 : (r49 = r97.call(r98)).done ? r98 = void 0 : r49.value;
c29975_3 = r98;
if (r98 === void 0) {
$pc = 40;
continue;
}
$pc = 33;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 33:
try {
c29975_11 = 2;
env31472[6] = r99;
const r106 = (0, env31472[5])(env31472[6])[r13.iterator]();
c29975_8 = r106;
HermesBuiltin.ensureObject(r106, "iterator is not an object");
next = r106.next;
c29975_5 = void 0;
r69 = void 0;
$pc = 34;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 34:
try {
r113 = next.call(c29975_8, r69);
HermesBuiltin.ensureObject(r113, "iterator.next() did not return an object");
c29975_6 = r113;
if (r113.done) {
$pc = 37;
continue;
}
$pc = 35;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 35:
try {
c29975_13 = 5;
c29975_14 = 1;
$pc = 36;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 36:
return r113;
case 37:
try {
const value2 = c29975_6.value;
c29975_11 = 1;
if (value2) {
$pc = 39;
continue;
}
$pc = 38;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 38:
try {
$pc = 32;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 39:
try {
const r121 = c29975_3;
if (r121 !== void 0 && typeof r121.return === "function") {
r121.return();
}
$pc = 40;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 40:
try {
if (env31472[4].length === 0) {
$pc = 44;
continue;
}
$pc = 41;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 41:
try {
(0, env16744[2])(env31472[4]);
(0, env16744[5])(false);
r133 = env31472[2];
if (r133 == null) {
$pc = 43;
continue;
}
$pc = 42;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 42:
try {
r133(env31472[4]);
$pc = 43;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 43:
try {
c29975_11 = 0;
$pc = 70;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 44:
try {
throw new OrderProcessingPendingError();
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 45:
try {
c29975_11 = 0;
c29975_14 = 3;
$pc = 46;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 46:
return {
value: a1,
done: true
};
case 47:
try {
c29975_14 = 3;
throw a1;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 48:
try {
if (a0 === 1) {
$pc = 59;
continue;
}
$pc = 49;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 49:
try {
if (a0 === 2) {
$pc = 57;
continue;
}
$pc = 50;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 50:
try {
env31472[3] = a1;
if (env31472[3].status !== OrderStatus.SIGNED) {
$pc = 53;
continue;
}
$pc = 51;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 51:
try {
value3 = fetchOrderEntitlements(env16744[7].id);
c29975_13 = 3;
c29975_14 = 1;
$pc = 52;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 52:
return {
value: value3,
done: false
};
case 53:
try {
if (env31472[3].errors == null) {
$pc = 55;
continue;
}
$pc = 54;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 54:
try {
if (env31472[3].errors.length > 0) {
$pc = 56;
continue;
}
$pc = 55;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 55:
try {
throw new Error(`Unexpected order status: ${env31472[3].status}`);
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 56:
try {
throw new Error(`Order signing failed with errors: ${env31472[3].errors.join(", ")}`);
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 57:
try {
c29975_11 = 0;
c29975_14 = 3;
$pc = 58;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 58:
return {
value: a1,
done: true
};
case 59:
try {
c29975_14 = 3;
throw a1;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 60:
try {
const r206 = c29975_12;
c29975_11 = 0;
env31472[8] = r206;
const r208 = env31472[8];
if (r208 instanceof OrderSigningFailedWithConstraintsError) {
$pc = 72;
continue;
}
$pc = 61;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 61:
try {
const r218 = env31472[8];
const r224 = r218 instanceof BillingError;
if (r224) {
$pc = 63;
continue;
}
$pc = 62;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 62:
try {
r236 = new BillingError(env31472[8]);
$pc = 64;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 63:
try {
r236 = env31472[8];
$pc = 64;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 64:
try {
env31472[7] = r236;
if (isExpectedHttpClientError(env31472[8])) {
$pc = 69;
continue;
}
$pc = 65;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 65:
try {
const r257 = env31472[8] instanceof Error;
r258 = c29975_9;
if (r257) {
$pc = 67;
continue;
}
$pc = 66;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 66:
try {
r259 = env31472[7];
r36 = r258;
$pc = 68;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 67:
try {
r259 = env31472[8];
r36 = r258;
$pc = 68;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 68:
try {
captureBillingException(r259, {
tags: {
source: "orb_redeem_orders_api"
},
extra: {
skuId: env31472[0],
loadId: env31472[1],
orderId: env16744[7].id
}
});
$pc = 69;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 69:
try {
(0, env16744[4])(env31472[7]);
(0, env16744[5])(false);
$pc = 70;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 70:
try {
c29975_14 = 3;
$pc = 71;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 71:
return {
value: void 0,
done: true
};
case 72:
try {
r279 = env16744[8];
if (r279 == null) {
$pc = 74;
continue;
}
$pc = 73;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 73:
try {
r279(env31472[8].order);
$pc = 74;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 74:
try {
(0, env16744[4])(env31472[8]);
(0, env16744[5])(false);
c29975_14 = 3;
$pc = 75;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 75:
return {
value: void 0,
done: true
};
case 76:
try {
if (a0 === 1) {
$pc = 85;
continue;
}
$pc = 77;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 77:
try {
if (a0 === 2) {
$pc = 83;
continue;
}
$pc = 78;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 78:
try {
c29975_10 = r21;
const r295 = env31472 = {
$parent: r20
};
c29975_9 = r295;
env31472[0] = c29975_0;
env31472[1] = loadId;
env31472[2] = c29975_2;
env31472[3] = void 0;
env31472[4] = void 0;
env31472[5] = void 0;
env31472[6] = void 0;
env31472[7] = void 0;
if (env16744[7] == null) {
$pc = 81;
continue;
}
$pc = 79;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 79:
try {
(0, env16744[5])(true);
(0, env16744[4])(null);
c29975_11 = 1;
value4 = signOrder({
orderId: env16744[7].id,
loadId
});
c29975_13 = 2;
c29975_14 = 1;
$pc = 80;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 80:
return {
value: value4,
done: false
};
case 81:
try {
(0, env16744[4])(new BillingError("Order not created yet"));
(0, env16744[5])(false);
c29975_14 = 3;
$pc = 82;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 82:
return {
value: void 0,
done: true
};
case 83:
try {
c29975_14 = 3;
$pc = 84;
continue;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 84:
return {
value: a1,
done: true
};
case 85:
try {
c29975_14 = 3;
throw a1;
} catch ($caught) {
$e = $caught;
$pc = 86;
continue;
}
case 86:
const r336 = $e;
r337 = r336;
c29975_12 = r336;
r338 = c29975_11;
if (r338 === 0) {
$pc = 92;
continue;
}
$pc = 87;
continue;
case 87:
if (r338 === 1) {
$pc = 91;
continue;
}
$pc = 88;
continue;
case 88:
if (r338 === 2) {
$pc = 90;
continue;
}
$pc = 89;
continue;
case 89:
c29975_13 = 6;
$pc = 2;
continue;
case 90:
c29975_13 = 4;
$pc = 2;
continue;
case 91:
c29975_13 = 1;
$pc = 2;
continue;
case 92:
c29975_14 = 3;
throw r337;
case 93:
if (a0 === 1) {
$pc = 97;
continue;
}
$pc = 94;
continue;
case 94:
if (a0 === 2) {
$pc = 96;
continue;
}
$pc = 95;
continue;
case 95:
return {
value: void 0,
done: true
};
case 96:
return {
value: a1,
done: true
};
case 97:
throw a1;
case 98:
c29975_14 = 3;
HermesBuiltin.throwTypeError("Generator functions may not be called on executing generators");
throw new Error("unreachable");
}
throw new Error("bad pc " + $pc);
}
});
});
const callback = useCallback(function(a0, a1, a2) {
return c16745_0.apply(this, arguments);
}, [r15, onSignFailure]);
env16744[9] = callback;
const callback2 = useCallback((a0, a1, c26277_0) => redeemVirtualCurrencyForSKU({
skuId: a0,
loadId: a1,
onRedeemStart: function onRedeemStart() {
(0, env16744[5])(true);
(0, env16744[4])(null);
},
onRedeemSucceed: function onRedeemSucceed(a0) {
(0, env16744[2])(a0);
(0, env16744[5])(false);
if (c26277_0 != null) {
c26277_0(a0);
}
},
onRedeemFail: function onRedeemFail(a0) {
(0, env16744[4])(a0);
(0, env16744[5])(false);
}
}), []);
env16744[10] = callback2;
const callback3 = useCallback((a0, a1, a2) => {
if (env16744[6]) {
(0, env16744[9])(a0, a1, a2);
} else {
(0, env16744[10])(a0, a1, a2);
}
}, [enabled, callback, callback2]);
(0, useEffect)(() => {
L10: {
const r8 = env16744[3];
if (r8 == null) {
const r11 = env16744[1];
if (r11 != null && r11.length > 0) {
const r46 = r11.map((item) => item.sku?.name);
(0, env16744[0])(intl.format(t.JxNFav, {
amountDescription: "1 orb",
redeemedItemDescription: `${r46.length === 1 ? "SKU" : "SKUs"}: ${r46.join(", ")}. Entitlement ${r11.length === 1 ? "ID" : "IDs"}: ${r11.map((item) => item.id).join(", ")}`
}));
break L10;
}
(0, env16744[0])("");
} else {
(0, env16744[0])(intl.format(t["7gHWrd"], {
amount: "1 orb",
errorMessage: r8.message
}));
}
}
}, [entitlements, error]);
return {
entitlements,
error,
isSubmitting,
responseMessage,
redeemVirtualCurrency: callback3
};
}