decord/source/modules/parent_tools/SpendingLimitDisplay.tsx

89 lines
3.4 KiB
TypeScript
Raw Normal View History

2026-07-28 08:39:19 +00:00
// Module ID: 13919
// Function ID: 106460
2026-07-20 16:05:17 +00:00
// Name: getSpendingLimitDisplayState
2026-07-28 08:39:19 +00:00
// Dependencies: [1316, 5775, 1852, 566, 13837, 5651, 5652, 1212, 2199, 2]
2026-07-20 16:05:17 +00:00
// Exports: useSpendingLimitDisplayState, useSpendingLimitFromUserSettings
2026-07-28 08:39:19 +00:00
// Module 13919 (getSpendingLimitDisplayState)
2026-07-23 10:11:24 +00:00
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
import closure_4 from "_isNativeReflectConstruct";
import { SubscriptionIntervalTypes } from "GuildFeatures";
const require = arg1;
2026-07-20 16:05:17 +00:00
function getSpendingLimitDisplayState(amount) {
if (null == amount) {
let obj = { kind: "off" };
return obj;
} else if (0 === amount.amount) {
obj = { kind: "blocked" };
return obj;
} else {
const currency = amount.currency;
2026-07-28 08:39:19 +00:00
const obj8 = require(5651) /* formatSingleCurrencyPrice */;
const formatRateResult = obj8.formatRate(require(5651) /* formatSingleCurrencyPrice */.formatPrice(amount.amount, currency), SubscriptionIntervalTypes.MONTH, 1);
2026-07-20 16:05:17 +00:00
if (arg1 >= amount.amount) {
const obj1 = { kind: "spent", monthlyText: formatRateResult };
return obj1;
} else {
2026-07-28 08:39:19 +00:00
const tmp12 = require(5652) /* CurrencyCodes */.CurrencyExponents[amount.currency];
2026-07-20 16:05:17 +00:00
let num = 2;
if (null != tmp12) {
num = tmp12;
}
const diff = amount.amount - arg1;
if (diff <= 10 * 10 ** num) {
const obj2 = { kind: "close-to-limit", monthlyText: formatRateResult };
2026-07-23 10:11:24 +00:00
const intl = require(1212) /* getSystemLocale */.intl;
2026-07-20 16:05:17 +00:00
let obj3 = {};
2026-07-28 08:39:19 +00:00
obj3 = require(5651) /* formatSingleCurrencyPrice */;
2026-07-20 16:05:17 +00:00
obj3.amount = obj3.formatPrice(diff, currency);
2026-07-25 08:10:48 +00:00
obj2.remainingText = intl.formatToPlainString(importDefault(2199)["+Q+bU1"], obj3);
2026-07-20 16:05:17 +00:00
obj = obj2;
} else {
obj = { kind: "on", monthlyText: formatRateResult };
}
return obj;
}
2026-07-28 08:39:19 +00:00
const obj9 = require(5651) /* 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-23 10:11:24 +00:00
const items = [_isNativeReflectConstruct];
return require(566) /* initialize */.useStateFromStores(items, () => {
const safetySettings = outer1_3.settings.safetySettings;
2026-07-20 16:05:17 +00:00
let oneTimePurchaseLimit;
if (null != safetySettings) {
const spendingLimitSettings = safetySettings.spendingLimitSettings;
if (null != spendingLimitSettings) {
oneTimePurchaseLimit = spendingLimitSettings.oneTimePurchaseLimit;
}
}
let tmp2 = null;
if (null != oneTimePurchaseLimit) {
const obj = {};
const _Number = Number;
obj.amount = Number(oneTimePurchaseLimit.amount);
obj.currency = oneTimePurchaseLimit.currency;
tmp2 = obj;
}
return tmp2;
2026-07-28 08:39:19 +00:00
}, undefined, require(13837) /* 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) {
const items = [closure_4];
2026-07-23 10:11:24 +00:00
const stateFromStores = require(566) /* initialize */.useStateFromStores(items, () => outer1_4.getMonthlyPurchases());
2026-07-20 16:05:17 +00:00
let total_amount;
if (null != stateFromStores) {
total_amount = stateFromStores.total_amount;
}
let num = 0;
if (null != total_amount) {
num = total_amount;
}
return getSpendingLimitDisplayState(cap, num);
};