// Module ID: 15190 // Function ID: 15191 // Name: SpendingLimitDisplay // Dependencies: [1220, 7811, 1374, 504, 15101, 7511, 7512, 1115, 2482, 2] // Exports: useSpendingLimitDisplayState, useSpendingLimitFromUserSettings // Module 15190 (SpendingLimitDisplay) import initialize from "initialize" /* 504 */; import _modDef2482 from "module_2482" /* 2482 */; import PriceUtils from "PriceUtils" /* 7511 */; import SpendingLimitUtils from "SpendingLimitUtils" /* 15101 */; import UserSettingsProtoStore from "UserSettingsProtoStore" /* 1220 */; import FamilyCenterStore from "FamilyCenterStore" /* 7811 */; require = fn; function getSpendingLimitDisplayState(amount, arg1) { if (null == amount) { return { kind: "off" }; } else if (0 === amount.amount) { return { kind: "blocked" }; } else { const currency = amount.currency; const obj6 = PriceUtils; const formatRateResult = obj6.formatRate(PriceUtils.formatPrice(amount.amount, currency), SubscriptionIntervalTypes.MONTH, 1); if (arg1 >= amount.amount) { const obj2 = { kind: "spent", monthlyText: formatRateResult }; return obj2; } else { let num = tmp5(7512).CurrencyExponents[amount.currency]; if (num == null) { num = 2; } const diff = amount.amount - arg1; if (diff <= 10 * 10 ** num) { const obj3 = { kind: "close-to-limit", monthlyText: formatRateResult, remainingText: null }; const intl = tmp5(1115).intl; const obj4 = { amount: tmp5(7511).formatPrice(diff, currency) }; obj3.remainingText = intl.formatToPlainString(_modDef2482["+Q+bU1"], obj4); let obj = obj3; const tmp5Result = tmp5(7511); } else { obj = { kind: "on", monthlyText: formatRateResult }; } return obj; } } } const SubscriptionIntervalTypes = fn(1374).SubscriptionIntervalTypes; const size = fn(2); const result = size.fileFinishedImporting("modules/parent_tools/SpendingLimitDisplay.tsx"); export const useSpendingLimitFromUserSettings = function useSpendingLimitFromUserSettings() { const items = [UserSettingsProtoStore]; return initialize.useStateFromStores(items, () => { const safetySettings = settings.settings.safetySettings; let oneTimePurchaseLimit; if (safetySettings != null) { const spendingLimitSettings = safetySettings.spendingLimitSettings; if (spendingLimitSettings != null) { oneTimePurchaseLimit = spendingLimitSettings.oneTimePurchaseLimit; } } let tmp2 = null; if (null != oneTimePurchaseLimit) { const obj = { amount: null, currency: null }; const _Number = Number; obj.amount = Number(oneTimePurchaseLimit.amount); obj.currency = oneTimePurchaseLimit.currency; tmp2 = obj; } return tmp2; }, undefined, SpendingLimitUtils.spendingLimitEqual); }; export const CLOSE_TO_LIMIT_THRESHOLD_MAJOR_UNITS = 10; export { getSpendingLimitDisplayState }; export const useSpendingLimitDisplayState = function useSpendingLimitDisplayState(cap) { const items = [FamilyCenterStore]; const stateFromStores = initialize.useStateFromStores(items, () => monthlyPurchases.getMonthlyPurchases()); let num; if (stateFromStores != null) { num = stateFromStores.total_amount; } if (num == null) { num = 0; } return getSpendingLimitDisplayState(cap, num); };