@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.
- 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/commonjs/lib.js.map +1 -1
- 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/module/lib.js.map +1 -1
- 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
|
@@ -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
|
-
|
|
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
|
|
35
|
-
|
|
36
|
-
return;
|
|
61
|
+
if (userId != null && sdkKey != null) {
|
|
62
|
+
onLoadDiscountInfo();
|
|
37
63
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
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","
|
|
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":[]}
|