decord/source/modules/parent_tools/SpendingLimitDisplay.tsx

87 lines
3.3 KiB
TypeScript
Raw Normal View History

2026-08-15 05:55:55 +00:00
// Module ID: 14266
// Function ID: 14267
2026-07-20 16:05:17 +00:00
// Name: getSpendingLimitDisplayState
2026-08-15 05:55:55 +00:00
// Dependencies: [1340, 5296, 1924, 589, 14184, 5316, 5317, 1236, 2335, 2]
2026-07-20 16:05:17 +00:00
// Exports: useSpendingLimitDisplayState, useSpendingLimitFromUserSettings
2026-08-15 05:55:55 +00:00
// Module 14266 (getSpendingLimitDisplayState)
2026-07-29 08:29:29 +00:00
import handleConnectionClosedOrResumed from "handleConnectionClosedOrResumed";
import freshTeenActivityWithMap from "freshTeenActivityWithMap";
2026-07-23 10:11:24 +00:00
import { SubscriptionIntervalTypes } from "GuildFeatures";
const require = arg1;
2026-07-20 16:05:17 +00:00
function getSpendingLimitDisplayState(amount) {
if (null == amount) {
2026-07-29 08:29:29 +00:00
return { kind: "off" };
2026-07-20 16:05:17 +00:00
} else if (0 === amount.amount) {
2026-07-29 08:29:29 +00:00
return { kind: "blocked" };
2026-07-20 16:05:17 +00:00
} else {
const currency = amount.currency;
2026-08-15 05:55:55 +00:00
const obj6 = require(5316) /* formatSingleCurrencyPrice */;
const formatRateResult = obj6.formatRate(require(5316) /* formatSingleCurrencyPrice */.formatPrice(amount.amount, currency), SubscriptionIntervalTypes.MONTH, 1);
2026-07-20 16:05:17 +00:00
if (arg1 >= amount.amount) {
2026-07-29 08:29:29 +00:00
let obj = { kind: "spent", monthlyText: null };
obj[1] = formatRateResult;
return obj;
2026-07-20 16:05:17 +00:00
} else {
2026-08-15 05:55:55 +00:00
let num = tmp5(5317).CurrencyExponents[amount.currency];
2026-07-29 08:29:29 +00:00
if (num == null) {
num = 2;
2026-07-20 16:05:17 +00:00
}
const diff = amount.amount - arg1;
if (diff <= 10 * 10 ** num) {
2026-07-29 08:29:29 +00:00
obj = { kind: "close-to-limit", monthlyText: null, remainingText: null };
obj[1] = formatRateResult;
const intl = tmp5(1236).intl;
const obj1 = { amount: null };
2026-08-15 05:55:55 +00:00
obj1[0] = tmp5(5316).formatPrice(diff, currency);
obj[2] = intl.formatToPlainString(importDefault(2335)["+Q+bU1"], obj1);
const tmp5Result = tmp5(5316);
2026-07-20 16:05:17 +00:00
} else {
2026-07-29 08:29:29 +00:00
obj = { kind: "on", monthlyText: null };
obj[1] = formatRateResult;
2026-07-20 16:05:17 +00:00
}
return obj;
}
2026-08-15 05:55:55 +00:00
const obj7 = require(5316) /* formatSingleCurrencyPrice */;
2026-07-20 16:05:17 +00:00
}
}
2026-07-23 10:11:24 +00:00
const result = require("GuildFeatures").fileFinishedImporting("modules/parent_tools/SpendingLimitDisplay.tsx");
2026-07-20 16:05:17 +00:00
export const useSpendingLimitFromUserSettings = function useSpendingLimitFromUserSettings() {
2026-07-29 08:29:29 +00:00
const items = [handleConnectionClosedOrResumed];
return require(589) /* initialize */.useStateFromStores(items, () => {
const safetySettings = settings.settings.safetySettings;
2026-07-20 16:05:17 +00:00
let oneTimePurchaseLimit;
2026-07-29 08:29:29 +00:00
if (safetySettings != null) {
2026-07-20 16:05:17 +00:00
const spendingLimitSettings = safetySettings.spendingLimitSettings;
2026-07-29 08:29:29 +00:00
if (spendingLimitSettings != null) {
2026-07-20 16:05:17 +00:00
oneTimePurchaseLimit = spendingLimitSettings.oneTimePurchaseLimit;
}
}
let tmp2 = null;
if (null != oneTimePurchaseLimit) {
2026-07-29 08:29:29 +00:00
const obj = { amount: null, currency: null };
2026-07-20 16:05:17 +00:00
const _Number = Number;
2026-07-29 08:29:29 +00:00
obj[0] = Number(oneTimePurchaseLimit.amount);
obj[1] = oneTimePurchaseLimit.currency;
2026-07-20 16:05:17 +00:00
tmp2 = obj;
}
return tmp2;
2026-08-15 05:55:55 +00:00
}, undefined, require(14184) /* spendingLimitEqual */.spendingLimitEqual);
2026-07-20 16:05:17 +00:00
};
export const CLOSE_TO_LIMIT_THRESHOLD_MAJOR_UNITS = 10;
export { getSpendingLimitDisplayState };
export const useSpendingLimitDisplayState = function useSpendingLimitDisplayState(cap) {
2026-07-29 08:29:29 +00:00
const items = [freshTeenActivityWithMap];
const stateFromStores = require(589) /* initialize */.useStateFromStores(items, () => monthlyPurchases.getMonthlyPurchases());
let num;
if (stateFromStores != null) {
num = stateFromStores.total_amount;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
if (num == null) {
num = 0;
2026-07-20 16:05:17 +00:00
}
return getSpendingLimitDisplayState(cap, num);
};