@hayanmind/monetai-react-native 0.3.0 → 0.4.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 (134) 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/module/MonetaiProvider.js +48 -25
  31. package/lib/module/MonetaiProvider.js.map +1 -1
  32. package/lib/module/PaywallManager.js +58 -0
  33. package/lib/module/PaywallManager.js.map +1 -0
  34. package/lib/module/components/Banner.js +136 -0
  35. package/lib/module/components/Banner.js.map +1 -0
  36. package/lib/module/components/Paywall.js +230 -0
  37. package/lib/module/components/Paywall.js.map +1 -0
  38. package/lib/module/components/paywall-wrappers/CompactPaywallWrapper.js +55 -0
  39. package/lib/module/components/paywall-wrappers/CompactPaywallWrapper.js.map +1 -0
  40. package/lib/module/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js +27 -0
  41. package/lib/module/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js.map +1 -0
  42. package/lib/module/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js +27 -0
  43. package/lib/module/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js.map +1 -0
  44. package/lib/module/components/paywall-wrappers/TextFocusedPaywallWrapper.js +27 -0
  45. package/lib/module/components/paywall-wrappers/TextFocusedPaywallWrapper.js.map +1 -0
  46. package/lib/module/components/paywall-wrappers/index.js +11 -0
  47. package/lib/module/components/paywall-wrappers/index.js.map +1 -0
  48. package/lib/module/constants/paywall.js +7 -0
  49. package/lib/module/constants/paywall.js.map +1 -0
  50. package/lib/module/hooks/useBanner.js +79 -0
  51. package/lib/module/hooks/useBanner.js.map +1 -0
  52. package/lib/module/hooks/useInterval.js +30 -0
  53. package/lib/module/hooks/useInterval.js.map +1 -0
  54. package/lib/module/hooks/usePaywall.js +55 -0
  55. package/lib/module/hooks/usePaywall.js.map +1 -0
  56. package/lib/module/index.js +8 -1
  57. package/lib/module/index.js.map +1 -1
  58. package/lib/module/lib.js +2 -2
  59. package/lib/typescript/commonjs/src/MonetaiProvider.d.ts +3 -7
  60. package/lib/typescript/commonjs/src/MonetaiProvider.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/src/PaywallManager.d.ts +7 -0
  62. package/lib/typescript/commonjs/src/PaywallManager.d.ts.map +1 -0
  63. package/lib/typescript/commonjs/src/components/Banner.d.ts +10 -0
  64. package/lib/typescript/commonjs/src/components/Banner.d.ts.map +1 -0
  65. package/lib/typescript/commonjs/src/components/Paywall.d.ts +14 -0
  66. package/lib/typescript/commonjs/src/components/Paywall.d.ts.map +1 -0
  67. package/lib/typescript/commonjs/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts +8 -0
  68. package/lib/typescript/commonjs/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts.map +1 -0
  69. package/lib/typescript/commonjs/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts +8 -0
  70. package/lib/typescript/commonjs/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts.map +1 -0
  71. package/lib/typescript/commonjs/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts +8 -0
  72. package/lib/typescript/commonjs/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts +8 -0
  74. package/lib/typescript/commonjs/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/src/components/paywall-wrappers/index.d.ts +6 -0
  76. package/lib/typescript/commonjs/src/components/paywall-wrappers/index.d.ts.map +1 -0
  77. package/lib/typescript/commonjs/src/constants/paywall.d.ts +3 -0
  78. package/lib/typescript/commonjs/src/constants/paywall.d.ts.map +1 -0
  79. package/lib/typescript/commonjs/src/hooks/useBanner.d.ts +14 -0
  80. package/lib/typescript/commonjs/src/hooks/useBanner.d.ts.map +1 -0
  81. package/lib/typescript/commonjs/src/hooks/useInterval.d.ts +7 -0
  82. package/lib/typescript/commonjs/src/hooks/useInterval.d.ts.map +1 -0
  83. package/lib/typescript/commonjs/src/hooks/usePaywall.d.ts +15 -0
  84. package/lib/typescript/commonjs/src/hooks/usePaywall.d.ts.map +1 -0
  85. package/lib/typescript/commonjs/src/index.d.ts +7 -1
  86. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  87. package/lib/typescript/commonjs/src/types.d.ts +48 -2
  88. package/lib/typescript/commonjs/src/types.d.ts.map +1 -1
  89. package/lib/typescript/module/src/MonetaiProvider.d.ts +3 -7
  90. package/lib/typescript/module/src/MonetaiProvider.d.ts.map +1 -1
  91. package/lib/typescript/module/src/PaywallManager.d.ts +7 -0
  92. package/lib/typescript/module/src/PaywallManager.d.ts.map +1 -0
  93. package/lib/typescript/module/src/components/Banner.d.ts +10 -0
  94. package/lib/typescript/module/src/components/Banner.d.ts.map +1 -0
  95. package/lib/typescript/module/src/components/Paywall.d.ts +14 -0
  96. package/lib/typescript/module/src/components/Paywall.d.ts.map +1 -0
  97. package/lib/typescript/module/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts +8 -0
  98. package/lib/typescript/module/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts.map +1 -0
  99. package/lib/typescript/module/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts +8 -0
  100. package/lib/typescript/module/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts.map +1 -0
  101. package/lib/typescript/module/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts +8 -0
  102. package/lib/typescript/module/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts.map +1 -0
  103. package/lib/typescript/module/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts +8 -0
  104. package/lib/typescript/module/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts.map +1 -0
  105. package/lib/typescript/module/src/components/paywall-wrappers/index.d.ts +6 -0
  106. package/lib/typescript/module/src/components/paywall-wrappers/index.d.ts.map +1 -0
  107. package/lib/typescript/module/src/constants/paywall.d.ts +3 -0
  108. package/lib/typescript/module/src/constants/paywall.d.ts.map +1 -0
  109. package/lib/typescript/module/src/hooks/useBanner.d.ts +14 -0
  110. package/lib/typescript/module/src/hooks/useBanner.d.ts.map +1 -0
  111. package/lib/typescript/module/src/hooks/useInterval.d.ts +7 -0
  112. package/lib/typescript/module/src/hooks/useInterval.d.ts.map +1 -0
  113. package/lib/typescript/module/src/hooks/usePaywall.d.ts +15 -0
  114. package/lib/typescript/module/src/hooks/usePaywall.d.ts.map +1 -0
  115. package/lib/typescript/module/src/index.d.ts +7 -1
  116. package/lib/typescript/module/src/index.d.ts.map +1 -1
  117. package/lib/typescript/module/src/types.d.ts +48 -2
  118. package/lib/typescript/module/src/types.d.ts.map +1 -1
  119. package/package.json +4 -2
  120. package/src/MonetaiProvider.tsx +72 -29
  121. package/src/PaywallManager.tsx +61 -0
  122. package/src/components/Banner.tsx +152 -0
  123. package/src/components/Paywall.tsx +254 -0
  124. package/src/components/paywall-wrappers/CompactPaywallWrapper.tsx +58 -0
  125. package/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.tsx +30 -0
  126. package/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.tsx +30 -0
  127. package/src/components/paywall-wrappers/TextFocusedPaywallWrapper.tsx +30 -0
  128. package/src/components/paywall-wrappers/index.ts +8 -0
  129. package/src/constants/paywall.ts +4 -0
  130. package/src/hooks/useBanner.ts +112 -0
  131. package/src/hooks/useInterval.ts +29 -0
  132. package/src/hooks/usePaywall.ts +73 -0
  133. package/src/index.tsx +36 -1
  134. package/src/types.ts +65 -2
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.CompactPaywallWrapper = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ // Compact 스타일 래퍼: 하단에 붙어서 372px 높이, dim background 클릭 시 닫기
12
+ const CompactPaywallWrapper = ({
13
+ onClose,
14
+ children
15
+ }) => {
16
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
17
+ style: styles.compactPaywallContainer,
18
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
19
+ style: styles.dimBackground,
20
+ activeOpacity: 1,
21
+ onPress: onClose
22
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
23
+ style: styles.compactPaywallContent,
24
+ children: children
25
+ })]
26
+ });
27
+ };
28
+ exports.CompactPaywallWrapper = CompactPaywallWrapper;
29
+ const styles = _reactNative.StyleSheet.create({
30
+ compactPaywallContainer: {
31
+ position: 'absolute',
32
+ top: 0,
33
+ left: 0,
34
+ right: 0,
35
+ bottom: 0,
36
+ zIndex: 2000
37
+ },
38
+ dimBackground: {
39
+ position: 'absolute',
40
+ top: 0,
41
+ left: 0,
42
+ right: 0,
43
+ bottom: 0,
44
+ backgroundColor: 'rgba(0, 0, 0, 0.5)'
45
+ },
46
+ compactPaywallContent: {
47
+ position: 'absolute',
48
+ bottom: 0,
49
+ // 하단에 붙음
50
+ left: 0,
51
+ // 여백 제거
52
+ right: 0,
53
+ // 여백 제거
54
+ height: 372,
55
+ backgroundColor: 'white',
56
+ borderRadius: 12,
57
+ overflow: 'hidden'
58
+ }
59
+ });
60
+ var _default = exports.default = CompactPaywallWrapper;
61
+ //# sourceMappingURL=CompactPaywallWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_jsxRuntime","e","__esModule","default","CompactPaywallWrapper","onClose","children","jsxs","View","style","styles","compactPaywallContainer","jsx","TouchableOpacity","dimBackground","activeOpacity","onPress","compactPaywallContent","exports","StyleSheet","create","position","top","left","right","bottom","zIndex","backgroundColor","height","borderRadius","overflow","_default"],"sourceRoot":"../../../../src","sources":["components/paywall-wrappers/CompactPaywallWrapper.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAkE,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAOlE;AACO,MAAMG,qBAA2D,GAAGA,CAAC;EAC1EC,OAAO;EACPC;AACF,CAAC,KAAK;EACJ,oBACE,IAAAN,WAAA,CAAAO,IAAA,EAACR,YAAA,CAAAS,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,uBAAwB;IAAAL,QAAA,gBAE1C,IAAAN,WAAA,CAAAY,GAAA,EAACb,YAAA,CAAAc,gBAAgB;MACfJ,KAAK,EAAEC,MAAM,CAACI,aAAc;MAC5BC,aAAa,EAAE,CAAE;MACjBC,OAAO,EAAEX;IAAQ,CAClB,CAAC,eAGF,IAAAL,WAAA,CAAAY,GAAA,EAACb,YAAA,CAAAS,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACO,qBAAsB;MAAAX,QAAA,EAAEA;IAAQ,CAAO,CAAC;EAAA,CACxD,CAAC;AAEX,CAAC;AAACY,OAAA,CAAAd,qBAAA,GAAAA,qBAAA;AAEF,MAAMM,MAAM,GAAGS,uBAAU,CAACC,MAAM,CAAC;EAC/BT,uBAAuB,EAAE;IACvBU,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTC,MAAM,EAAE;EACV,CAAC;EACDZ,aAAa,EAAE;IACbO,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTE,eAAe,EAAE;EACnB,CAAC;EACDV,qBAAqB,EAAE;IACrBI,QAAQ,EAAE,UAAU;IACpBI,MAAM,EAAE,CAAC;IAAE;IACXF,IAAI,EAAE,CAAC;IAAE;IACTC,KAAK,EAAE,CAAC;IAAE;IACVI,MAAM,EAAE,GAAG;IACXD,eAAe,EAAE,OAAO;IACxBE,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAb,OAAA,CAAAf,OAAA,GAEYC,qBAAqB","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.HighlightBenefitsPaywallWrapper = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ // Highlight Benefits 스타일 래퍼: 전체 화면을 차지
12
+ const HighlightBenefitsPaywallWrapper = ({
13
+ children
14
+ }) => {
15
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.SafeAreaView, {
16
+ style: styles.fullScreenContainer,
17
+ children: children
18
+ });
19
+ };
20
+ exports.HighlightBenefitsPaywallWrapper = HighlightBenefitsPaywallWrapper;
21
+ const styles = _reactNative.StyleSheet.create({
22
+ fullScreenContainer: {
23
+ position: 'absolute',
24
+ top: 0,
25
+ left: 0,
26
+ right: 0,
27
+ bottom: 0,
28
+ backgroundColor: 'white',
29
+ zIndex: 2000
30
+ }
31
+ });
32
+ var _default = exports.default = HighlightBenefitsPaywallWrapper;
33
+ //# sourceMappingURL=HighlightBenefitsPaywallWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_jsxRuntime","e","__esModule","default","HighlightBenefitsPaywallWrapper","children","jsx","SafeAreaView","style","styles","fullScreenContainer","exports","StyleSheet","create","position","top","left","right","bottom","backgroundColor","zIndex","_default"],"sourceRoot":"../../../../src","sources":["components/paywall-wrappers/HighlightBenefitsPaywallWrapper.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAwD,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAOxD;AACO,MAAMG,+BAEZ,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EACpB,oBACE,IAAAL,WAAA,CAAAM,GAAA,EAACP,YAAA,CAAAQ,YAAY;IAACC,KAAK,EAAEC,MAAM,CAACC,mBAAoB;IAAAL,QAAA,EAAEA;EAAQ,CAAe,CAAC;AAE9E,CAAC;AAACM,OAAA,CAAAP,+BAAA,GAAAA,+BAAA;AAEF,MAAMK,MAAM,GAAGG,uBAAU,CAACC,MAAM,CAAC;EAC/BH,mBAAmB,EAAE;IACnBI,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTC,eAAe,EAAE,OAAO;IACxBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAV,OAAA,CAAAR,OAAA,GAEYC,+BAA+B","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.KeyFeatureSummaryPaywallWrapper = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ // Key Feature Summary 스타일 래퍼: 전체 화면을 차지
12
+ const KeyFeatureSummaryPaywallWrapper = ({
13
+ children
14
+ }) => {
15
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.SafeAreaView, {
16
+ style: styles.fullScreenContainer,
17
+ children: children
18
+ });
19
+ };
20
+ exports.KeyFeatureSummaryPaywallWrapper = KeyFeatureSummaryPaywallWrapper;
21
+ const styles = _reactNative.StyleSheet.create({
22
+ fullScreenContainer: {
23
+ position: 'absolute',
24
+ top: 0,
25
+ left: 0,
26
+ right: 0,
27
+ bottom: 0,
28
+ backgroundColor: 'white',
29
+ zIndex: 2000
30
+ }
31
+ });
32
+ var _default = exports.default = KeyFeatureSummaryPaywallWrapper;
33
+ //# sourceMappingURL=KeyFeatureSummaryPaywallWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_jsxRuntime","e","__esModule","default","KeyFeatureSummaryPaywallWrapper","children","jsx","SafeAreaView","style","styles","fullScreenContainer","exports","StyleSheet","create","position","top","left","right","bottom","backgroundColor","zIndex","_default"],"sourceRoot":"../../../../src","sources":["components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAwD,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAOxD;AACO,MAAMG,+BAEZ,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EACpB,oBACE,IAAAL,WAAA,CAAAM,GAAA,EAACP,YAAA,CAAAQ,YAAY;IAACC,KAAK,EAAEC,MAAM,CAACC,mBAAoB;IAAAL,QAAA,EAAEA;EAAQ,CAAe,CAAC;AAE9E,CAAC;AAACM,OAAA,CAAAP,+BAAA,GAAAA,+BAAA;AAEF,MAAMK,MAAM,GAAGG,uBAAU,CAACC,MAAM,CAAC;EAC/BH,mBAAmB,EAAE;IACnBI,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTC,eAAe,EAAE,OAAO;IACxBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAV,OAAA,CAAAR,OAAA,GAEYC,+BAA+B","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.TextFocusedPaywallWrapper = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ // Text Focused 스타일 래퍼: 전체 화면을 차지
12
+ const TextFocusedPaywallWrapper = ({
13
+ children
14
+ }) => {
15
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.SafeAreaView, {
16
+ style: styles.fullScreenContainer,
17
+ children: children
18
+ });
19
+ };
20
+ exports.TextFocusedPaywallWrapper = TextFocusedPaywallWrapper;
21
+ const styles = _reactNative.StyleSheet.create({
22
+ fullScreenContainer: {
23
+ position: 'absolute',
24
+ top: 0,
25
+ left: 0,
26
+ right: 0,
27
+ bottom: 0,
28
+ backgroundColor: 'white',
29
+ zIndex: 2000
30
+ }
31
+ });
32
+ var _default = exports.default = TextFocusedPaywallWrapper;
33
+ //# sourceMappingURL=TextFocusedPaywallWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_jsxRuntime","e","__esModule","default","TextFocusedPaywallWrapper","children","jsx","SafeAreaView","style","styles","fullScreenContainer","exports","StyleSheet","create","position","top","left","right","bottom","backgroundColor","zIndex","_default"],"sourceRoot":"../../../../src","sources":["components/paywall-wrappers/TextFocusedPaywallWrapper.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAwD,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAOxD;AACO,MAAMG,yBAEZ,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EACpB,oBACE,IAAAL,WAAA,CAAAM,GAAA,EAACP,YAAA,CAAAQ,YAAY;IAACC,KAAK,EAAEC,MAAM,CAACC,mBAAoB;IAAAL,QAAA,EAAEA;EAAQ,CAAe,CAAC;AAE9E,CAAC;AAACM,OAAA,CAAAP,yBAAA,GAAAA,yBAAA;AAEF,MAAMK,MAAM,GAAGG,uBAAU,CAACC,MAAM,CAAC;EAC/BH,mBAAmB,EAAE;IACnBI,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTC,eAAe,EAAE,OAAO;IACxBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAV,OAAA,CAAAR,OAAA,GAEYC,yBAAyB","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "CompactPaywallWrapper", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _CompactPaywallWrapper.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "HighlightBenefitsPaywallWrapper", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _HighlightBenefitsPaywallWrapper.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "KeyFeatureSummaryPaywallWrapper", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _KeyFeatureSummaryPaywallWrapper.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "TextFocusedPaywallWrapper", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _TextFocusedPaywallWrapper.default;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "default", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _CompactPaywallWrapper.default;
34
+ }
35
+ });
36
+ var _CompactPaywallWrapper = _interopRequireDefault(require("./CompactPaywallWrapper.js"));
37
+ var _HighlightBenefitsPaywallWrapper = _interopRequireDefault(require("./HighlightBenefitsPaywallWrapper.js"));
38
+ var _KeyFeatureSummaryPaywallWrapper = _interopRequireDefault(require("./KeyFeatureSummaryPaywallWrapper.js"));
39
+ var _TextFocusedPaywallWrapper = _interopRequireDefault(require("./TextFocusedPaywallWrapper.js"));
40
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_CompactPaywallWrapper","_interopRequireDefault","require","_HighlightBenefitsPaywallWrapper","_KeyFeatureSummaryPaywallWrapper","_TextFocusedPaywallWrapper","e","__esModule","default"],"sourceRoot":"../../../../src","sources":["components/paywall-wrappers/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,sBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gCAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,gCAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,0BAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAmF,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.WEBVIEW_USER_AGENT = exports.PAYWELL_BASE_URL = void 0;
7
+ // Base URLs for webview components
8
+ const PAYWELL_BASE_URL = exports.PAYWELL_BASE_URL = 'https://dashboard.monetai.io/webview';
9
+ // WebView user agent
10
+ const WEBVIEW_USER_AGENT = exports.WEBVIEW_USER_AGENT = 'MonetaiSDK';
11
+ //# sourceMappingURL=paywall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PAYWELL_BASE_URL","exports","WEBVIEW_USER_AGENT"],"sourceRoot":"../../../src","sources":["constants/paywall.ts"],"mappings":";;;;;;AAAA;AACO,MAAMA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,sCAAsC;AACtE;AACO,MAAME,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,GAAG,YAAY","ignoreList":[]}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useBanner = void 0;
7
+ var _react = require("react");
8
+ var _dayjs = _interopRequireDefault(require("dayjs"));
9
+ var _isBetween = _interopRequireDefault(require("dayjs/plugin/isBetween"));
10
+ var _useInterval = require("./useInterval.js");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ // dayjs 플러그인 확장
13
+ _dayjs.default.extend(_isBetween.default);
14
+ const useBanner = ({
15
+ paywallConfig,
16
+ // PaywallConfig로 변경
17
+ discountInfo
18
+ }) => {
19
+ const [bannerVisible, setBannerVisible] = (0, _react.useState)(false);
20
+ const [bannerParams, setBannerParams] = (0, _react.useState)(null); // 데이터 준비 시 보관
21
+
22
+ // 할인 활성 상태 체크 함수
23
+ const checkDiscountActive = (0, _react.useCallback)(() => {
24
+ if (bannerParams == null || bannerParams.enabled === false || bannerParams.isSubscriber === true || discountInfo == null) {
25
+ return false;
26
+ }
27
+ const now = (0, _dayjs.default)();
28
+ return now.isBetween((0, _dayjs.default)(discountInfo.startedAt), (0, _dayjs.default)(discountInfo.endedAt), null, '[]');
29
+ }, [discountInfo, bannerParams]);
30
+ const closeBanner = (0, _react.useCallback)(() => {
31
+ setBannerVisible(false);
32
+ }, []);
33
+ const openBanner = (0, _react.useCallback)(() => {
34
+ if (!bannerParams) {
35
+ console.error('[MonetaiSDK] useBanner: Cannot open banner - bannerParams is null (data not ready)');
36
+ return;
37
+ }
38
+ if (checkDiscountActive()) {
39
+ setBannerVisible(true);
40
+ }
41
+ }, [bannerParams, checkDiscountActive]);
42
+ (0, _react.useEffect)(() => {
43
+ if (!paywallConfig || !discountInfo) {
44
+ setBannerParams(null);
45
+ return;
46
+ }
47
+ const baseZIndex = paywallConfig.bannerZIndex ?? 1000;
48
+ const baseElevation = paywallConfig.bannerElevation ?? 8;
49
+ const computed = {
50
+ enabled: paywallConfig.enabled,
51
+ isSubscriber: paywallConfig.isSubscriber,
52
+ locale: paywallConfig.locale,
53
+ discountPercent: paywallConfig.discountPercent,
54
+ bottom: paywallConfig.bannerBottom,
55
+ style: paywallConfig.style,
56
+ endedAt: discountInfo.endedAt,
57
+ zIndex: baseZIndex,
58
+ elevation: baseElevation
59
+ };
60
+ setBannerParams(computed);
61
+ }, [paywallConfig, discountInfo]);
62
+ (0, _react.useEffect)(() => {
63
+ const isActive = checkDiscountActive();
64
+ if (isActive) {
65
+ setBannerVisible(true);
66
+ } else {
67
+ setBannerVisible(false);
68
+ }
69
+ }, [checkDiscountActive]);
70
+ (0, _useInterval.useInterval)(() => {
71
+ const isActive = checkDiscountActive();
72
+ if (!isActive) {
73
+ setBannerVisible(false);
74
+ }
75
+ }, bannerVisible ? 1000 : null);
76
+ return {
77
+ bannerVisible,
78
+ openBanner,
79
+ closeBanner,
80
+ bannerParams // state로 관리되는 bannerParams 반환
81
+ };
82
+ };
83
+ exports.useBanner = useBanner;
84
+ //# sourceMappingURL=useBanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_dayjs","_interopRequireDefault","_isBetween","_useInterval","e","__esModule","default","dayjs","extend","isBetween","useBanner","paywallConfig","discountInfo","bannerVisible","setBannerVisible","useState","bannerParams","setBannerParams","checkDiscountActive","useCallback","enabled","isSubscriber","now","startedAt","endedAt","closeBanner","openBanner","console","error","useEffect","baseZIndex","bannerZIndex","baseElevation","bannerElevation","computed","locale","discountPercent","bottom","bannerBottom","style","zIndex","elevation","isActive","useInterval","exports"],"sourceRoot":"../../../src","sources":["hooks/useBanner.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useInterval = void 0;
7
+ var _react = require("react");
8
+ /**
9
+ * Custom hook for setting up an interval that can be paused/resumed
10
+ * @param callback Function to call on each interval
11
+ * @param delay Delay in milliseconds, null to pause
12
+ */
13
+ const useInterval = (callback, delay) => {
14
+ const savedCallback = (0, _react.useRef)(() => {});
15
+
16
+ // Remember the latest callback
17
+ (0, _react.useEffect)(() => {
18
+ savedCallback.current = callback;
19
+ }, [callback]);
20
+
21
+ // Set up the interval
22
+ (0, _react.useEffect)(() => {
23
+ // Don't schedule if no delay is specified
24
+ if (delay === null) {
25
+ return;
26
+ }
27
+ const id = setInterval(() => {
28
+ savedCallback.current?.();
29
+ }, delay);
30
+ return () => clearInterval(id);
31
+ }, [delay]);
32
+ };
33
+ exports.useInterval = useInterval;
34
+ //# sourceMappingURL=useInterval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","useInterval","callback","delay","savedCallback","useRef","useEffect","current","id","setInterval","clearInterval","exports"],"sourceRoot":"../../../src","sources":["hooks/useInterval.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,MAAMC,WAAW,GAAGA,CAACC,QAAoB,EAAEC,KAAoB,KAAK;EACzE,MAAMC,aAAa,GAAG,IAAAC,aAAM,EAAa,MAAM,CAAC,CAAC,CAAC;;EAElD;EACA,IAAAC,gBAAS,EAAC,MAAM;IACdF,aAAa,CAACG,OAAO,GAAGL,QAAQ;EAClC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;;EAEd;EACA,IAAAI,gBAAS,EAAC,MAAM;IACd;IACA,IAAIH,KAAK,KAAK,IAAI,EAAE;MAClB;IACF;IAEA,MAAMK,EAAE,GAAGC,WAAW,CAAC,MAAM;MAC3BL,aAAa,CAACG,OAAO,GAAG,CAAC;IAC3B,CAAC,EAAEJ,KAAK,CAAC;IAET,OAAO,MAAMO,aAAa,CAACF,EAAE,CAAC;EAChC,CAAC,EAAE,CAACL,KAAK,CAAC,CAAC;AACb,CAAC;AAACQ,OAAA,CAAAV,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.usePaywall = void 0;
7
+ var _react = require("react");
8
+ const usePaywall = ({
9
+ paywallConfig,
10
+ // 타입 변경
11
+ discountInfo,
12
+ // discountInfo 추가
13
+ onClose
14
+ }) => {
15
+ const [paywallVisible, setPaywallVisible] = (0, _react.useState)(false);
16
+ const [paywallParams, setPaywallParams] = (0, _react.useState)(null);
17
+ (0, _react.useEffect)(() => {
18
+ if (!discountInfo || !paywallConfig) {
19
+ setPaywallParams(null);
20
+ return;
21
+ }
22
+ const paywallZ = paywallConfig.paywallZIndex ?? 2000;
23
+ const paywallElevation = paywallConfig.paywallElevation ?? 16;
24
+ const computedParams = {
25
+ discountPercent: paywallConfig.discountPercent.toString(),
26
+ endedAt: discountInfo.endedAt.toISOString(),
27
+ regularPrice: paywallConfig.regularPrice,
28
+ discountedPrice: paywallConfig.discountedPrice,
29
+ locale: paywallConfig.locale,
30
+ features: paywallConfig.features,
31
+ style: paywallConfig.style,
32
+ zIndex: paywallZ,
33
+ elevation: paywallElevation
34
+ };
35
+ setPaywallParams(computedParams);
36
+ }, [discountInfo, paywallConfig]);
37
+
38
+ // 페이월 열기
39
+ const openPaywall = (0, _react.useCallback)(() => {
40
+ if (!paywallParams) {
41
+ console.error('[MonetaiSDK] usePaywall: Cannot open paywall - paywallParams is null (data not ready)');
42
+ return;
43
+ }
44
+ setPaywallVisible(true);
45
+ }, [paywallParams]);
46
+
47
+ // 페이월 닫기
48
+ const closePaywall = (0, _react.useCallback)(() => {
49
+ setPaywallVisible(false);
50
+ onClose?.();
51
+ }, [onClose]);
52
+ return {
53
+ paywallVisible,
54
+ paywallParams,
55
+ openPaywall,
56
+ closePaywall
57
+ };
58
+ };
59
+ exports.usePaywall = usePaywall;
60
+ //# sourceMappingURL=usePaywall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","usePaywall","paywallConfig","discountInfo","onClose","paywallVisible","setPaywallVisible","useState","paywallParams","setPaywallParams","useEffect","paywallZ","paywallZIndex","paywallElevation","computedParams","discountPercent","toString","endedAt","toISOString","regularPrice","discountedPrice","locale","features","style","zIndex","elevation","openPaywall","useCallback","console","error","closePaywall","exports"],"sourceRoot":"../../../src","sources":["hooks/usePaywall.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAgBO,MAAMC,UAAU,GAAGA,CAAC;EACzBC,aAAa;EAAE;EACfC,YAAY;EAAE;EACdC;AACe,CAAC,KAAuB;EACvC,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAC3D,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAF,eAAQ,EAChD,IACF,CAAC;EAED,IAAAG,gBAAS,EAAC,MAAM;IACd,IAAI,CAACP,YAAY,IAAI,CAACD,aAAa,EAAE;MACnCO,gBAAgB,CAAC,IAAI,CAAC;MACtB;IACF;IAEA,MAAME,QAAQ,GAAGT,aAAa,CAACU,aAAa,IAAI,IAAI;IACpD,MAAMC,gBAAgB,GAAGX,aAAa,CAACW,gBAAgB,IAAI,EAAE;IAC7D,MAAMC,cAA6B,GAAG;MACpCC,eAAe,EAAEb,aAAa,CAACa,eAAe,CAACC,QAAQ,CAAC,CAAC;MACzDC,OAAO,EAAEd,YAAY,CAACc,OAAO,CAACC,WAAW,CAAC,CAAC;MAC3CC,YAAY,EAAEjB,aAAa,CAACiB,YAAY;MACxCC,eAAe,EAAElB,aAAa,CAACkB,eAAe;MAC9CC,MAAM,EAAEnB,aAAa,CAACmB,MAAM;MAC5BC,QAAQ,EAAEpB,aAAa,CAACoB,QAAQ;MAChCC,KAAK,EAAErB,aAAa,CAACqB,KAAK;MAC1BC,MAAM,EAAEb,QAAQ;MAChBc,SAAS,EAAEZ;IACb,CAAC;IAEDJ,gBAAgB,CAACK,cAAc,CAAC;EAClC,CAAC,EAAE,CAACX,YAAY,EAAED,aAAa,CAAC,CAAC;;EAEjC;EACA,MAAMwB,WAAW,GAAG,IAAAC,kBAAW,EAAC,MAAM;IACpC,IAAI,CAACnB,aAAa,EAAE;MAClBoB,OAAO,CAACC,KAAK,CACX,uFACF,CAAC;MACD;IACF;IACAvB,iBAAiB,CAAC,IAAI,CAAC;EACzB,CAAC,EAAE,CAACE,aAAa,CAAC,CAAC;;EAEnB;EACA,MAAMsB,YAAY,GAAG,IAAAH,kBAAW,EAAC,MAAM;IACrCrB,iBAAiB,CAAC,KAAK,CAAC;IACxBF,OAAO,GAAG,CAAC;EACb,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,OAAO;IACLC,cAAc;IACdG,aAAa;IACbkB,WAAW;IACXI;EACF,CAAC;AACH,CAAC;AAACC,OAAA,CAAA9B,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -3,15 +3,68 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "Banner", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Banner.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "CompactPaywallWrapper", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _index.CompactPaywallWrapper;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "HighlightBenefitsPaywallWrapper", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _index.HighlightBenefitsPaywallWrapper;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "KeyFeatureSummaryPaywallWrapper", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _index.KeyFeatureSummaryPaywallWrapper;
28
+ }
29
+ });
6
30
  Object.defineProperty(exports, "MonetaiProvider", {
7
31
  enumerable: true,
8
32
  get: function () {
9
33
  return _MonetaiProvider.default;
10
34
  }
11
35
  });
36
+ Object.defineProperty(exports, "Paywall", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _Paywall.default;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "TextFocusedPaywallWrapper", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _index.TextFocusedPaywallWrapper;
46
+ }
47
+ });
12
48
  exports.default = void 0;
49
+ Object.defineProperty(exports, "useBanner", {
50
+ enumerable: true,
51
+ get: function () {
52
+ return _useBanner.useBanner;
53
+ }
54
+ });
55
+ Object.defineProperty(exports, "usePaywall", {
56
+ enumerable: true,
57
+ get: function () {
58
+ return _usePaywall.usePaywall;
59
+ }
60
+ });
13
61
  var _MonetaiSDK = _interopRequireDefault(require("./MonetaiSDK.js"));
14
62
  var _MonetaiProvider = _interopRequireDefault(require("./MonetaiProvider.js"));
63
+ var _Banner = _interopRequireDefault(require("./components/Banner.js"));
64
+ var _Paywall = _interopRequireDefault(require("./components/Paywall.js"));
65
+ var _index = require("./components/paywall-wrappers/index.js");
66
+ var _useBanner = require("./hooks/useBanner.js");
67
+ var _usePaywall = require("./hooks/usePaywall.js");
15
68
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
- var _default = exports.default = _MonetaiSDK.default;
69
+ var _default = exports.default = _MonetaiSDK.default; // Export types
17
70
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_MonetaiSDK","_interopRequireDefault","require","_MonetaiProvider","e","__esModule","default","_default","exports","MonetaiSDK"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAgD,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAEjCG,mBAAU","ignoreList":[]}
1
+ {"version":3,"names":["_MonetaiSDK","_interopRequireDefault","require","_MonetaiProvider","_Banner","_Paywall","_index","_useBanner","_usePaywall","e","__esModule","default","_default","exports","MonetaiSDK"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,QAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAMA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAAgD,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAEjCG,mBAAU,EAazB","ignoreList":[]}
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getSDKVersion = getSDKVersion;
7
7
  function getSDKVersion() {
8
8
  // __SDK_VERSION__이 정의되어 있으면 해당 값을 사용
9
- if (typeof "0.3.0" === 'string') {
10
- return "0.3.0";
9
+ if (typeof "0.4.0" === 'string') {
10
+ return "0.4.0";
11
11
  }
12
12
 
13
13
  // 그렇지 않으면, package.json을 lazy하게 불러와 version을 반환
@@ -1,11 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  // MonetaiProvider.tsx
4
- import { useEffect, useState } from 'react';
4
+ import { useCallback, useEffect, useMemo, useState } from 'react';
5
5
  import { StyleSheet, View } from 'react-native';
6
6
  import monetaiSDK from "./MonetaiSDK.js";
7
7
  import { getAppUserDiscount } from "./ApiRequest.js";
8
- import { jsx as _jsx } from "react/jsx-runtime";
8
+ import PaywallManager from "./PaywallManager.js";
9
+ import dayjs from 'dayjs';
10
+ import isBetween from 'dayjs/plugin/isBetween';
11
+
12
+ // dayjs 플러그인 확장
13
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ dayjs.extend(isBetween);
9
15
  const styles = StyleSheet.create({
10
16
  container: {
11
17
  flex: 1
@@ -17,45 +23,62 @@ const styles = StyleSheet.create({
17
23
  */
18
24
  export default function MonetaiProvider({
19
25
  children,
20
- onDiscountInfoChange
26
+ onDiscountInfoChange,
27
+ paywallConfig // 통합된 설정
21
28
  }) {
22
29
  const [discountInfo, setDiscountInfo] = useState(null);
30
+ const onLoadDiscountInfo = useCallback(async () => {
31
+ const userId = await monetaiSDK.getUserId();
32
+ const sdkKey = await monetaiSDK.getSdkKey();
33
+ if (userId == null || sdkKey == null) {
34
+ console.warn('onLoadDiscountInfo: User ID or SDK Key is not set.');
35
+ return;
36
+ }
37
+ const discount = await getAppUserDiscount({
38
+ userId,
39
+ sdkKey
40
+ });
41
+ if (discount != null && discount.app_user_id !== userId) {
42
+ return;
43
+ }
44
+ const newDiscountInfo = discount == null ? null : {
45
+ startedAt: new Date(discount.started_at),
46
+ endedAt: new Date(discount.ended_at),
47
+ userId: discount.app_user_id,
48
+ sdkKey: discount.sdk_key
49
+ };
50
+ setDiscountInfo(newDiscountInfo);
51
+ }, []);
23
52
  useEffect(() => {
24
- const emitter = monetaiSDK.getEmitter();
25
- const onLoadDiscountInfo = async () => {
53
+ (async () => {
26
54
  const userId = await monetaiSDK.getUserId();
27
55
  const sdkKey = await monetaiSDK.getSdkKey();
28
- if (userId == null || sdkKey == null) {
29
- console.warn('onLoadDiscountInfo: User ID or SDK Key is not set.');
30
- return;
56
+ if (userId != null && sdkKey != null) {
57
+ onLoadDiscountInfo();
31
58
  }
32
- const discount = await getAppUserDiscount({
33
- userId,
34
- sdkKey
35
- });
36
- if (discount != null && discount.app_user_id !== userId) {
37
- return;
38
- }
39
- setDiscountInfo(discount == null ? null : {
40
- startedAt: discount.started_at,
41
- endedAt: discount.ended_at,
42
- userId: discount.app_user_id,
43
- sdkKey: discount.sdk_key
44
- });
45
- };
59
+ })();
60
+ }, [onLoadDiscountInfo]);
61
+ useEffect(() => {
62
+ const emitter = monetaiSDK.getEmitter();
46
63
  emitter.on('LOAD_DISCOUNT_INFO', onLoadDiscountInfo);
47
64
  return () => {
48
65
  emitter.off('LOAD_DISCOUNT_INFO', onLoadDiscountInfo);
49
66
  };
50
- }, []);
67
+ }, [onLoadDiscountInfo]);
51
68
  useEffect(() => {
52
69
  if (onDiscountInfoChange) {
53
70
  onDiscountInfoChange(discountInfo);
54
71
  }
55
72
  }, [onDiscountInfoChange, discountInfo]);
56
- return /*#__PURE__*/_jsx(View, {
73
+ const isPromotionActive = useMemo(() => {
74
+ return paywallConfig?.enabled && !paywallConfig.isSubscriber && discountInfo != null && dayjs().isBetween(dayjs(discountInfo.startedAt), dayjs(discountInfo.endedAt), null, '[]');
75
+ }, [discountInfo, paywallConfig]);
76
+ return /*#__PURE__*/_jsxs(View, {
57
77
  style: styles.container,
58
- children: children
78
+ children: [children, isPromotionActive && paywallConfig != null && /*#__PURE__*/_jsx(PaywallManager, {
79
+ paywallConfig: paywallConfig,
80
+ discountInfo: discountInfo
81
+ })]
59
82
  });
60
83
  }
61
84
  //# sourceMappingURL=MonetaiProvider.js.map