@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.
- package/lib/commonjs/MonetaiProvider.js +45 -23
- package/lib/commonjs/MonetaiProvider.js.map +1 -1
- package/lib/commonjs/PaywallManager.js +63 -0
- package/lib/commonjs/PaywallManager.js.map +1 -0
- package/lib/commonjs/components/Banner.js +141 -0
- package/lib/commonjs/components/Banner.js.map +1 -0
- package/lib/commonjs/components/Paywall.js +236 -0
- package/lib/commonjs/components/Paywall.js.map +1 -0
- package/lib/commonjs/components/paywall-wrappers/CompactPaywallWrapper.js +61 -0
- package/lib/commonjs/components/paywall-wrappers/CompactPaywallWrapper.js.map +1 -0
- package/lib/commonjs/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js +33 -0
- package/lib/commonjs/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js.map +1 -0
- package/lib/commonjs/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js +33 -0
- package/lib/commonjs/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js.map +1 -0
- package/lib/commonjs/components/paywall-wrappers/TextFocusedPaywallWrapper.js +33 -0
- package/lib/commonjs/components/paywall-wrappers/TextFocusedPaywallWrapper.js.map +1 -0
- package/lib/commonjs/components/paywall-wrappers/index.js +41 -0
- package/lib/commonjs/components/paywall-wrappers/index.js.map +1 -0
- package/lib/commonjs/constants/paywall.js +11 -0
- package/lib/commonjs/constants/paywall.js.map +1 -0
- package/lib/commonjs/hooks/useBanner.js +84 -0
- package/lib/commonjs/hooks/useBanner.js.map +1 -0
- package/lib/commonjs/hooks/useInterval.js +34 -0
- package/lib/commonjs/hooks/useInterval.js.map +1 -0
- package/lib/commonjs/hooks/usePaywall.js +60 -0
- package/lib/commonjs/hooks/usePaywall.js.map +1 -0
- package/lib/commonjs/index.js +54 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/lib.js +2 -2
- package/lib/module/MonetaiProvider.js +48 -25
- package/lib/module/MonetaiProvider.js.map +1 -1
- package/lib/module/PaywallManager.js +58 -0
- package/lib/module/PaywallManager.js.map +1 -0
- package/lib/module/components/Banner.js +136 -0
- package/lib/module/components/Banner.js.map +1 -0
- package/lib/module/components/Paywall.js +230 -0
- package/lib/module/components/Paywall.js.map +1 -0
- package/lib/module/components/paywall-wrappers/CompactPaywallWrapper.js +55 -0
- package/lib/module/components/paywall-wrappers/CompactPaywallWrapper.js.map +1 -0
- package/lib/module/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js +27 -0
- package/lib/module/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js.map +1 -0
- package/lib/module/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js +27 -0
- package/lib/module/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js.map +1 -0
- package/lib/module/components/paywall-wrappers/TextFocusedPaywallWrapper.js +27 -0
- package/lib/module/components/paywall-wrappers/TextFocusedPaywallWrapper.js.map +1 -0
- package/lib/module/components/paywall-wrappers/index.js +11 -0
- package/lib/module/components/paywall-wrappers/index.js.map +1 -0
- package/lib/module/constants/paywall.js +7 -0
- package/lib/module/constants/paywall.js.map +1 -0
- package/lib/module/hooks/useBanner.js +79 -0
- package/lib/module/hooks/useBanner.js.map +1 -0
- package/lib/module/hooks/useInterval.js +30 -0
- package/lib/module/hooks/useInterval.js.map +1 -0
- package/lib/module/hooks/usePaywall.js +55 -0
- package/lib/module/hooks/usePaywall.js.map +1 -0
- package/lib/module/index.js +8 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/lib.js +2 -2
- package/lib/typescript/commonjs/src/MonetaiProvider.d.ts +3 -7
- package/lib/typescript/commonjs/src/MonetaiProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/PaywallManager.d.ts +7 -0
- package/lib/typescript/commonjs/src/PaywallManager.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/Banner.d.ts +10 -0
- package/lib/typescript/commonjs/src/components/Banner.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/Paywall.d.ts +14 -0
- package/lib/typescript/commonjs/src/components/Paywall.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts +8 -0
- package/lib/typescript/commonjs/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts +8 -0
- package/lib/typescript/commonjs/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts +8 -0
- package/lib/typescript/commonjs/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts +8 -0
- package/lib/typescript/commonjs/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/paywall-wrappers/index.d.ts +6 -0
- package/lib/typescript/commonjs/src/components/paywall-wrappers/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/constants/paywall.d.ts +3 -0
- package/lib/typescript/commonjs/src/constants/paywall.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/useBanner.d.ts +14 -0
- package/lib/typescript/commonjs/src/hooks/useBanner.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/useInterval.d.ts +7 -0
- package/lib/typescript/commonjs/src/hooks/useInterval.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/usePaywall.d.ts +15 -0
- package/lib/typescript/commonjs/src/hooks/usePaywall.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +7 -1
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types.d.ts +48 -2
- package/lib/typescript/commonjs/src/types.d.ts.map +1 -1
- package/lib/typescript/module/src/MonetaiProvider.d.ts +3 -7
- package/lib/typescript/module/src/MonetaiProvider.d.ts.map +1 -1
- package/lib/typescript/module/src/PaywallManager.d.ts +7 -0
- package/lib/typescript/module/src/PaywallManager.d.ts.map +1 -0
- package/lib/typescript/module/src/components/Banner.d.ts +10 -0
- package/lib/typescript/module/src/components/Banner.d.ts.map +1 -0
- package/lib/typescript/module/src/components/Paywall.d.ts +14 -0
- package/lib/typescript/module/src/components/Paywall.d.ts.map +1 -0
- package/lib/typescript/module/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts +8 -0
- package/lib/typescript/module/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts.map +1 -0
- package/lib/typescript/module/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts +8 -0
- package/lib/typescript/module/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts.map +1 -0
- package/lib/typescript/module/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts +8 -0
- package/lib/typescript/module/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts.map +1 -0
- package/lib/typescript/module/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts +8 -0
- package/lib/typescript/module/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts.map +1 -0
- package/lib/typescript/module/src/components/paywall-wrappers/index.d.ts +6 -0
- package/lib/typescript/module/src/components/paywall-wrappers/index.d.ts.map +1 -0
- package/lib/typescript/module/src/constants/paywall.d.ts +3 -0
- package/lib/typescript/module/src/constants/paywall.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/useBanner.d.ts +14 -0
- package/lib/typescript/module/src/hooks/useBanner.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/useInterval.d.ts +7 -0
- package/lib/typescript/module/src/hooks/useInterval.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/usePaywall.d.ts +15 -0
- package/lib/typescript/module/src/hooks/usePaywall.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +7 -1
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/types.d.ts +48 -2
- package/lib/typescript/module/src/types.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/MonetaiProvider.tsx +72 -29
- package/src/PaywallManager.tsx +61 -0
- package/src/components/Banner.tsx +152 -0
- package/src/components/Paywall.tsx +254 -0
- package/src/components/paywall-wrappers/CompactPaywallWrapper.tsx +58 -0
- package/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.tsx +30 -0
- package/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.tsx +30 -0
- package/src/components/paywall-wrappers/TextFocusedPaywallWrapper.tsx +30 -0
- package/src/components/paywall-wrappers/index.ts +8 -0
- package/src/constants/paywall.ts +4 -0
- package/src/hooks/useBanner.ts +112 -0
- package/src/hooks/useInterval.ts +29 -0
- package/src/hooks/usePaywall.ts +73 -0
- package/src/index.tsx +36 -1
- 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":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -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":"
|
|
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":[]}
|
package/lib/commonjs/lib.js
CHANGED
|
@@ -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.
|
|
10
|
-
return "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
|
|
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
|
-
|
|
25
|
-
const onLoadDiscountInfo = async () => {
|
|
53
|
+
(async () => {
|
|
26
54
|
const userId = await monetaiSDK.getUserId();
|
|
27
55
|
const sdkKey = await monetaiSDK.getSdkKey();
|
|
28
|
-
if (userId
|
|
29
|
-
|
|
30
|
-
return;
|
|
56
|
+
if (userId != null && sdkKey != null) {
|
|
57
|
+
onLoadDiscountInfo();
|
|
31
58
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
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
|