UNPKG

@kirz/react-native-toolkit

Version:

Toolkit to speed up React Native development

57 lines 2.65 kB
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } import { createIntl, createIntlCache } from '@formatjs/intl'; import * as RNLocalize from 'react-native-localize'; import 'intl'; import 'intl/dist/Intl.complete'; const cache = createIntlCache(); const deviceLanguage = RNLocalize.getLocales()[0].languageTag; const intl = createIntl({ locale: deviceLanguage, messages: {} }, cache); export class Product { constructor(obj) { _defineProperty(this, "productId", void 0); _defineProperty(this, "title", void 0); _defineProperty(this, "description", void 0); _defineProperty(this, "price", void 0); _defineProperty(this, "localizedPrice", void 0); _defineProperty(this, "currency", void 0); _defineProperty(this, "consumable", void 0); _defineProperty(this, "originalData", void 0); this.productId = obj.productId; this.title = obj.title; this.description = obj.description; this.price = obj.price; this.currency = obj.currency; this.consumable = obj.consumable; this.originalData = obj.originalData; this.localizedPrice = this.formatPrice(); } formatPrice(options) { return intl.formatNumber(options !== null && options !== void 0 && options.formatter ? options === null || options === void 0 ? void 0 : options.formatter(this.price) : this.price, { style: 'currency', currency: this.currency, compactDisplay: 'short', currencyDisplay: 'symbol', ...(options === null || options === void 0 ? void 0 : options.options) }); } } export class Subscription extends Product { constructor(obj) { super({ ...obj, consumable: false }); _defineProperty(this, "periodUnit", void 0); _defineProperty(this, "numberOfPeriods", void 0); _defineProperty(this, "trial", void 0); this.periodUnit = obj.periodUnit; this.numberOfPeriods = obj.numberOfPeriods; this.trial = obj.trial; } } //# sourceMappingURL=types.js.map