@hayanmind/monetai-react-native 0.3.0 → 0.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/lib/commonjs/MonetaiProvider.js +45 -23
  2. package/lib/commonjs/MonetaiProvider.js.map +1 -1
  3. package/lib/commonjs/PaywallManager.js +63 -0
  4. package/lib/commonjs/PaywallManager.js.map +1 -0
  5. package/lib/commonjs/components/Banner.js +141 -0
  6. package/lib/commonjs/components/Banner.js.map +1 -0
  7. package/lib/commonjs/components/Paywall.js +236 -0
  8. package/lib/commonjs/components/Paywall.js.map +1 -0
  9. package/lib/commonjs/components/paywall-wrappers/CompactPaywallWrapper.js +61 -0
  10. package/lib/commonjs/components/paywall-wrappers/CompactPaywallWrapper.js.map +1 -0
  11. package/lib/commonjs/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js +33 -0
  12. package/lib/commonjs/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js.map +1 -0
  13. package/lib/commonjs/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js +33 -0
  14. package/lib/commonjs/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js.map +1 -0
  15. package/lib/commonjs/components/paywall-wrappers/TextFocusedPaywallWrapper.js +33 -0
  16. package/lib/commonjs/components/paywall-wrappers/TextFocusedPaywallWrapper.js.map +1 -0
  17. package/lib/commonjs/components/paywall-wrappers/index.js +41 -0
  18. package/lib/commonjs/components/paywall-wrappers/index.js.map +1 -0
  19. package/lib/commonjs/constants/paywall.js +11 -0
  20. package/lib/commonjs/constants/paywall.js.map +1 -0
  21. package/lib/commonjs/hooks/useBanner.js +84 -0
  22. package/lib/commonjs/hooks/useBanner.js.map +1 -0
  23. package/lib/commonjs/hooks/useInterval.js +34 -0
  24. package/lib/commonjs/hooks/useInterval.js.map +1 -0
  25. package/lib/commonjs/hooks/usePaywall.js +60 -0
  26. package/lib/commonjs/hooks/usePaywall.js.map +1 -0
  27. package/lib/commonjs/index.js +54 -1
  28. package/lib/commonjs/index.js.map +1 -1
  29. package/lib/commonjs/lib.js +2 -2
  30. package/lib/commonjs/lib.js.map +1 -1
  31. package/lib/module/MonetaiProvider.js +48 -25
  32. package/lib/module/MonetaiProvider.js.map +1 -1
  33. package/lib/module/PaywallManager.js +58 -0
  34. package/lib/module/PaywallManager.js.map +1 -0
  35. package/lib/module/components/Banner.js +136 -0
  36. package/lib/module/components/Banner.js.map +1 -0
  37. package/lib/module/components/Paywall.js +230 -0
  38. package/lib/module/components/Paywall.js.map +1 -0
  39. package/lib/module/components/paywall-wrappers/CompactPaywallWrapper.js +55 -0
  40. package/lib/module/components/paywall-wrappers/CompactPaywallWrapper.js.map +1 -0
  41. package/lib/module/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js +27 -0
  42. package/lib/module/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js.map +1 -0
  43. package/lib/module/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js +27 -0
  44. package/lib/module/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js.map +1 -0
  45. package/lib/module/components/paywall-wrappers/TextFocusedPaywallWrapper.js +27 -0
  46. package/lib/module/components/paywall-wrappers/TextFocusedPaywallWrapper.js.map +1 -0
  47. package/lib/module/components/paywall-wrappers/index.js +11 -0
  48. package/lib/module/components/paywall-wrappers/index.js.map +1 -0
  49. package/lib/module/constants/paywall.js +7 -0
  50. package/lib/module/constants/paywall.js.map +1 -0
  51. package/lib/module/hooks/useBanner.js +79 -0
  52. package/lib/module/hooks/useBanner.js.map +1 -0
  53. package/lib/module/hooks/useInterval.js +30 -0
  54. package/lib/module/hooks/useInterval.js.map +1 -0
  55. package/lib/module/hooks/usePaywall.js +55 -0
  56. package/lib/module/hooks/usePaywall.js.map +1 -0
  57. package/lib/module/index.js +8 -1
  58. package/lib/module/index.js.map +1 -1
  59. package/lib/module/lib.js +2 -2
  60. package/lib/module/lib.js.map +1 -1
  61. package/lib/typescript/commonjs/src/MonetaiProvider.d.ts +3 -7
  62. package/lib/typescript/commonjs/src/MonetaiProvider.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/src/PaywallManager.d.ts +7 -0
  64. package/lib/typescript/commonjs/src/PaywallManager.d.ts.map +1 -0
  65. package/lib/typescript/commonjs/src/components/Banner.d.ts +10 -0
  66. package/lib/typescript/commonjs/src/components/Banner.d.ts.map +1 -0
  67. package/lib/typescript/commonjs/src/components/Paywall.d.ts +14 -0
  68. package/lib/typescript/commonjs/src/components/Paywall.d.ts.map +1 -0
  69. package/lib/typescript/commonjs/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts +8 -0
  70. package/lib/typescript/commonjs/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts.map +1 -0
  71. package/lib/typescript/commonjs/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts +8 -0
  72. package/lib/typescript/commonjs/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts +8 -0
  74. package/lib/typescript/commonjs/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts +8 -0
  76. package/lib/typescript/commonjs/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts.map +1 -0
  77. package/lib/typescript/commonjs/src/components/paywall-wrappers/index.d.ts +6 -0
  78. package/lib/typescript/commonjs/src/components/paywall-wrappers/index.d.ts.map +1 -0
  79. package/lib/typescript/commonjs/src/constants/paywall.d.ts +3 -0
  80. package/lib/typescript/commonjs/src/constants/paywall.d.ts.map +1 -0
  81. package/lib/typescript/commonjs/src/hooks/useBanner.d.ts +14 -0
  82. package/lib/typescript/commonjs/src/hooks/useBanner.d.ts.map +1 -0
  83. package/lib/typescript/commonjs/src/hooks/useInterval.d.ts +7 -0
  84. package/lib/typescript/commonjs/src/hooks/useInterval.d.ts.map +1 -0
  85. package/lib/typescript/commonjs/src/hooks/usePaywall.d.ts +15 -0
  86. package/lib/typescript/commonjs/src/hooks/usePaywall.d.ts.map +1 -0
  87. package/lib/typescript/commonjs/src/index.d.ts +7 -1
  88. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  89. package/lib/typescript/commonjs/src/types.d.ts +48 -2
  90. package/lib/typescript/commonjs/src/types.d.ts.map +1 -1
  91. package/lib/typescript/module/src/MonetaiProvider.d.ts +3 -7
  92. package/lib/typescript/module/src/MonetaiProvider.d.ts.map +1 -1
  93. package/lib/typescript/module/src/PaywallManager.d.ts +7 -0
  94. package/lib/typescript/module/src/PaywallManager.d.ts.map +1 -0
  95. package/lib/typescript/module/src/components/Banner.d.ts +10 -0
  96. package/lib/typescript/module/src/components/Banner.d.ts.map +1 -0
  97. package/lib/typescript/module/src/components/Paywall.d.ts +14 -0
  98. package/lib/typescript/module/src/components/Paywall.d.ts.map +1 -0
  99. package/lib/typescript/module/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts +8 -0
  100. package/lib/typescript/module/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts.map +1 -0
  101. package/lib/typescript/module/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts +8 -0
  102. package/lib/typescript/module/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts.map +1 -0
  103. package/lib/typescript/module/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts +8 -0
  104. package/lib/typescript/module/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts.map +1 -0
  105. package/lib/typescript/module/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts +8 -0
  106. package/lib/typescript/module/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts.map +1 -0
  107. package/lib/typescript/module/src/components/paywall-wrappers/index.d.ts +6 -0
  108. package/lib/typescript/module/src/components/paywall-wrappers/index.d.ts.map +1 -0
  109. package/lib/typescript/module/src/constants/paywall.d.ts +3 -0
  110. package/lib/typescript/module/src/constants/paywall.d.ts.map +1 -0
  111. package/lib/typescript/module/src/hooks/useBanner.d.ts +14 -0
  112. package/lib/typescript/module/src/hooks/useBanner.d.ts.map +1 -0
  113. package/lib/typescript/module/src/hooks/useInterval.d.ts +7 -0
  114. package/lib/typescript/module/src/hooks/useInterval.d.ts.map +1 -0
  115. package/lib/typescript/module/src/hooks/usePaywall.d.ts +15 -0
  116. package/lib/typescript/module/src/hooks/usePaywall.d.ts.map +1 -0
  117. package/lib/typescript/module/src/index.d.ts +7 -1
  118. package/lib/typescript/module/src/index.d.ts.map +1 -1
  119. package/lib/typescript/module/src/types.d.ts +48 -2
  120. package/lib/typescript/module/src/types.d.ts.map +1 -1
  121. package/package.json +4 -2
  122. package/src/MonetaiProvider.tsx +72 -29
  123. package/src/PaywallManager.tsx +61 -0
  124. package/src/components/Banner.tsx +152 -0
  125. package/src/components/Paywall.tsx +254 -0
  126. package/src/components/paywall-wrappers/CompactPaywallWrapper.tsx +58 -0
  127. package/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.tsx +30 -0
  128. package/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.tsx +30 -0
  129. package/src/components/paywall-wrappers/TextFocusedPaywallWrapper.tsx +30 -0
  130. package/src/components/paywall-wrappers/index.ts +8 -0
  131. package/src/constants/paywall.ts +4 -0
  132. package/src/hooks/useBanner.ts +112 -0
  133. package/src/hooks/useInterval.ts +29 -0
  134. package/src/hooks/usePaywall.ts +73 -0
  135. package/src/index.tsx +36 -1
  136. package/src/types.ts +65 -2
@@ -8,10 +8,15 @@ var _react = require("react");
8
8
  var _reactNative = require("react-native");
9
9
  var _MonetaiSDK = _interopRequireDefault(require("./MonetaiSDK.js"));
10
10
  var _ApiRequest = require("./ApiRequest.js");
11
+ var _PaywallManager = _interopRequireDefault(require("./PaywallManager.js"));
12
+ var _dayjs = _interopRequireDefault(require("dayjs"));
13
+ var _isBetween = _interopRequireDefault(require("dayjs/plugin/isBetween"));
11
14
  var _jsxRuntime = require("react/jsx-runtime");
12
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
16
  // MonetaiProvider.tsx
14
17
 
18
+ // dayjs 플러그인 확장
19
+ _dayjs.default.extend(_isBetween.default);
15
20
  const styles = _reactNative.StyleSheet.create({
16
21
  container: {
17
22
  flex: 1
@@ -23,45 +28,62 @@ const styles = _reactNative.StyleSheet.create({
23
28
  */
24
29
  function MonetaiProvider({
25
30
  children,
26
- onDiscountInfoChange
31
+ onDiscountInfoChange,
32
+ paywallConfig // 통합된 설정
27
33
  }) {
28
34
  const [discountInfo, setDiscountInfo] = (0, _react.useState)(null);
35
+ const onLoadDiscountInfo = (0, _react.useCallback)(async () => {
36
+ const userId = await _MonetaiSDK.default.getUserId();
37
+ const sdkKey = await _MonetaiSDK.default.getSdkKey();
38
+ if (userId == null || sdkKey == null) {
39
+ console.warn('onLoadDiscountInfo: User ID or SDK Key is not set.');
40
+ return;
41
+ }
42
+ const discount = await (0, _ApiRequest.getAppUserDiscount)({
43
+ userId,
44
+ sdkKey
45
+ });
46
+ if (discount != null && discount.app_user_id !== userId) {
47
+ return;
48
+ }
49
+ const newDiscountInfo = discount == null ? null : {
50
+ startedAt: new Date(discount.started_at),
51
+ endedAt: new Date(discount.ended_at),
52
+ userId: discount.app_user_id,
53
+ sdkKey: discount.sdk_key
54
+ };
55
+ setDiscountInfo(newDiscountInfo);
56
+ }, []);
29
57
  (0, _react.useEffect)(() => {
30
- const emitter = _MonetaiSDK.default.getEmitter();
31
- const onLoadDiscountInfo = async () => {
58
+ (async () => {
32
59
  const userId = await _MonetaiSDK.default.getUserId();
33
60
  const sdkKey = await _MonetaiSDK.default.getSdkKey();
34
- if (userId == null || sdkKey == null) {
35
- console.warn('onLoadDiscountInfo: User ID or SDK Key is not set.');
36
- return;
61
+ if (userId != null && sdkKey != null) {
62
+ onLoadDiscountInfo();
37
63
  }
38
- const discount = await (0, _ApiRequest.getAppUserDiscount)({
39
- userId,
40
- sdkKey
41
- });
42
- if (discount != null && discount.app_user_id !== userId) {
43
- return;
44
- }
45
- setDiscountInfo(discount == null ? null : {
46
- startedAt: discount.started_at,
47
- endedAt: discount.ended_at,
48
- userId: discount.app_user_id,
49
- sdkKey: discount.sdk_key
50
- });
51
- };
64
+ })();
65
+ }, [onLoadDiscountInfo]);
66
+ (0, _react.useEffect)(() => {
67
+ const emitter = _MonetaiSDK.default.getEmitter();
52
68
  emitter.on('LOAD_DISCOUNT_INFO', onLoadDiscountInfo);
53
69
  return () => {
54
70
  emitter.off('LOAD_DISCOUNT_INFO', onLoadDiscountInfo);
55
71
  };
56
- }, []);
72
+ }, [onLoadDiscountInfo]);
57
73
  (0, _react.useEffect)(() => {
58
74
  if (onDiscountInfoChange) {
59
75
  onDiscountInfoChange(discountInfo);
60
76
  }
61
77
  }, [onDiscountInfoChange, discountInfo]);
62
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
78
+ const isPromotionActive = (0, _react.useMemo)(() => {
79
+ return paywallConfig?.enabled && !paywallConfig.isSubscriber && discountInfo != null && (0, _dayjs.default)().isBetween((0, _dayjs.default)(discountInfo.startedAt), (0, _dayjs.default)(discountInfo.endedAt), null, '[]');
80
+ }, [discountInfo, paywallConfig]);
81
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
63
82
  style: styles.container,
64
- children: children
83
+ children: [children, isPromotionActive && paywallConfig != null && /*#__PURE__*/(0, _jsxRuntime.jsx)(_PaywallManager.default, {
84
+ paywallConfig: paywallConfig,
85
+ discountInfo: discountInfo
86
+ })]
65
87
  });
66
88
  }
67
89
  //# sourceMappingURL=MonetaiProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_MonetaiSDK","_interopRequireDefault","_ApiRequest","_jsxRuntime","e","__esModule","default","styles","StyleSheet","create","container","flex","MonetaiProvider","children","onDiscountInfoChange","discountInfo","setDiscountInfo","useState","useEffect","emitter","monetaiSDK","getEmitter","onLoadDiscountInfo","userId","getUserId","sdkKey","getSdkKey","console","warn","discount","getAppUserDiscount","app_user_id","startedAt","started_at","endedAt","ended_at","sdk_key","on","off","jsx","View","style"],"sourceRoot":"../../src","sources":["MonetaiProvider.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,WAAA,GAAAJ,OAAA;AAAkD,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAG,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AALlD;;AAOA,MAAMG,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,SAAS,EAAE;IAAEC,IAAI,EAAE;EAAE;AACvB,CAAC,CAAC;AAYF;AACA;AACA;AACA;AACe,SAASC,eAAeA,CAAC;EACtCC,QAAQ;EACRC;AACoB,CAAC,EAAE;EACvB,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAC,eAAQ,EAAsB,IAAI,CAAC;EAE3E,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,OAAO,GAAGC,mBAAU,CAACC,UAAU,CAAC,CAAC;IACvC,MAAMC,kBAAkB,GAAG,MAAAA,CAAA,KAAY;MACrC,MAAMC,MAAM,GAAG,MAAMH,mBAAU,CAACI,SAAS,CAAC,CAAC;MAC3C,MAAMC,MAAM,GAAG,MAAML,mBAAU,CAACM,SAAS,CAAC,CAAC;MAE3C,IAAIH,MAAM,IAAI,IAAI,IAAIE,MAAM,IAAI,IAAI,EAAE;QACpCE,OAAO,CAACC,IAAI,CAAC,oDAAoD,CAAC;QAClE;MACF;MAEA,MAAMC,QAAQ,GAAG,MAAM,IAAAC,8BAAkB,EAAC;QAAEP,MAAM;QAAEE;MAAO,CAAC,CAAC;MAC7D,IAAII,QAAQ,IAAI,IAAI,IAAIA,QAAQ,CAACE,WAAW,KAAKR,MAAM,EAAE;QACvD;MACF;MAEAP,eAAe,CACba,QAAQ,IAAI,IAAI,GACZ,IAAI,GACJ;QACEG,SAAS,EAAEH,QAAQ,CAACI,UAAU;QAC9BC,OAAO,EAAEL,QAAQ,CAACM,QAAQ;QAC1BZ,MAAM,EAAEM,QAAQ,CAACE,WAAW;QAC5BN,MAAM,EAAEI,QAAQ,CAACO;MACnB,CACN,CAAC;IACH,CAAC;IAEDjB,OAAO,CAACkB,EAAE,CAAC,oBAAoB,EAAEf,kBAAkB,CAAC;IAEpD,OAAO,MAAM;MACXH,OAAO,CAACmB,GAAG,CAAC,oBAAoB,EAAEhB,kBAAkB,CAAC;IACvD,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAJ,gBAAS,EAAC,MAAM;IACd,IAAIJ,oBAAoB,EAAE;MACxBA,oBAAoB,CAACC,YAAY,CAAC;IACpC;EACF,CAAC,EAAE,CAACD,oBAAoB,EAAEC,YAAY,CAAC,CAAC;EAExC,oBACE,IAAAZ,WAAA,CAAAoC,GAAA,EAACxC,YAAA,CAAAyC,IAAI;IAACC,KAAK,EAAElC,MAAM,CAACG,SAAU;IAAAG,QAAA,EAE3BA;EAAQ,CACL,CAAC;AAEX","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_MonetaiSDK","_interopRequireDefault","_ApiRequest","_PaywallManager","_dayjs","_isBetween","_jsxRuntime","e","__esModule","default","dayjs","extend","isBetween","styles","StyleSheet","create","container","flex","MonetaiProvider","children","onDiscountInfoChange","paywallConfig","discountInfo","setDiscountInfo","useState","onLoadDiscountInfo","useCallback","userId","monetaiSDK","getUserId","sdkKey","getSdkKey","console","warn","discount","getAppUserDiscount","app_user_id","newDiscountInfo","startedAt","Date","started_at","endedAt","ended_at","sdk_key","useEffect","emitter","getEmitter","on","off","isPromotionActive","useMemo","enabled","isSubscriber","jsxs","View","style","jsx"],"sourceRoot":"../../src","sources":["MonetaiProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _Banner = _interopRequireDefault(require("./components/Banner.js"));
8
+ var _Paywall = _interopRequireDefault(require("./components/Paywall.js"));
9
+ var _useBanner = require("./hooks/useBanner.js");
10
+ var _usePaywall = require("./hooks/usePaywall.js");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ const PaywallManager = ({
14
+ paywallConfig,
15
+ discountInfo
16
+ }) => {
17
+ // 배너 상태 관리 및 자동 표시 훅 사용
18
+ const {
19
+ bannerVisible,
20
+ bannerParams
21
+ } = (0, _useBanner.useBanner)({
22
+ paywallConfig,
23
+ discountInfo
24
+ });
25
+
26
+ // 페이월 상태 관리 훅 사용
27
+ const {
28
+ paywallVisible,
29
+ paywallParams,
30
+ openPaywall,
31
+ closePaywall
32
+ } = (0, _usePaywall.usePaywall)({
33
+ discountInfo,
34
+ paywallConfig
35
+ });
36
+
37
+ // 페이월 열기 (배너 닫기 + 페이월 열기)
38
+ const handlePaywall = () => {
39
+ openPaywall(); // 페이월 열기
40
+ };
41
+
42
+ // 구매 처리
43
+ const handlePurchase = () => {
44
+ paywallConfig?.onPurchase?.(closePaywall);
45
+ };
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
47
+ children: [bannerParams != null && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Banner.default, {
48
+ visible: bannerVisible,
49
+ onPaywall: handlePaywall,
50
+ bannerParams: bannerParams
51
+ }), paywallParams && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Paywall.default, {
52
+ visible: paywallVisible,
53
+ params: paywallParams,
54
+ onClose: closePaywall,
55
+ onPurchase: handlePurchase,
56
+ onTermsOfService: paywallConfig?.onTermsOfService,
57
+ onPrivacyPolicy: paywallConfig?.onPrivacyPolicy,
58
+ preload: true
59
+ })]
60
+ });
61
+ };
62
+ var _default = exports.default = PaywallManager;
63
+ //# sourceMappingURL=PaywallManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Banner","_interopRequireDefault","require","_Paywall","_useBanner","_usePaywall","_jsxRuntime","e","__esModule","default","PaywallManager","paywallConfig","discountInfo","bannerVisible","bannerParams","useBanner","paywallVisible","paywallParams","openPaywall","closePaywall","usePaywall","handlePaywall","handlePurchase","onPurchase","jsxs","Fragment","children","jsx","visible","onPaywall","params","onClose","onTermsOfService","onPrivacyPolicy","preload","_default","exports"],"sourceRoot":"../../src","sources":["PaywallManager.tsx"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAAgD,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGhD,MAAMG,cAAc,GAAGA,CAAC;EACtBC,aAAa;EACbC;AAIF,CAAC,KAAK;EACJ;EACA,MAAM;IAAEC,aAAa;IAAEC;EAAa,CAAC,GAAG,IAAAC,oBAAS,EAAC;IAChDJ,aAAa;IACbC;EACF,CAAC,CAAC;;EAEF;EACA,MAAM;IAAEI,cAAc;IAAEC,aAAa;IAAEC,WAAW;IAAEC;EAAa,CAAC,GAChE,IAAAC,sBAAU,EAAC;IACTR,YAAY;IACZD;EACF,CAAC,CAAC;;EAEJ;EACA,MAAMU,aAAa,GAAGA,CAAA,KAAM;IAC1BH,WAAW,CAAC,CAAC,CAAC,CAAC;EACjB,CAAC;;EAED;EACA,MAAMI,cAAc,GAAGA,CAAA,KAAM;IAC3BX,aAAa,EAAEY,UAAU,GAAGJ,YAAY,CAAC;EAC3C,CAAC;EAED,oBACE,IAAAb,WAAA,CAAAkB,IAAA,EAAAlB,WAAA,CAAAmB,QAAA;IAAAC,QAAA,GACGZ,YAAY,IAAI,IAAI,iBACnB,IAAAR,WAAA,CAAAqB,GAAA,EAAC3B,OAAA,CAAAS,OAAM;MACLmB,OAAO,EAAEf,aAAc;MACvBgB,SAAS,EAAER,aAAc;MACzBP,YAAY,EAAEA;IAAa,CAC5B,CACF,EACAG,aAAa,iBACZ,IAAAX,WAAA,CAAAqB,GAAA,EAACxB,QAAA,CAAAM,OAAO;MACNmB,OAAO,EAAEZ,cAAe;MACxBc,MAAM,EAAEb,aAAc;MACtBc,OAAO,EAAEZ,YAAa;MACtBI,UAAU,EAAED,cAAe;MAC3BU,gBAAgB,EAAErB,aAAa,EAAEqB,gBAAiB;MAClDC,eAAe,EAAEtB,aAAa,EAAEsB,eAAgB;MAChDC,OAAO;IAAA,CACR,CACF;EAAA,CACD,CAAC;AAEP,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA3B,OAAA,GAEaC,cAAc","ignoreList":[]}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeWebview = require("react-native-webview");
10
+ var _paywall = require("../constants/paywall.js");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ const MESSAGE_KEY_CLICK_BANNER = 'CLICK_BANNER';
14
+ const Banner = ({
15
+ visible,
16
+ onPaywall,
17
+ bannerParams
18
+ }) => {
19
+ const [isLoaded, setIsLoaded] = (0, _react.useState)(false);
20
+ const [hasWebViewError, setHasWebViewError] = (0, _react.useState)(false);
21
+ const handleWebViewMessage = event => {
22
+ const message = event.nativeEvent.data;
23
+ if (message === MESSAGE_KEY_CLICK_BANNER) {
24
+ onPaywall();
25
+ }
26
+ };
27
+ const getBannerWebViewUrl = () => {
28
+ // Banner 컴포넌트에서 직접 URL 생성
29
+ const baseUrl = `${_paywall.PAYWELL_BASE_URL}/banner`;
30
+ const bannerStyle = bannerParams.style;
31
+
32
+ // 기본 파라미터들
33
+ const params = new URLSearchParams();
34
+ params.append('discount', bannerParams.discountPercent.toString());
35
+ params.append('locale', bannerParams.locale);
36
+ params.append('endedAt', bannerParams.endedAt.toISOString());
37
+ const url = `${baseUrl}/${bannerStyle}?${params.toString()}`;
38
+ return url;
39
+ };
40
+ const isCompactStyle = bannerParams.style === 'compact';
41
+ const isKeyFeatureSummaryStyle = bannerParams.style === 'key-feature-summary';
42
+ const isHighlightBenefitsStyle = bannerParams.style === 'highlight-benefits';
43
+ const isTextFocusedStyle = bannerParams.style === 'text-focused';
44
+ if (!visible || hasWebViewError) return null;
45
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
46
+ style: [styles.bannerContainer, {
47
+ bottom: bannerParams.bottom ?? 20
48
+ }, bannerParams.zIndex != null && {
49
+ zIndex: bannerParams.zIndex
50
+ }, bannerParams.elevation != null && {
51
+ elevation: bannerParams.elevation
52
+ }, isCompactStyle && styles.compactBannerContainer, isKeyFeatureSummaryStyle && styles.keyFeatureSummaryBannerContainer, isHighlightBenefitsStyle && styles.highlightBenefitsBannerContainer, isCompactStyle && styles.noShadow, isTextFocusedStyle && styles.redShadow, isKeyFeatureSummaryStyle && styles.blackShadow, isHighlightBenefitsStyle && styles.blackShadow, isLoaded ? styles.visible : styles.hidden],
53
+ pointerEvents: isLoaded ? 'auto' : 'none',
54
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
55
+ style: styles.innerRoundedContainer,
56
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeWebview.WebView, {
57
+ source: {
58
+ uri: getBannerWebViewUrl()
59
+ },
60
+ onMessage: handleWebViewMessage,
61
+ onLoadStart: () => setIsLoaded(false),
62
+ onLoadEnd: () => setIsLoaded(true),
63
+ onError: () => {
64
+ console.error('[MonetaiSDK] Banner WebView onError');
65
+ setHasWebViewError(true);
66
+ },
67
+ onHttpError: () => {
68
+ console.error('[MonetaiSDK] Banner WebView onHttpError');
69
+ setHasWebViewError(true);
70
+ },
71
+ javaScriptEnabled: true,
72
+ userAgent: _paywall.WEBVIEW_USER_AGENT,
73
+ style: styles.webView
74
+ })
75
+ })
76
+ });
77
+ };
78
+ const styles = _reactNative.StyleSheet.create({
79
+ bannerContainer: {
80
+ position: 'absolute',
81
+ left: 12,
82
+ right: 12,
83
+ height: 45,
84
+ // 기본 높이
85
+ backgroundColor: 'white',
86
+ borderRadius: 12,
87
+ // 둥근 모서리
88
+ shadowColor: 'rgba(0, 0, 0, 0.25)',
89
+ shadowOffset: {
90
+ width: 0,
91
+ height: 4
92
+ },
93
+ shadowOpacity: 1,
94
+ shadowRadius: 10,
95
+ elevation: 8,
96
+ flexDirection: 'row',
97
+ alignItems: 'center',
98
+ justifyContent: 'center',
99
+ zIndex: 1000
100
+ },
101
+ compactBannerContainer: {
102
+ height: 68 // compact 스타일일 때 높이
103
+ },
104
+ noShadow: {
105
+ shadowColor: 'transparent',
106
+ shadowOffset: {
107
+ width: 0,
108
+ height: 0
109
+ },
110
+ shadowOpacity: 0,
111
+ shadowRadius: 0
112
+ },
113
+ webView: {
114
+ flex: 1
115
+ },
116
+ visible: {
117
+ opacity: 1
118
+ },
119
+ hidden: {
120
+ opacity: 0
121
+ },
122
+ innerRoundedContainer: {
123
+ flex: 1,
124
+ borderRadius: 12,
125
+ overflow: 'hidden'
126
+ },
127
+ keyFeatureSummaryBannerContainer: {
128
+ height: 56 // key-feature-summary 스타일일 때 높이
129
+ },
130
+ highlightBenefitsBannerContainer: {
131
+ height: 56 // highlight-benefits 스타일일 때 높이
132
+ },
133
+ blackShadow: {
134
+ shadowColor: 'rgba(0, 0, 0, 0.25)'
135
+ },
136
+ redShadow: {
137
+ shadowColor: 'rgba(228, 78, 72, 0.25)'
138
+ }
139
+ });
140
+ var _default = exports.default = Banner;
141
+ //# sourceMappingURL=Banner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_paywall","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MESSAGE_KEY_CLICK_BANNER","Banner","visible","onPaywall","bannerParams","isLoaded","setIsLoaded","useState","hasWebViewError","setHasWebViewError","handleWebViewMessage","event","message","nativeEvent","data","getBannerWebViewUrl","baseUrl","PAYWELL_BASE_URL","bannerStyle","style","params","URLSearchParams","append","discountPercent","toString","locale","endedAt","toISOString","url","isCompactStyle","isKeyFeatureSummaryStyle","isHighlightBenefitsStyle","isTextFocusedStyle","jsx","View","styles","bannerContainer","bottom","zIndex","elevation","compactBannerContainer","keyFeatureSummaryBannerContainer","highlightBenefitsBannerContainer","noShadow","redShadow","blackShadow","hidden","pointerEvents","children","innerRoundedContainer","WebView","source","uri","onMessage","onLoadStart","onLoadEnd","onError","console","error","onHttpError","javaScriptEnabled","userAgent","WEBVIEW_USER_AGENT","webView","StyleSheet","create","position","left","right","height","backgroundColor","borderRadius","shadowColor","shadowOffset","width","shadowOpacity","shadowRadius","flexDirection","alignItems","justifyContent","flex","opacity","overflow","_default","exports"],"sourceRoot":"../../../src","sources":["components/Banner.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeWebview = require("react-native-webview");
10
+ var _paywall = require("../constants/paywall.js");
11
+ var _CompactPaywallWrapper = _interopRequireDefault(require("./paywall-wrappers/CompactPaywallWrapper.js"));
12
+ var _HighlightBenefitsPaywallWrapper = _interopRequireDefault(require("./paywall-wrappers/HighlightBenefitsPaywallWrapper.js"));
13
+ var _KeyFeatureSummaryPaywallWrapper = _interopRequireDefault(require("./paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js"));
14
+ var _TextFocusedPaywallWrapper = _interopRequireDefault(require("./paywall-wrappers/TextFocusedPaywallWrapper.js"));
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
18
+ const MESSAGE_KEY_PURCHASE_BUTTON = 'CLICK_PURCHASE_BUTTON';
19
+ const MESSAGE_KEY_CLOSE_BUTTON = 'CLICK_CLOSE_BUTTON';
20
+ const MESSAGE_KEY_TERMS_OF_SERVICE = 'CLICK_TERMS_OF_SERVICE';
21
+ const MESSAGE_KEY_PRIVACY_POLICY = 'CLICK_PRIVACY_POLICY';
22
+ const Paywall = ({
23
+ visible,
24
+ preload,
25
+ onClose,
26
+ onPurchase,
27
+ onTermsOfService,
28
+ onPrivacyPolicy,
29
+ params
30
+ }) => {
31
+ const [isLoaded, setIsLoaded] = (0, _react.useState)(false);
32
+ const [hasWebViewError, setHasWebViewError] = (0, _react.useState)(false);
33
+ const handleWebViewMessage = event => {
34
+ switch (event.nativeEvent.data) {
35
+ case MESSAGE_KEY_PURCHASE_BUTTON:
36
+ onPurchase();
37
+ break;
38
+ case MESSAGE_KEY_CLOSE_BUTTON:
39
+ onClose();
40
+ break;
41
+ case MESSAGE_KEY_TERMS_OF_SERVICE:
42
+ onTermsOfService?.();
43
+ break;
44
+ case MESSAGE_KEY_PRIVACY_POLICY:
45
+ onPrivacyPolicy?.();
46
+ break;
47
+ }
48
+ };
49
+ const getPaywallWebViewUrl = () => {
50
+ // monetai-web의 현재 구조에 맞춰 URL 생성
51
+ // 각 스타일별로 별도의 페이지가 있으므로 직접 스타일을 URL에 포함
52
+ const baseUrl = `${_paywall.PAYWELL_BASE_URL}/paywall`;
53
+ const paywallStyle = params.style;
54
+ const searchParams = new URLSearchParams();
55
+ if (params.discountPercent) {
56
+ searchParams.append('discount', params.discountPercent);
57
+ }
58
+ if (params.endedAt) {
59
+ searchParams.append('endedAt', params.endedAt);
60
+ }
61
+ if (params.regularPrice) {
62
+ searchParams.append('regularPrice', params.regularPrice);
63
+ }
64
+ if (params.discountedPrice) {
65
+ searchParams.append('discountedPrice', params.discountedPrice);
66
+ }
67
+ if (params.locale) {
68
+ searchParams.append('locale', params.locale);
69
+ }
70
+ if (params.features) {
71
+ searchParams.append('features', JSON.stringify(params.features));
72
+ }
73
+ const queryString = searchParams.toString();
74
+ const url = `${baseUrl}/${paywallStyle}${queryString ? `?${queryString}` : ''}`;
75
+ return url;
76
+ };
77
+
78
+ // 프리로드 옵션이 없고 보이지도 않으면 렌더하지 않음
79
+ if (!visible && !preload) return null;
80
+
81
+ // 스타일에 따른 래퍼 선택
82
+ const getPaywallWrapper = () => {
83
+ const style = params.style;
84
+ const url = getPaywallWebViewUrl();
85
+
86
+ // 공통 WebView 컴포넌트
87
+ const commonWebView = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
88
+ children: [!isLoaded && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
89
+ style: styles.loadingContainer,
90
+ pointerEvents: "none",
91
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
92
+ size: "small"
93
+ })
94
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeWebview.WebView, {
95
+ source: {
96
+ uri: url
97
+ },
98
+ onMessage: handleWebViewMessage,
99
+ onLoadStart: () => {
100
+ setIsLoaded(false);
101
+ },
102
+ onLoadEnd: () => {
103
+ setIsLoaded(true);
104
+ },
105
+ onError: () => {
106
+ console.error('[MonetaiSDK] Paywall WebView onError');
107
+ setIsLoaded(true);
108
+ setHasWebViewError(true);
109
+ },
110
+ onHttpError: () => {
111
+ console.error('[MonetaiSDK] Paywall WebView onHttpError');
112
+ setIsLoaded(true);
113
+ setHasWebViewError(true);
114
+ },
115
+ javaScriptEnabled: true,
116
+ userAgent: _paywall.WEBVIEW_USER_AGENT,
117
+ style: [styles.webView, !isLoaded && styles.webViewHidden]
118
+ }), hasWebViewError && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
119
+ style: styles.errorOverlay,
120
+ pointerEvents: "auto",
121
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
122
+ style: styles.errorCard,
123
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
124
+ style: styles.errorTitle,
125
+ children: "Failed to load"
126
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
127
+ style: styles.errorMessage,
128
+ children: "An unexpected error occurred while loading the paywall."
129
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
130
+ style: styles.errorButton,
131
+ onPress: onClose,
132
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
133
+ style: styles.errorButtonText,
134
+ children: "Close"
135
+ })
136
+ })]
137
+ })
138
+ })]
139
+ });
140
+ switch (style) {
141
+ case 'compact':
142
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CompactPaywallWrapper.default, {
143
+ onClose: onClose,
144
+ children: commonWebView
145
+ });
146
+ case 'highlight-benefits':
147
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_HighlightBenefitsPaywallWrapper.default, {
148
+ onClose: onClose,
149
+ children: commonWebView
150
+ });
151
+ case 'key-feature-summary':
152
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyFeatureSummaryPaywallWrapper.default, {
153
+ onClose: onClose,
154
+ children: commonWebView
155
+ });
156
+ case 'text-focused':
157
+ default:
158
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextFocusedPaywallWrapper.default, {
159
+ onClose: onClose,
160
+ children: commonWebView
161
+ });
162
+ }
163
+ };
164
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
165
+ style: [styles.overlayContainer, params.zIndex != null && {
166
+ zIndex: params.zIndex
167
+ }, params.elevation != null && {
168
+ elevation: params.elevation
169
+ }, !visible && styles.overlayHidden],
170
+ pointerEvents: visible ? 'auto' : 'none',
171
+ children: getPaywallWrapper()
172
+ });
173
+ };
174
+ const styles = _reactNative.StyleSheet.create({
175
+ webView: {
176
+ flex: 1
177
+ },
178
+ webViewHidden: {
179
+ opacity: 0
180
+ },
181
+ overlayContainer: {
182
+ position: 'absolute',
183
+ top: 0,
184
+ left: 0,
185
+ right: 0,
186
+ bottom: 0,
187
+ zIndex: 2000,
188
+ elevation: 16
189
+ },
190
+ overlayHidden: {
191
+ opacity: 0
192
+ },
193
+ loadingContainer: {
194
+ ..._reactNative.StyleSheet.absoluteFillObject,
195
+ alignItems: 'center',
196
+ justifyContent: 'center',
197
+ backgroundColor: 'white'
198
+ },
199
+ errorOverlay: {
200
+ ..._reactNative.StyleSheet.absoluteFillObject,
201
+ backgroundColor: 'rgba(0,0,0,0.4)',
202
+ alignItems: 'center',
203
+ justifyContent: 'center'
204
+ },
205
+ errorCard: {
206
+ width: '80%',
207
+ backgroundColor: 'white',
208
+ borderRadius: 12,
209
+ padding: 16,
210
+ alignItems: 'center'
211
+ },
212
+ errorTitle: {
213
+ fontSize: 16,
214
+ fontWeight: '600',
215
+ marginBottom: 8
216
+ },
217
+ errorMessage: {
218
+ fontSize: 13,
219
+ color: '#666',
220
+ textAlign: 'center',
221
+ marginBottom: 12
222
+ },
223
+ errorButton: {
224
+ marginTop: 4,
225
+ backgroundColor: '#111827',
226
+ borderRadius: 8,
227
+ paddingHorizontal: 16,
228
+ paddingVertical: 10
229
+ },
230
+ errorButtonText: {
231
+ color: 'white',
232
+ fontWeight: '600'
233
+ }
234
+ });
235
+ var _default = exports.default = Paywall;
236
+ //# sourceMappingURL=Paywall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_paywall","_CompactPaywallWrapper","_interopRequireDefault","_HighlightBenefitsPaywallWrapper","_KeyFeatureSummaryPaywallWrapper","_TextFocusedPaywallWrapper","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MESSAGE_KEY_PURCHASE_BUTTON","MESSAGE_KEY_CLOSE_BUTTON","MESSAGE_KEY_TERMS_OF_SERVICE","MESSAGE_KEY_PRIVACY_POLICY","Paywall","visible","preload","onClose","onPurchase","onTermsOfService","onPrivacyPolicy","params","isLoaded","setIsLoaded","useState","hasWebViewError","setHasWebViewError","handleWebViewMessage","event","nativeEvent","data","getPaywallWebViewUrl","baseUrl","PAYWELL_BASE_URL","paywallStyle","style","searchParams","URLSearchParams","discountPercent","append","endedAt","regularPrice","discountedPrice","locale","features","JSON","stringify","queryString","toString","url","getPaywallWrapper","commonWebView","jsxs","Fragment","children","jsx","View","styles","loadingContainer","pointerEvents","ActivityIndicator","size","WebView","source","uri","onMessage","onLoadStart","onLoadEnd","onError","console","error","onHttpError","javaScriptEnabled","userAgent","WEBVIEW_USER_AGENT","webView","webViewHidden","errorOverlay","errorCard","Text","errorTitle","errorMessage","TouchableOpacity","errorButton","onPress","errorButtonText","overlayContainer","zIndex","elevation","overlayHidden","StyleSheet","create","flex","opacity","position","top","left","right","bottom","absoluteFillObject","alignItems","justifyContent","backgroundColor","width","borderRadius","padding","fontSize","fontWeight","marginBottom","color","textAlign","marginTop","paddingHorizontal","paddingVertical","_default","exports"],"sourceRoot":"../../../src","sources":["components/Paywall.tsx"],"mappings":"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","ignoreList":[]}