@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useState","StyleSheet","View","monetaiSDK","getAppUserDiscount","jsx","_jsx","styles","create","container","flex","MonetaiProvider","children","onDiscountInfoChange","
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useState","StyleSheet","View","monetaiSDK","getAppUserDiscount","PaywallManager","dayjs","isBetween","jsx","_jsx","jsxs","_jsxs","extend","styles","create","container","flex","MonetaiProvider","children","onDiscountInfoChange","paywallConfig","discountInfo","setDiscountInfo","onLoadDiscountInfo","userId","getUserId","sdkKey","getSdkKey","console","warn","discount","app_user_id","newDiscountInfo","startedAt","Date","started_at","endedAt","ended_at","sdk_key","emitter","getEmitter","on","off","isPromotionActive","enabled","isSubscriber","style"],"sourceRoot":"../../src","sources":["MonetaiProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Banner from "./components/Banner.js";
|
|
4
|
+
import Paywall from "./components/Paywall.js";
|
|
5
|
+
import { useBanner } from "./hooks/useBanner.js";
|
|
6
|
+
import { usePaywall } from "./hooks/usePaywall.js";
|
|
7
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const PaywallManager = ({
|
|
9
|
+
paywallConfig,
|
|
10
|
+
discountInfo
|
|
11
|
+
}) => {
|
|
12
|
+
// 배너 상태 관리 및 자동 표시 훅 사용
|
|
13
|
+
const {
|
|
14
|
+
bannerVisible,
|
|
15
|
+
bannerParams
|
|
16
|
+
} = useBanner({
|
|
17
|
+
paywallConfig,
|
|
18
|
+
discountInfo
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// 페이월 상태 관리 훅 사용
|
|
22
|
+
const {
|
|
23
|
+
paywallVisible,
|
|
24
|
+
paywallParams,
|
|
25
|
+
openPaywall,
|
|
26
|
+
closePaywall
|
|
27
|
+
} = usePaywall({
|
|
28
|
+
discountInfo,
|
|
29
|
+
paywallConfig
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// 페이월 열기 (배너 닫기 + 페이월 열기)
|
|
33
|
+
const handlePaywall = () => {
|
|
34
|
+
openPaywall(); // 페이월 열기
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
// 구매 처리
|
|
38
|
+
const handlePurchase = () => {
|
|
39
|
+
paywallConfig?.onPurchase?.(closePaywall);
|
|
40
|
+
};
|
|
41
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
42
|
+
children: [bannerParams != null && /*#__PURE__*/_jsx(Banner, {
|
|
43
|
+
visible: bannerVisible,
|
|
44
|
+
onPaywall: handlePaywall,
|
|
45
|
+
bannerParams: bannerParams
|
|
46
|
+
}), paywallParams && /*#__PURE__*/_jsx(Paywall, {
|
|
47
|
+
visible: paywallVisible,
|
|
48
|
+
params: paywallParams,
|
|
49
|
+
onClose: closePaywall,
|
|
50
|
+
onPurchase: handlePurchase,
|
|
51
|
+
onTermsOfService: paywallConfig?.onTermsOfService,
|
|
52
|
+
onPrivacyPolicy: paywallConfig?.onPrivacyPolicy,
|
|
53
|
+
preload: true
|
|
54
|
+
})]
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
export default PaywallManager;
|
|
58
|
+
//# sourceMappingURL=PaywallManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Banner","Paywall","useBanner","usePaywall","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","PaywallManager","paywallConfig","discountInfo","bannerVisible","bannerParams","paywallVisible","paywallParams","openPaywall","closePaywall","handlePaywall","handlePurchase","onPurchase","children","visible","onPaywall","params","onClose","onTermsOfService","onPrivacyPolicy","preload"],"sourceRoot":"../../src","sources":["PaywallManager.tsx"],"mappings":";;AAAA,OAAOA,MAAM,MAAM,wBAAqB;AACxC,OAAOC,OAAO,MAAM,yBAAsB;AAC1C,SAASC,SAAS,QAAQ,sBAAmB;AAC7C,SAASC,UAAU,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAGhD,MAAMC,cAAc,GAAGA,CAAC;EACtBC,aAAa;EACbC;AAIF,CAAC,KAAK;EACJ;EACA,MAAM;IAAEC,aAAa;IAAEC;EAAa,CAAC,GAAGZ,SAAS,CAAC;IAChDS,aAAa;IACbC;EACF,CAAC,CAAC;;EAEF;EACA,MAAM;IAAEG,cAAc;IAAEC,aAAa;IAAEC,WAAW;IAAEC;EAAa,CAAC,GAChEf,UAAU,CAAC;IACTS,YAAY;IACZD;EACF,CAAC,CAAC;;EAEJ;EACA,MAAMQ,aAAa,GAAGA,CAAA,KAAM;IAC1BF,WAAW,CAAC,CAAC,CAAC,CAAC;EACjB,CAAC;;EAED;EACA,MAAMG,cAAc,GAAGA,CAAA,KAAM;IAC3BT,aAAa,EAAEU,UAAU,GAAGH,YAAY,CAAC;EAC3C,CAAC;EAED,oBACET,KAAA,CAAAF,SAAA;IAAAe,QAAA,GACGR,YAAY,IAAI,IAAI,iBACnBT,IAAA,CAACL,MAAM;MACLuB,OAAO,EAAEV,aAAc;MACvBW,SAAS,EAAEL,aAAc;MACzBL,YAAY,EAAEA;IAAa,CAC5B,CACF,EACAE,aAAa,iBACZX,IAAA,CAACJ,OAAO;MACNsB,OAAO,EAAER,cAAe;MACxBU,MAAM,EAAET,aAAc;MACtBU,OAAO,EAAER,YAAa;MACtBG,UAAU,EAAED,cAAe;MAC3BO,gBAAgB,EAAEhB,aAAa,EAAEgB,gBAAiB;MAClDC,eAAe,EAAEjB,aAAa,EAAEiB,eAAgB;MAChDC,OAAO;IAAA,CACR,CACF;EAAA,CACD,CAAC;AAEP,CAAC;AAED,eAAenB,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
|
+
import { View, StyleSheet } from 'react-native';
|
|
5
|
+
import { WebView } from 'react-native-webview';
|
|
6
|
+
import { PAYWELL_BASE_URL, WEBVIEW_USER_AGENT } from "../constants/paywall.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
const MESSAGE_KEY_CLICK_BANNER = 'CLICK_BANNER';
|
|
9
|
+
const Banner = ({
|
|
10
|
+
visible,
|
|
11
|
+
onPaywall,
|
|
12
|
+
bannerParams
|
|
13
|
+
}) => {
|
|
14
|
+
const [isLoaded, setIsLoaded] = useState(false);
|
|
15
|
+
const [hasWebViewError, setHasWebViewError] = useState(false);
|
|
16
|
+
const handleWebViewMessage = event => {
|
|
17
|
+
const message = event.nativeEvent.data;
|
|
18
|
+
if (message === MESSAGE_KEY_CLICK_BANNER) {
|
|
19
|
+
onPaywall();
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
const getBannerWebViewUrl = () => {
|
|
23
|
+
// Banner 컴포넌트에서 직접 URL 생성
|
|
24
|
+
const baseUrl = `${PAYWELL_BASE_URL}/banner`;
|
|
25
|
+
const bannerStyle = bannerParams.style;
|
|
26
|
+
|
|
27
|
+
// 기본 파라미터들
|
|
28
|
+
const params = new URLSearchParams();
|
|
29
|
+
params.append('discount', bannerParams.discountPercent.toString());
|
|
30
|
+
params.append('locale', bannerParams.locale);
|
|
31
|
+
params.append('endedAt', bannerParams.endedAt.toISOString());
|
|
32
|
+
const url = `${baseUrl}/${bannerStyle}?${params.toString()}`;
|
|
33
|
+
return url;
|
|
34
|
+
};
|
|
35
|
+
const isCompactStyle = bannerParams.style === 'compact';
|
|
36
|
+
const isKeyFeatureSummaryStyle = bannerParams.style === 'key-feature-summary';
|
|
37
|
+
const isHighlightBenefitsStyle = bannerParams.style === 'highlight-benefits';
|
|
38
|
+
const isTextFocusedStyle = bannerParams.style === 'text-focused';
|
|
39
|
+
if (!visible || hasWebViewError) return null;
|
|
40
|
+
return /*#__PURE__*/_jsx(View, {
|
|
41
|
+
style: [styles.bannerContainer, {
|
|
42
|
+
bottom: bannerParams.bottom ?? 20
|
|
43
|
+
}, bannerParams.zIndex != null && {
|
|
44
|
+
zIndex: bannerParams.zIndex
|
|
45
|
+
}, bannerParams.elevation != null && {
|
|
46
|
+
elevation: bannerParams.elevation
|
|
47
|
+
}, 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],
|
|
48
|
+
pointerEvents: isLoaded ? 'auto' : 'none',
|
|
49
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
50
|
+
style: styles.innerRoundedContainer,
|
|
51
|
+
children: /*#__PURE__*/_jsx(WebView, {
|
|
52
|
+
source: {
|
|
53
|
+
uri: getBannerWebViewUrl()
|
|
54
|
+
},
|
|
55
|
+
onMessage: handleWebViewMessage,
|
|
56
|
+
onLoadStart: () => setIsLoaded(false),
|
|
57
|
+
onLoadEnd: () => setIsLoaded(true),
|
|
58
|
+
onError: () => {
|
|
59
|
+
console.error('[MonetaiSDK] Banner WebView onError');
|
|
60
|
+
setHasWebViewError(true);
|
|
61
|
+
},
|
|
62
|
+
onHttpError: () => {
|
|
63
|
+
console.error('[MonetaiSDK] Banner WebView onHttpError');
|
|
64
|
+
setHasWebViewError(true);
|
|
65
|
+
},
|
|
66
|
+
javaScriptEnabled: true,
|
|
67
|
+
userAgent: WEBVIEW_USER_AGENT,
|
|
68
|
+
style: styles.webView
|
|
69
|
+
})
|
|
70
|
+
})
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
const styles = StyleSheet.create({
|
|
74
|
+
bannerContainer: {
|
|
75
|
+
position: 'absolute',
|
|
76
|
+
left: 12,
|
|
77
|
+
right: 12,
|
|
78
|
+
height: 45,
|
|
79
|
+
// 기본 높이
|
|
80
|
+
backgroundColor: 'white',
|
|
81
|
+
borderRadius: 12,
|
|
82
|
+
// 둥근 모서리
|
|
83
|
+
shadowColor: 'rgba(0, 0, 0, 0.25)',
|
|
84
|
+
shadowOffset: {
|
|
85
|
+
width: 0,
|
|
86
|
+
height: 4
|
|
87
|
+
},
|
|
88
|
+
shadowOpacity: 1,
|
|
89
|
+
shadowRadius: 10,
|
|
90
|
+
elevation: 8,
|
|
91
|
+
flexDirection: 'row',
|
|
92
|
+
alignItems: 'center',
|
|
93
|
+
justifyContent: 'center',
|
|
94
|
+
zIndex: 1000
|
|
95
|
+
},
|
|
96
|
+
compactBannerContainer: {
|
|
97
|
+
height: 68 // compact 스타일일 때 높이
|
|
98
|
+
},
|
|
99
|
+
noShadow: {
|
|
100
|
+
shadowColor: 'transparent',
|
|
101
|
+
shadowOffset: {
|
|
102
|
+
width: 0,
|
|
103
|
+
height: 0
|
|
104
|
+
},
|
|
105
|
+
shadowOpacity: 0,
|
|
106
|
+
shadowRadius: 0
|
|
107
|
+
},
|
|
108
|
+
webView: {
|
|
109
|
+
flex: 1
|
|
110
|
+
},
|
|
111
|
+
visible: {
|
|
112
|
+
opacity: 1
|
|
113
|
+
},
|
|
114
|
+
hidden: {
|
|
115
|
+
opacity: 0
|
|
116
|
+
},
|
|
117
|
+
innerRoundedContainer: {
|
|
118
|
+
flex: 1,
|
|
119
|
+
borderRadius: 12,
|
|
120
|
+
overflow: 'hidden'
|
|
121
|
+
},
|
|
122
|
+
keyFeatureSummaryBannerContainer: {
|
|
123
|
+
height: 56 // key-feature-summary 스타일일 때 높이
|
|
124
|
+
},
|
|
125
|
+
highlightBenefitsBannerContainer: {
|
|
126
|
+
height: 56 // highlight-benefits 스타일일 때 높이
|
|
127
|
+
},
|
|
128
|
+
blackShadow: {
|
|
129
|
+
shadowColor: 'rgba(0, 0, 0, 0.25)'
|
|
130
|
+
},
|
|
131
|
+
redShadow: {
|
|
132
|
+
shadowColor: 'rgba(228, 78, 72, 0.25)'
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
export default Banner;
|
|
136
|
+
//# sourceMappingURL=Banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useState","View","StyleSheet","WebView","PAYWELL_BASE_URL","WEBVIEW_USER_AGENT","jsx","_jsx","MESSAGE_KEY_CLICK_BANNER","Banner","visible","onPaywall","bannerParams","isLoaded","setIsLoaded","hasWebViewError","setHasWebViewError","handleWebViewMessage","event","message","nativeEvent","data","getBannerWebViewUrl","baseUrl","bannerStyle","style","params","URLSearchParams","append","discountPercent","toString","locale","endedAt","toISOString","url","isCompactStyle","isKeyFeatureSummaryStyle","isHighlightBenefitsStyle","isTextFocusedStyle","styles","bannerContainer","bottom","zIndex","elevation","compactBannerContainer","keyFeatureSummaryBannerContainer","highlightBenefitsBannerContainer","noShadow","redShadow","blackShadow","hidden","pointerEvents","children","innerRoundedContainer","source","uri","onMessage","onLoadStart","onLoadEnd","onError","console","error","onHttpError","javaScriptEnabled","userAgent","webView","create","position","left","right","height","backgroundColor","borderRadius","shadowColor","shadowOffset","width","shadowOpacity","shadowRadius","flexDirection","alignItems","justifyContent","flex","opacity","overflow"],"sourceRoot":"../../../src","sources":["components/Banner.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
|
+
import { ActivityIndicator, StyleSheet, View, Text, TouchableOpacity } from 'react-native';
|
|
5
|
+
import { WebView } from 'react-native-webview';
|
|
6
|
+
import { PAYWELL_BASE_URL, WEBVIEW_USER_AGENT } from "../constants/paywall.js";
|
|
7
|
+
import CompactPaywallWrapper from "./paywall-wrappers/CompactPaywallWrapper.js";
|
|
8
|
+
import HighlightBenefitsPaywallWrapper from "./paywall-wrappers/HighlightBenefitsPaywallWrapper.js";
|
|
9
|
+
import KeyFeatureSummaryPaywallWrapper from "./paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js";
|
|
10
|
+
import TextFocusedPaywallWrapper from "./paywall-wrappers/TextFocusedPaywallWrapper.js";
|
|
11
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
12
|
+
const MESSAGE_KEY_PURCHASE_BUTTON = 'CLICK_PURCHASE_BUTTON';
|
|
13
|
+
const MESSAGE_KEY_CLOSE_BUTTON = 'CLICK_CLOSE_BUTTON';
|
|
14
|
+
const MESSAGE_KEY_TERMS_OF_SERVICE = 'CLICK_TERMS_OF_SERVICE';
|
|
15
|
+
const MESSAGE_KEY_PRIVACY_POLICY = 'CLICK_PRIVACY_POLICY';
|
|
16
|
+
const Paywall = ({
|
|
17
|
+
visible,
|
|
18
|
+
preload,
|
|
19
|
+
onClose,
|
|
20
|
+
onPurchase,
|
|
21
|
+
onTermsOfService,
|
|
22
|
+
onPrivacyPolicy,
|
|
23
|
+
params
|
|
24
|
+
}) => {
|
|
25
|
+
const [isLoaded, setIsLoaded] = useState(false);
|
|
26
|
+
const [hasWebViewError, setHasWebViewError] = useState(false);
|
|
27
|
+
const handleWebViewMessage = event => {
|
|
28
|
+
switch (event.nativeEvent.data) {
|
|
29
|
+
case MESSAGE_KEY_PURCHASE_BUTTON:
|
|
30
|
+
onPurchase();
|
|
31
|
+
break;
|
|
32
|
+
case MESSAGE_KEY_CLOSE_BUTTON:
|
|
33
|
+
onClose();
|
|
34
|
+
break;
|
|
35
|
+
case MESSAGE_KEY_TERMS_OF_SERVICE:
|
|
36
|
+
onTermsOfService?.();
|
|
37
|
+
break;
|
|
38
|
+
case MESSAGE_KEY_PRIVACY_POLICY:
|
|
39
|
+
onPrivacyPolicy?.();
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const getPaywallWebViewUrl = () => {
|
|
44
|
+
// monetai-web의 현재 구조에 맞춰 URL 생성
|
|
45
|
+
// 각 스타일별로 별도의 페이지가 있으므로 직접 스타일을 URL에 포함
|
|
46
|
+
const baseUrl = `${PAYWELL_BASE_URL}/paywall`;
|
|
47
|
+
const paywallStyle = params.style;
|
|
48
|
+
const searchParams = new URLSearchParams();
|
|
49
|
+
if (params.discountPercent) {
|
|
50
|
+
searchParams.append('discount', params.discountPercent);
|
|
51
|
+
}
|
|
52
|
+
if (params.endedAt) {
|
|
53
|
+
searchParams.append('endedAt', params.endedAt);
|
|
54
|
+
}
|
|
55
|
+
if (params.regularPrice) {
|
|
56
|
+
searchParams.append('regularPrice', params.regularPrice);
|
|
57
|
+
}
|
|
58
|
+
if (params.discountedPrice) {
|
|
59
|
+
searchParams.append('discountedPrice', params.discountedPrice);
|
|
60
|
+
}
|
|
61
|
+
if (params.locale) {
|
|
62
|
+
searchParams.append('locale', params.locale);
|
|
63
|
+
}
|
|
64
|
+
if (params.features) {
|
|
65
|
+
searchParams.append('features', JSON.stringify(params.features));
|
|
66
|
+
}
|
|
67
|
+
const queryString = searchParams.toString();
|
|
68
|
+
const url = `${baseUrl}/${paywallStyle}${queryString ? `?${queryString}` : ''}`;
|
|
69
|
+
return url;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// 프리로드 옵션이 없고 보이지도 않으면 렌더하지 않음
|
|
73
|
+
if (!visible && !preload) return null;
|
|
74
|
+
|
|
75
|
+
// 스타일에 따른 래퍼 선택
|
|
76
|
+
const getPaywallWrapper = () => {
|
|
77
|
+
const style = params.style;
|
|
78
|
+
const url = getPaywallWebViewUrl();
|
|
79
|
+
|
|
80
|
+
// 공통 WebView 컴포넌트
|
|
81
|
+
const commonWebView = /*#__PURE__*/_jsxs(_Fragment, {
|
|
82
|
+
children: [!isLoaded && /*#__PURE__*/_jsx(View, {
|
|
83
|
+
style: styles.loadingContainer,
|
|
84
|
+
pointerEvents: "none",
|
|
85
|
+
children: /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
86
|
+
size: "small"
|
|
87
|
+
})
|
|
88
|
+
}), /*#__PURE__*/_jsx(WebView, {
|
|
89
|
+
source: {
|
|
90
|
+
uri: url
|
|
91
|
+
},
|
|
92
|
+
onMessage: handleWebViewMessage,
|
|
93
|
+
onLoadStart: () => {
|
|
94
|
+
setIsLoaded(false);
|
|
95
|
+
},
|
|
96
|
+
onLoadEnd: () => {
|
|
97
|
+
setIsLoaded(true);
|
|
98
|
+
},
|
|
99
|
+
onError: () => {
|
|
100
|
+
console.error('[MonetaiSDK] Paywall WebView onError');
|
|
101
|
+
setIsLoaded(true);
|
|
102
|
+
setHasWebViewError(true);
|
|
103
|
+
},
|
|
104
|
+
onHttpError: () => {
|
|
105
|
+
console.error('[MonetaiSDK] Paywall WebView onHttpError');
|
|
106
|
+
setIsLoaded(true);
|
|
107
|
+
setHasWebViewError(true);
|
|
108
|
+
},
|
|
109
|
+
javaScriptEnabled: true,
|
|
110
|
+
userAgent: WEBVIEW_USER_AGENT,
|
|
111
|
+
style: [styles.webView, !isLoaded && styles.webViewHidden]
|
|
112
|
+
}), hasWebViewError && /*#__PURE__*/_jsx(View, {
|
|
113
|
+
style: styles.errorOverlay,
|
|
114
|
+
pointerEvents: "auto",
|
|
115
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
116
|
+
style: styles.errorCard,
|
|
117
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
118
|
+
style: styles.errorTitle,
|
|
119
|
+
children: "Failed to load"
|
|
120
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
121
|
+
style: styles.errorMessage,
|
|
122
|
+
children: "An unexpected error occurred while loading the paywall."
|
|
123
|
+
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
124
|
+
style: styles.errorButton,
|
|
125
|
+
onPress: onClose,
|
|
126
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
127
|
+
style: styles.errorButtonText,
|
|
128
|
+
children: "Close"
|
|
129
|
+
})
|
|
130
|
+
})]
|
|
131
|
+
})
|
|
132
|
+
})]
|
|
133
|
+
});
|
|
134
|
+
switch (style) {
|
|
135
|
+
case 'compact':
|
|
136
|
+
return /*#__PURE__*/_jsx(CompactPaywallWrapper, {
|
|
137
|
+
onClose: onClose,
|
|
138
|
+
children: commonWebView
|
|
139
|
+
});
|
|
140
|
+
case 'highlight-benefits':
|
|
141
|
+
return /*#__PURE__*/_jsx(HighlightBenefitsPaywallWrapper, {
|
|
142
|
+
onClose: onClose,
|
|
143
|
+
children: commonWebView
|
|
144
|
+
});
|
|
145
|
+
case 'key-feature-summary':
|
|
146
|
+
return /*#__PURE__*/_jsx(KeyFeatureSummaryPaywallWrapper, {
|
|
147
|
+
onClose: onClose,
|
|
148
|
+
children: commonWebView
|
|
149
|
+
});
|
|
150
|
+
case 'text-focused':
|
|
151
|
+
default:
|
|
152
|
+
return /*#__PURE__*/_jsx(TextFocusedPaywallWrapper, {
|
|
153
|
+
onClose: onClose,
|
|
154
|
+
children: commonWebView
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
return /*#__PURE__*/_jsx(View, {
|
|
159
|
+
style: [styles.overlayContainer, params.zIndex != null && {
|
|
160
|
+
zIndex: params.zIndex
|
|
161
|
+
}, params.elevation != null && {
|
|
162
|
+
elevation: params.elevation
|
|
163
|
+
}, !visible && styles.overlayHidden],
|
|
164
|
+
pointerEvents: visible ? 'auto' : 'none',
|
|
165
|
+
children: getPaywallWrapper()
|
|
166
|
+
});
|
|
167
|
+
};
|
|
168
|
+
const styles = StyleSheet.create({
|
|
169
|
+
webView: {
|
|
170
|
+
flex: 1
|
|
171
|
+
},
|
|
172
|
+
webViewHidden: {
|
|
173
|
+
opacity: 0
|
|
174
|
+
},
|
|
175
|
+
overlayContainer: {
|
|
176
|
+
position: 'absolute',
|
|
177
|
+
top: 0,
|
|
178
|
+
left: 0,
|
|
179
|
+
right: 0,
|
|
180
|
+
bottom: 0,
|
|
181
|
+
zIndex: 2000,
|
|
182
|
+
elevation: 16
|
|
183
|
+
},
|
|
184
|
+
overlayHidden: {
|
|
185
|
+
opacity: 0
|
|
186
|
+
},
|
|
187
|
+
loadingContainer: {
|
|
188
|
+
...StyleSheet.absoluteFillObject,
|
|
189
|
+
alignItems: 'center',
|
|
190
|
+
justifyContent: 'center',
|
|
191
|
+
backgroundColor: 'white'
|
|
192
|
+
},
|
|
193
|
+
errorOverlay: {
|
|
194
|
+
...StyleSheet.absoluteFillObject,
|
|
195
|
+
backgroundColor: 'rgba(0,0,0,0.4)',
|
|
196
|
+
alignItems: 'center',
|
|
197
|
+
justifyContent: 'center'
|
|
198
|
+
},
|
|
199
|
+
errorCard: {
|
|
200
|
+
width: '80%',
|
|
201
|
+
backgroundColor: 'white',
|
|
202
|
+
borderRadius: 12,
|
|
203
|
+
padding: 16,
|
|
204
|
+
alignItems: 'center'
|
|
205
|
+
},
|
|
206
|
+
errorTitle: {
|
|
207
|
+
fontSize: 16,
|
|
208
|
+
fontWeight: '600',
|
|
209
|
+
marginBottom: 8
|
|
210
|
+
},
|
|
211
|
+
errorMessage: {
|
|
212
|
+
fontSize: 13,
|
|
213
|
+
color: '#666',
|
|
214
|
+
textAlign: 'center',
|
|
215
|
+
marginBottom: 12
|
|
216
|
+
},
|
|
217
|
+
errorButton: {
|
|
218
|
+
marginTop: 4,
|
|
219
|
+
backgroundColor: '#111827',
|
|
220
|
+
borderRadius: 8,
|
|
221
|
+
paddingHorizontal: 16,
|
|
222
|
+
paddingVertical: 10
|
|
223
|
+
},
|
|
224
|
+
errorButtonText: {
|
|
225
|
+
color: 'white',
|
|
226
|
+
fontWeight: '600'
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
export default Paywall;
|
|
230
|
+
//# sourceMappingURL=Paywall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useState","ActivityIndicator","StyleSheet","View","Text","TouchableOpacity","WebView","PAYWELL_BASE_URL","WEBVIEW_USER_AGENT","CompactPaywallWrapper","HighlightBenefitsPaywallWrapper","KeyFeatureSummaryPaywallWrapper","TextFocusedPaywallWrapper","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","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","hasWebViewError","setHasWebViewError","handleWebViewMessage","event","nativeEvent","data","getPaywallWebViewUrl","baseUrl","paywallStyle","style","searchParams","URLSearchParams","discountPercent","append","endedAt","regularPrice","discountedPrice","locale","features","JSON","stringify","queryString","toString","url","getPaywallWrapper","commonWebView","children","styles","loadingContainer","pointerEvents","size","source","uri","onMessage","onLoadStart","onLoadEnd","onError","console","error","onHttpError","javaScriptEnabled","userAgent","webView","webViewHidden","errorOverlay","errorCard","errorTitle","errorMessage","errorButton","onPress","errorButtonText","overlayContainer","zIndex","elevation","overlayHidden","create","flex","opacity","position","top","left","right","bottom","absoluteFillObject","alignItems","justifyContent","backgroundColor","width","borderRadius","padding","fontSize","fontWeight","marginBottom","color","textAlign","marginTop","paddingHorizontal","paddingVertical"],"sourceRoot":"../../../src","sources":["components/Paywall.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { StyleSheet, TouchableOpacity, View } from 'react-native';
|
|
5
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
// Compact 스타일 래퍼: 하단에 붙어서 372px 높이, dim background 클릭 시 닫기
|
|
7
|
+
export const CompactPaywallWrapper = ({
|
|
8
|
+
onClose,
|
|
9
|
+
children
|
|
10
|
+
}) => {
|
|
11
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
12
|
+
style: styles.compactPaywallContainer,
|
|
13
|
+
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
14
|
+
style: styles.dimBackground,
|
|
15
|
+
activeOpacity: 1,
|
|
16
|
+
onPress: onClose
|
|
17
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
18
|
+
style: styles.compactPaywallContent,
|
|
19
|
+
children: children
|
|
20
|
+
})]
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
const styles = StyleSheet.create({
|
|
24
|
+
compactPaywallContainer: {
|
|
25
|
+
position: 'absolute',
|
|
26
|
+
top: 0,
|
|
27
|
+
left: 0,
|
|
28
|
+
right: 0,
|
|
29
|
+
bottom: 0,
|
|
30
|
+
zIndex: 2000
|
|
31
|
+
},
|
|
32
|
+
dimBackground: {
|
|
33
|
+
position: 'absolute',
|
|
34
|
+
top: 0,
|
|
35
|
+
left: 0,
|
|
36
|
+
right: 0,
|
|
37
|
+
bottom: 0,
|
|
38
|
+
backgroundColor: 'rgba(0, 0, 0, 0.5)'
|
|
39
|
+
},
|
|
40
|
+
compactPaywallContent: {
|
|
41
|
+
position: 'absolute',
|
|
42
|
+
bottom: 0,
|
|
43
|
+
// 하단에 붙음
|
|
44
|
+
left: 0,
|
|
45
|
+
// 여백 제거
|
|
46
|
+
right: 0,
|
|
47
|
+
// 여백 제거
|
|
48
|
+
height: 372,
|
|
49
|
+
backgroundColor: 'white',
|
|
50
|
+
borderRadius: 12,
|
|
51
|
+
overflow: 'hidden'
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
export default CompactPaywallWrapper;
|
|
55
|
+
//# sourceMappingURL=CompactPaywallWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","TouchableOpacity","View","jsx","_jsx","jsxs","_jsxs","CompactPaywallWrapper","onClose","children","style","styles","compactPaywallContainer","dimBackground","activeOpacity","onPress","compactPaywallContent","create","position","top","left","right","bottom","zIndex","backgroundColor","height","borderRadius","overflow"],"sourceRoot":"../../../../src","sources":["components/paywall-wrappers/CompactPaywallWrapper.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,gBAAgB,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOlE;AACA,OAAO,MAAMC,qBAA2D,GAAGA,CAAC;EAC1EC,OAAO;EACPC;AACF,CAAC,KAAK;EACJ,oBACEH,KAAA,CAACJ,IAAI;IAACQ,KAAK,EAAEC,MAAM,CAACC,uBAAwB;IAAAH,QAAA,gBAE1CL,IAAA,CAACH,gBAAgB;MACfS,KAAK,EAAEC,MAAM,CAACE,aAAc;MAC5BC,aAAa,EAAE,CAAE;MACjBC,OAAO,EAAEP;IAAQ,CAClB,CAAC,eAGFJ,IAAA,CAACF,IAAI;MAACQ,KAAK,EAAEC,MAAM,CAACK,qBAAsB;MAAAP,QAAA,EAAEA;IAAQ,CAAO,CAAC;EAAA,CACxD,CAAC;AAEX,CAAC;AAED,MAAME,MAAM,GAAGX,UAAU,CAACiB,MAAM,CAAC;EAC/BL,uBAAuB,EAAE;IACvBM,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTC,MAAM,EAAE;EACV,CAAC;EACDV,aAAa,EAAE;IACbK,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTE,eAAe,EAAE;EACnB,CAAC;EACDR,qBAAqB,EAAE;IACrBE,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;AAEF,eAAepB,qBAAqB","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { StyleSheet, SafeAreaView } from 'react-native';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
// Highlight Benefits 스타일 래퍼: 전체 화면을 차지
|
|
7
|
+
export const HighlightBenefitsPaywallWrapper = ({
|
|
8
|
+
children
|
|
9
|
+
}) => {
|
|
10
|
+
return /*#__PURE__*/_jsx(SafeAreaView, {
|
|
11
|
+
style: styles.fullScreenContainer,
|
|
12
|
+
children: children
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
const styles = StyleSheet.create({
|
|
16
|
+
fullScreenContainer: {
|
|
17
|
+
position: 'absolute',
|
|
18
|
+
top: 0,
|
|
19
|
+
left: 0,
|
|
20
|
+
right: 0,
|
|
21
|
+
bottom: 0,
|
|
22
|
+
backgroundColor: 'white',
|
|
23
|
+
zIndex: 2000
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
export default HighlightBenefitsPaywallWrapper;
|
|
27
|
+
//# sourceMappingURL=HighlightBenefitsPaywallWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","SafeAreaView","jsx","_jsx","HighlightBenefitsPaywallWrapper","children","style","styles","fullScreenContainer","create","position","top","left","right","bottom","backgroundColor","zIndex"],"sourceRoot":"../../../../src","sources":["components/paywall-wrappers/HighlightBenefitsPaywallWrapper.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,YAAY,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOxD;AACA,OAAO,MAAMC,+BAEZ,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EACpB,oBACEF,IAAA,CAACF,YAAY;IAACK,KAAK,EAAEC,MAAM,CAACC,mBAAoB;IAAAH,QAAA,EAAEA;EAAQ,CAAe,CAAC;AAE9E,CAAC;AAED,MAAME,MAAM,GAAGP,UAAU,CAACS,MAAM,CAAC;EAC/BD,mBAAmB,EAAE;IACnBE,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;AAEF,eAAeZ,+BAA+B","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { StyleSheet, SafeAreaView } from 'react-native';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
// Key Feature Summary 스타일 래퍼: 전체 화면을 차지
|
|
7
|
+
export const KeyFeatureSummaryPaywallWrapper = ({
|
|
8
|
+
children
|
|
9
|
+
}) => {
|
|
10
|
+
return /*#__PURE__*/_jsx(SafeAreaView, {
|
|
11
|
+
style: styles.fullScreenContainer,
|
|
12
|
+
children: children
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
const styles = StyleSheet.create({
|
|
16
|
+
fullScreenContainer: {
|
|
17
|
+
position: 'absolute',
|
|
18
|
+
top: 0,
|
|
19
|
+
left: 0,
|
|
20
|
+
right: 0,
|
|
21
|
+
bottom: 0,
|
|
22
|
+
backgroundColor: 'white',
|
|
23
|
+
zIndex: 2000
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
export default KeyFeatureSummaryPaywallWrapper;
|
|
27
|
+
//# sourceMappingURL=KeyFeatureSummaryPaywallWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","SafeAreaView","jsx","_jsx","KeyFeatureSummaryPaywallWrapper","children","style","styles","fullScreenContainer","create","position","top","left","right","bottom","backgroundColor","zIndex"],"sourceRoot":"../../../../src","sources":["components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,YAAY,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOxD;AACA,OAAO,MAAMC,+BAEZ,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EACpB,oBACEF,IAAA,CAACF,YAAY;IAACK,KAAK,EAAEC,MAAM,CAACC,mBAAoB;IAAAH,QAAA,EAAEA;EAAQ,CAAe,CAAC;AAE9E,CAAC;AAED,MAAME,MAAM,GAAGP,UAAU,CAACS,MAAM,CAAC;EAC/BD,mBAAmB,EAAE;IACnBE,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;AAEF,eAAeZ,+BAA+B","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { StyleSheet, SafeAreaView } from 'react-native';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
// Text Focused 스타일 래퍼: 전체 화면을 차지
|
|
7
|
+
export const TextFocusedPaywallWrapper = ({
|
|
8
|
+
children
|
|
9
|
+
}) => {
|
|
10
|
+
return /*#__PURE__*/_jsx(SafeAreaView, {
|
|
11
|
+
style: styles.fullScreenContainer,
|
|
12
|
+
children: children
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
const styles = StyleSheet.create({
|
|
16
|
+
fullScreenContainer: {
|
|
17
|
+
position: 'absolute',
|
|
18
|
+
top: 0,
|
|
19
|
+
left: 0,
|
|
20
|
+
right: 0,
|
|
21
|
+
bottom: 0,
|
|
22
|
+
backgroundColor: 'white',
|
|
23
|
+
zIndex: 2000
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
export default TextFocusedPaywallWrapper;
|
|
27
|
+
//# sourceMappingURL=TextFocusedPaywallWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","SafeAreaView","jsx","_jsx","TextFocusedPaywallWrapper","children","style","styles","fullScreenContainer","create","position","top","left","right","bottom","backgroundColor","zIndex"],"sourceRoot":"../../../../src","sources":["components/paywall-wrappers/TextFocusedPaywallWrapper.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,YAAY,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOxD;AACA,OAAO,MAAMC,yBAEZ,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EACpB,oBACEF,IAAA,CAACF,YAAY;IAACK,KAAK,EAAEC,MAAM,CAACC,mBAAoB;IAAAH,QAAA,EAAEA;EAAQ,CAAe,CAAC;AAE9E,CAAC;AAED,MAAME,MAAM,GAAGP,UAAU,CAACS,MAAM,CAAC;EAC/BD,mBAAmB,EAAE;IACnBE,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;AAEF,eAAeZ,yBAAyB","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Paywall Wrappers
|
|
4
|
+
export { default as CompactPaywallWrapper } from "./CompactPaywallWrapper.js";
|
|
5
|
+
export { default as HighlightBenefitsPaywallWrapper } from "./HighlightBenefitsPaywallWrapper.js";
|
|
6
|
+
export { default as KeyFeatureSummaryPaywallWrapper } from "./KeyFeatureSummaryPaywallWrapper.js";
|
|
7
|
+
export { default as TextFocusedPaywallWrapper } from "./TextFocusedPaywallWrapper.js";
|
|
8
|
+
|
|
9
|
+
// Default export for backward compatibility
|
|
10
|
+
export { default } from "./CompactPaywallWrapper.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["default","CompactPaywallWrapper","HighlightBenefitsPaywallWrapper","KeyFeatureSummaryPaywallWrapper","TextFocusedPaywallWrapper"],"sourceRoot":"../../../../src","sources":["components/paywall-wrappers/index.ts"],"mappings":";;AAAA;AACA,SAASA,OAAO,IAAIC,qBAAqB,QAAQ,4BAAyB;AAC1E,SAASD,OAAO,IAAIE,+BAA+B,QAAQ,sCAAmC;AAC9F,SAASF,OAAO,IAAIG,+BAA+B,QAAQ,sCAAmC;AAC9F,SAASH,OAAO,IAAII,yBAAyB,QAAQ,gCAA6B;;AAElF;AACA,SAASJ,OAAO,QAAQ,4BAAyB","ignoreList":[]}
|