@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 @@
|
|
|
1
|
+
{"version":3,"names":["PAYWELL_BASE_URL","WEBVIEW_USER_AGENT"],"sourceRoot":"../../../src","sources":["constants/paywall.ts"],"mappings":";;AAAA;AACA,OAAO,MAAMA,gBAAgB,GAAG,sCAAsC;AACtE;AACA,OAAO,MAAMC,kBAAkB,GAAG,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
4
|
+
import dayjs from 'dayjs';
|
|
5
|
+
import isBetween from 'dayjs/plugin/isBetween';
|
|
6
|
+
import { useInterval } from "./useInterval.js";
|
|
7
|
+
|
|
8
|
+
// dayjs 플러그인 확장
|
|
9
|
+
dayjs.extend(isBetween);
|
|
10
|
+
export const useBanner = ({
|
|
11
|
+
paywallConfig,
|
|
12
|
+
// PaywallConfig로 변경
|
|
13
|
+
discountInfo
|
|
14
|
+
}) => {
|
|
15
|
+
const [bannerVisible, setBannerVisible] = useState(false);
|
|
16
|
+
const [bannerParams, setBannerParams] = useState(null); // 데이터 준비 시 보관
|
|
17
|
+
|
|
18
|
+
// 할인 활성 상태 체크 함수
|
|
19
|
+
const checkDiscountActive = useCallback(() => {
|
|
20
|
+
if (bannerParams == null || bannerParams.enabled === false || bannerParams.isSubscriber === true || discountInfo == null) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
const now = dayjs();
|
|
24
|
+
return now.isBetween(dayjs(discountInfo.startedAt), dayjs(discountInfo.endedAt), null, '[]');
|
|
25
|
+
}, [discountInfo, bannerParams]);
|
|
26
|
+
const closeBanner = useCallback(() => {
|
|
27
|
+
setBannerVisible(false);
|
|
28
|
+
}, []);
|
|
29
|
+
const openBanner = useCallback(() => {
|
|
30
|
+
if (!bannerParams) {
|
|
31
|
+
console.error('[MonetaiSDK] useBanner: Cannot open banner - bannerParams is null (data not ready)');
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (checkDiscountActive()) {
|
|
35
|
+
setBannerVisible(true);
|
|
36
|
+
}
|
|
37
|
+
}, [bannerParams, checkDiscountActive]);
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
if (!paywallConfig || !discountInfo) {
|
|
40
|
+
setBannerParams(null);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const baseZIndex = paywallConfig.bannerZIndex ?? 1000;
|
|
44
|
+
const baseElevation = paywallConfig.bannerElevation ?? 8;
|
|
45
|
+
const computed = {
|
|
46
|
+
enabled: paywallConfig.enabled,
|
|
47
|
+
isSubscriber: paywallConfig.isSubscriber,
|
|
48
|
+
locale: paywallConfig.locale,
|
|
49
|
+
discountPercent: paywallConfig.discountPercent,
|
|
50
|
+
bottom: paywallConfig.bannerBottom,
|
|
51
|
+
style: paywallConfig.style,
|
|
52
|
+
endedAt: discountInfo.endedAt,
|
|
53
|
+
zIndex: baseZIndex,
|
|
54
|
+
elevation: baseElevation
|
|
55
|
+
};
|
|
56
|
+
setBannerParams(computed);
|
|
57
|
+
}, [paywallConfig, discountInfo]);
|
|
58
|
+
useEffect(() => {
|
|
59
|
+
const isActive = checkDiscountActive();
|
|
60
|
+
if (isActive) {
|
|
61
|
+
setBannerVisible(true);
|
|
62
|
+
} else {
|
|
63
|
+
setBannerVisible(false);
|
|
64
|
+
}
|
|
65
|
+
}, [checkDiscountActive]);
|
|
66
|
+
useInterval(() => {
|
|
67
|
+
const isActive = checkDiscountActive();
|
|
68
|
+
if (!isActive) {
|
|
69
|
+
setBannerVisible(false);
|
|
70
|
+
}
|
|
71
|
+
}, bannerVisible ? 1000 : null);
|
|
72
|
+
return {
|
|
73
|
+
bannerVisible,
|
|
74
|
+
openBanner,
|
|
75
|
+
closeBanner,
|
|
76
|
+
bannerParams // state로 관리되는 bannerParams 반환
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=useBanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useState","useEffect","useCallback","dayjs","isBetween","useInterval","extend","useBanner","paywallConfig","discountInfo","bannerVisible","setBannerVisible","bannerParams","setBannerParams","checkDiscountActive","enabled","isSubscriber","now","startedAt","endedAt","closeBanner","openBanner","console","error","baseZIndex","bannerZIndex","baseElevation","bannerElevation","computed","locale","discountPercent","bottom","bannerBottom","style","zIndex","elevation","isActive"],"sourceRoot":"../../../src","sources":["hooks/useBanner.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useRef } from 'react';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Custom hook for setting up an interval that can be paused/resumed
|
|
7
|
+
* @param callback Function to call on each interval
|
|
8
|
+
* @param delay Delay in milliseconds, null to pause
|
|
9
|
+
*/
|
|
10
|
+
export const useInterval = (callback, delay) => {
|
|
11
|
+
const savedCallback = useRef(() => {});
|
|
12
|
+
|
|
13
|
+
// Remember the latest callback
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
savedCallback.current = callback;
|
|
16
|
+
}, [callback]);
|
|
17
|
+
|
|
18
|
+
// Set up the interval
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
// Don't schedule if no delay is specified
|
|
21
|
+
if (delay === null) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const id = setInterval(() => {
|
|
25
|
+
savedCallback.current?.();
|
|
26
|
+
}, delay);
|
|
27
|
+
return () => clearInterval(id);
|
|
28
|
+
}, [delay]);
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=useInterval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useInterval","callback","delay","savedCallback","current","id","setInterval","clearInterval"],"sourceRoot":"../../../src","sources":["hooks/useInterval.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;;AAEzC;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAGA,CAACC,QAAoB,EAAEC,KAAoB,KAAK;EACzE,MAAMC,aAAa,GAAGJ,MAAM,CAAa,MAAM,CAAC,CAAC,CAAC;;EAElD;EACAD,SAAS,CAAC,MAAM;IACdK,aAAa,CAACC,OAAO,GAAGH,QAAQ;EAClC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;;EAEd;EACAH,SAAS,CAAC,MAAM;IACd;IACA,IAAII,KAAK,KAAK,IAAI,EAAE;MAClB;IACF;IAEA,MAAMG,EAAE,GAAGC,WAAW,CAAC,MAAM;MAC3BH,aAAa,CAACC,OAAO,GAAG,CAAC;IAC3B,CAAC,EAAEF,KAAK,CAAC;IAET,OAAO,MAAMK,aAAa,CAACF,EAAE,CAAC;EAChC,CAAC,EAAE,CAACH,KAAK,CAAC,CAAC;AACb,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useState, useCallback, useEffect } from 'react';
|
|
4
|
+
export const usePaywall = ({
|
|
5
|
+
paywallConfig,
|
|
6
|
+
// 타입 변경
|
|
7
|
+
discountInfo,
|
|
8
|
+
// discountInfo 추가
|
|
9
|
+
onClose
|
|
10
|
+
}) => {
|
|
11
|
+
const [paywallVisible, setPaywallVisible] = useState(false);
|
|
12
|
+
const [paywallParams, setPaywallParams] = useState(null);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
if (!discountInfo || !paywallConfig) {
|
|
15
|
+
setPaywallParams(null);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const paywallZ = paywallConfig.paywallZIndex ?? 2000;
|
|
19
|
+
const paywallElevation = paywallConfig.paywallElevation ?? 16;
|
|
20
|
+
const computedParams = {
|
|
21
|
+
discountPercent: paywallConfig.discountPercent.toString(),
|
|
22
|
+
endedAt: discountInfo.endedAt.toISOString(),
|
|
23
|
+
regularPrice: paywallConfig.regularPrice,
|
|
24
|
+
discountedPrice: paywallConfig.discountedPrice,
|
|
25
|
+
locale: paywallConfig.locale,
|
|
26
|
+
features: paywallConfig.features,
|
|
27
|
+
style: paywallConfig.style,
|
|
28
|
+
zIndex: paywallZ,
|
|
29
|
+
elevation: paywallElevation
|
|
30
|
+
};
|
|
31
|
+
setPaywallParams(computedParams);
|
|
32
|
+
}, [discountInfo, paywallConfig]);
|
|
33
|
+
|
|
34
|
+
// 페이월 열기
|
|
35
|
+
const openPaywall = useCallback(() => {
|
|
36
|
+
if (!paywallParams) {
|
|
37
|
+
console.error('[MonetaiSDK] usePaywall: Cannot open paywall - paywallParams is null (data not ready)');
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
setPaywallVisible(true);
|
|
41
|
+
}, [paywallParams]);
|
|
42
|
+
|
|
43
|
+
// 페이월 닫기
|
|
44
|
+
const closePaywall = useCallback(() => {
|
|
45
|
+
setPaywallVisible(false);
|
|
46
|
+
onClose?.();
|
|
47
|
+
}, [onClose]);
|
|
48
|
+
return {
|
|
49
|
+
paywallVisible,
|
|
50
|
+
paywallParams,
|
|
51
|
+
openPaywall,
|
|
52
|
+
closePaywall
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=usePaywall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useState","useCallback","useEffect","usePaywall","paywallConfig","discountInfo","onClose","paywallVisible","setPaywallVisible","paywallParams","setPaywallParams","paywallZ","paywallZIndex","paywallElevation","computedParams","discountPercent","toString","endedAt","toISOString","regularPrice","discountedPrice","locale","features","style","zIndex","elevation","openPaywall","console","error","closePaywall"],"sourceRoot":"../../../src","sources":["hooks/usePaywall.ts"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,WAAW,EAAEC,SAAS,QAAQ,OAAO;AAgBxD,OAAO,MAAMC,UAAU,GAAGA,CAAC;EACzBC,aAAa;EAAE;EACfC,YAAY;EAAE;EACdC;AACe,CAAC,KAAuB;EACvC,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGR,QAAQ,CAAC,KAAK,CAAC;EAC3D,MAAM,CAACS,aAAa,EAAEC,gBAAgB,CAAC,GAAGV,QAAQ,CAChD,IACF,CAAC;EAEDE,SAAS,CAAC,MAAM;IACd,IAAI,CAACG,YAAY,IAAI,CAACD,aAAa,EAAE;MACnCM,gBAAgB,CAAC,IAAI,CAAC;MACtB;IACF;IAEA,MAAMC,QAAQ,GAAGP,aAAa,CAACQ,aAAa,IAAI,IAAI;IACpD,MAAMC,gBAAgB,GAAGT,aAAa,CAACS,gBAAgB,IAAI,EAAE;IAC7D,MAAMC,cAA6B,GAAG;MACpCC,eAAe,EAAEX,aAAa,CAACW,eAAe,CAACC,QAAQ,CAAC,CAAC;MACzDC,OAAO,EAAEZ,YAAY,CAACY,OAAO,CAACC,WAAW,CAAC,CAAC;MAC3CC,YAAY,EAAEf,aAAa,CAACe,YAAY;MACxCC,eAAe,EAAEhB,aAAa,CAACgB,eAAe;MAC9CC,MAAM,EAAEjB,aAAa,CAACiB,MAAM;MAC5BC,QAAQ,EAAElB,aAAa,CAACkB,QAAQ;MAChCC,KAAK,EAAEnB,aAAa,CAACmB,KAAK;MAC1BC,MAAM,EAAEb,QAAQ;MAChBc,SAAS,EAAEZ;IACb,CAAC;IAEDH,gBAAgB,CAACI,cAAc,CAAC;EAClC,CAAC,EAAE,CAACT,YAAY,EAAED,aAAa,CAAC,CAAC;;EAEjC;EACA,MAAMsB,WAAW,GAAGzB,WAAW,CAAC,MAAM;IACpC,IAAI,CAACQ,aAAa,EAAE;MAClBkB,OAAO,CAACC,KAAK,CACX,uFACF,CAAC;MACD;IACF;IACApB,iBAAiB,CAAC,IAAI,CAAC;EACzB,CAAC,EAAE,CAACC,aAAa,CAAC,CAAC;;EAEnB;EACA,MAAMoB,YAAY,GAAG5B,WAAW,CAAC,MAAM;IACrCO,iBAAiB,CAAC,KAAK,CAAC;IACxBF,OAAO,GAAG,CAAC;EACb,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,OAAO;IACLC,cAAc;IACdE,aAAa;IACbiB,WAAW;IACXG;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
import MonetaiSDK from "./MonetaiSDK.js";
|
|
4
4
|
import MonetaiProvider from "./MonetaiProvider.js";
|
|
5
|
+
import Banner from "./components/Banner.js";
|
|
6
|
+
import Paywall from "./components/Paywall.js";
|
|
7
|
+
import { CompactPaywallWrapper, HighlightBenefitsPaywallWrapper, KeyFeatureSummaryPaywallWrapper, TextFocusedPaywallWrapper } from "./components/paywall-wrappers/index.js";
|
|
8
|
+
import { useBanner } from "./hooks/useBanner.js";
|
|
9
|
+
import { usePaywall } from "./hooks/usePaywall.js";
|
|
5
10
|
export default MonetaiSDK;
|
|
6
|
-
export { MonetaiProvider };
|
|
11
|
+
export { MonetaiProvider, Banner, Paywall, useBanner, usePaywall, CompactPaywallWrapper, HighlightBenefitsPaywallWrapper, KeyFeatureSummaryPaywallWrapper, TextFocusedPaywallWrapper };
|
|
12
|
+
|
|
13
|
+
// Export types
|
|
7
14
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MonetaiSDK","MonetaiProvider"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,UAAU,MAAM,iBAAc;AACrC,OAAOC,eAAe,MAAM,sBAAmB;AAE/C,
|
|
1
|
+
{"version":3,"names":["MonetaiSDK","MonetaiProvider","Banner","Paywall","CompactPaywallWrapper","HighlightBenefitsPaywallWrapper","KeyFeatureSummaryPaywallWrapper","TextFocusedPaywallWrapper","useBanner","usePaywall"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,UAAU,MAAM,iBAAc;AACrC,OAAOC,eAAe,MAAM,sBAAmB;AAC/C,OAAOC,MAAM,MAAM,wBAAqB;AACxC,OAAOC,OAAO,MAAM,yBAAsB;AAC1C,SACEC,qBAAqB,EACrBC,+BAA+B,EAC/BC,+BAA+B,EAC/BC,yBAAyB,QACpB,wCAA+B;AACtC,SAASC,SAAS,QAAQ,sBAAmB;AAC7C,SAASC,UAAU,QAAQ,uBAAoB;AAE/C,eAAeT,UAAU;AACzB,SACEC,eAAe,EACfC,MAAM,EACNC,OAAO,EACPK,SAAS,EACTC,UAAU,EACVL,qBAAqB,EACrBC,+BAA+B,EAC/BC,+BAA+B,EAC/BC,yBAAyB;;AAG3B","ignoreList":[]}
|
package/lib/module/lib.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import type { DiscountInfo } from './types';
|
|
2
|
+
import type { DiscountInfo, PaywallConfig } from './types';
|
|
3
3
|
type MonetaiProviderProps = {
|
|
4
|
-
banner?: {
|
|
5
|
-
title: string;
|
|
6
|
-
discountTitle: string;
|
|
7
|
-
onPress: () => void;
|
|
8
|
-
};
|
|
9
4
|
children: ReactNode;
|
|
10
5
|
onDiscountInfoChange?: (discountInfo: DiscountInfo | null) => void;
|
|
6
|
+
paywallConfig?: PaywallConfig;
|
|
11
7
|
};
|
|
12
8
|
/**
|
|
13
9
|
* 클라이언트 측에서 이 컴포넌트로 전체 앱을 감싸주면,
|
|
14
10
|
* SDK 초기화 + Event Emitter 구독 + 배너 렌더링을 한곳에서 처리할 수 있음
|
|
15
11
|
*/
|
|
16
|
-
export default function MonetaiProvider({ children, onDiscountInfoChange, }: MonetaiProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export default function MonetaiProvider({ children, onDiscountInfoChange, paywallConfig, }: MonetaiProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
17
13
|
export {};
|
|
18
14
|
//# sourceMappingURL=MonetaiProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonetaiProvider.d.ts","sourceRoot":"","sources":["../../../../src/MonetaiProvider.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"MonetaiProvider.d.ts","sourceRoot":"","sources":["../../../../src/MonetaiProvider.tsx"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAa3D,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;IACnE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,QAAQ,EACR,oBAAoB,EACpB,aAAa,GACd,EAAE,oBAAoB,2CAoFtB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DiscountInfo, PaywallConfig } from './types';
|
|
2
|
+
declare const PaywallManager: ({ paywallConfig, discountInfo, }: {
|
|
3
|
+
paywallConfig: PaywallConfig;
|
|
4
|
+
discountInfo: DiscountInfo | null;
|
|
5
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export default PaywallManager;
|
|
7
|
+
//# sourceMappingURL=PaywallManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaywallManager.d.ts","sourceRoot":"","sources":["../../../../src/PaywallManager.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE3D,QAAA,MAAM,cAAc,GAAI,kCAGrB;IACD,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC,4CA8CA,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { BannerParams } from '../types';
|
|
3
|
+
export interface BannerProps {
|
|
4
|
+
visible: boolean;
|
|
5
|
+
onPaywall: () => void;
|
|
6
|
+
bannerParams: BannerParams;
|
|
7
|
+
}
|
|
8
|
+
declare const Banner: React.FC<BannerProps>;
|
|
9
|
+
export default Banner;
|
|
10
|
+
//# sourceMappingURL=Banner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../../../../src/components/Banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAK7C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA6EjC,CAAC;AA4DF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PaywallParams } from '../types';
|
|
3
|
+
interface PaywallProps {
|
|
4
|
+
visible: boolean;
|
|
5
|
+
preload?: boolean;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
onPurchase: () => void;
|
|
8
|
+
onTermsOfService?: () => void;
|
|
9
|
+
onPrivacyPolicy?: () => void;
|
|
10
|
+
params: PaywallParams;
|
|
11
|
+
}
|
|
12
|
+
declare const Paywall: React.FC<PaywallProps>;
|
|
13
|
+
export default Paywall;
|
|
14
|
+
//# sourceMappingURL=Paywall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Paywall.d.ts","sourceRoot":"","sources":["../../../../../src/components/Paywall.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AASxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAY9C,UAAU,YAAY;IACpB,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA6JnC,CAAC;AAgEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface CompactPaywallWrapperProps {
|
|
3
|
+
onClose: () => void;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare const CompactPaywallWrapper: React.FC<CompactPaywallWrapperProps>;
|
|
7
|
+
export default CompactPaywallWrapper;
|
|
8
|
+
//# sourceMappingURL=CompactPaywallWrapper.d.ts.map
|
package/lib/typescript/commonjs/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompactPaywallWrapper.d.ts","sourceRoot":"","sources":["../../../../../../src/components/paywall-wrappers/CompactPaywallWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,0BAA0B;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAGD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAiBtE,CAAC;AA+BF,eAAe,qBAAqB,CAAC"}
|
package/lib/typescript/commonjs/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface HighlightBenefitsPaywallWrapperProps {
|
|
3
|
+
onClose: () => void;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare const HighlightBenefitsPaywallWrapper: React.FC<HighlightBenefitsPaywallWrapperProps>;
|
|
7
|
+
export default HighlightBenefitsPaywallWrapper;
|
|
8
|
+
//# sourceMappingURL=HighlightBenefitsPaywallWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HighlightBenefitsPaywallWrapper.d.ts","sourceRoot":"","sources":["../../../../../../src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,oCAAoC;IAC5C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAGD,eAAO,MAAM,+BAA+B,EAAE,KAAK,CAAC,EAAE,CACpD,oCAAoC,CAKrC,CAAC;AAcF,eAAe,+BAA+B,CAAC"}
|
package/lib/typescript/commonjs/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface KeyFeatureSummaryPaywallWrapperProps {
|
|
3
|
+
onClose: () => void;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare const KeyFeatureSummaryPaywallWrapper: React.FC<KeyFeatureSummaryPaywallWrapperProps>;
|
|
7
|
+
export default KeyFeatureSummaryPaywallWrapper;
|
|
8
|
+
//# sourceMappingURL=KeyFeatureSummaryPaywallWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyFeatureSummaryPaywallWrapper.d.ts","sourceRoot":"","sources":["../../../../../../src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,oCAAoC;IAC5C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAGD,eAAO,MAAM,+BAA+B,EAAE,KAAK,CAAC,EAAE,CACpD,oCAAoC,CAKrC,CAAC;AAcF,eAAe,+BAA+B,CAAC"}
|
package/lib/typescript/commonjs/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface TextFocusedPaywallWrapperProps {
|
|
3
|
+
onClose: () => void;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare const TextFocusedPaywallWrapper: React.FC<TextFocusedPaywallWrapperProps>;
|
|
7
|
+
export default TextFocusedPaywallWrapper;
|
|
8
|
+
//# sourceMappingURL=TextFocusedPaywallWrapper.d.ts.map
|
package/lib/typescript/commonjs/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextFocusedPaywallWrapper.d.ts","sourceRoot":"","sources":["../../../../../../src/components/paywall-wrappers/TextFocusedPaywallWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,8BAA8B;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAGD,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAC9C,8BAA8B,CAK/B,CAAC;AAcF,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as CompactPaywallWrapper } from './CompactPaywallWrapper';
|
|
2
|
+
export { default as HighlightBenefitsPaywallWrapper } from './HighlightBenefitsPaywallWrapper';
|
|
3
|
+
export { default as KeyFeatureSummaryPaywallWrapper } from './KeyFeatureSummaryPaywallWrapper';
|
|
4
|
+
export { default as TextFocusedPaywallWrapper } from './TextFocusedPaywallWrapper';
|
|
5
|
+
export { default } from './CompactPaywallWrapper';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/paywall-wrappers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAGnF,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paywall.d.ts","sourceRoot":"","sources":["../../../../../src/constants/paywall.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,yCAAyC,CAAC;AAEvE,eAAO,MAAM,kBAAkB,eAAe,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { BannerParams, DiscountInfo, PaywallConfig } from '../types';
|
|
2
|
+
interface UseBannerProps {
|
|
3
|
+
paywallConfig?: PaywallConfig;
|
|
4
|
+
discountInfo: DiscountInfo | null;
|
|
5
|
+
}
|
|
6
|
+
interface UseBannerReturn {
|
|
7
|
+
bannerVisible: boolean;
|
|
8
|
+
openBanner: () => void;
|
|
9
|
+
closeBanner: () => void;
|
|
10
|
+
bannerParams: BannerParams | null;
|
|
11
|
+
}
|
|
12
|
+
export declare const useBanner: ({ paywallConfig, discountInfo, }: UseBannerProps) => UseBannerReturn;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=useBanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBanner.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/useBanner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAM1E,UAAU,cAAc;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC;AAED,UAAU,eAAe;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC;AAED,eAAO,MAAM,SAAS,GAAI,kCAGvB,cAAc,KAAG,eAuFnB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom hook for setting up an interval that can be paused/resumed
|
|
3
|
+
* @param callback Function to call on each interval
|
|
4
|
+
* @param delay Delay in milliseconds, null to pause
|
|
5
|
+
*/
|
|
6
|
+
export declare const useInterval: (callback: () => void, delay: number | null) => void;
|
|
7
|
+
//# sourceMappingURL=useInterval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInterval.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/useInterval.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,IAAI,EAAE,OAAO,MAAM,GAAG,IAAI,SAqBrE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { PaywallParams, PaywallConfig, DiscountInfo } from '../types';
|
|
2
|
+
interface UsePaywallProps {
|
|
3
|
+
paywallConfig?: PaywallConfig;
|
|
4
|
+
discountInfo: DiscountInfo | null;
|
|
5
|
+
onClose?: () => void;
|
|
6
|
+
}
|
|
7
|
+
interface UsePaywallReturn {
|
|
8
|
+
paywallVisible: boolean;
|
|
9
|
+
paywallParams: PaywallParams | null;
|
|
10
|
+
openPaywall: () => void;
|
|
11
|
+
closePaywall: () => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const usePaywall: ({ paywallConfig, discountInfo, onClose, }: UsePaywallProps) => UsePaywallReturn;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=usePaywall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePaywall.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/usePaywall.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE3E,UAAU,eAAe;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,UAAU,gBAAgB;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,eAAO,MAAM,UAAU,GAAI,2CAIxB,eAAe,KAAG,gBAoDpB,CAAC"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import MonetaiSDK from './MonetaiSDK';
|
|
2
2
|
import MonetaiProvider from './MonetaiProvider';
|
|
3
|
+
import Banner from './components/Banner';
|
|
4
|
+
import Paywall from './components/Paywall';
|
|
5
|
+
import { CompactPaywallWrapper, HighlightBenefitsPaywallWrapper, KeyFeatureSummaryPaywallWrapper, TextFocusedPaywallWrapper } from './components/paywall-wrappers';
|
|
6
|
+
import { useBanner } from './hooks/useBanner';
|
|
7
|
+
import { usePaywall } from './hooks/usePaywall';
|
|
3
8
|
export default MonetaiSDK;
|
|
4
|
-
export { MonetaiProvider };
|
|
9
|
+
export { MonetaiProvider, Banner, Paywall, useBanner, usePaywall, CompactPaywallWrapper, HighlightBenefitsPaywallWrapper, KeyFeatureSummaryPaywallWrapper, TextFocusedPaywallWrapper, };
|
|
10
|
+
export type { ABTestGroup, PredictResult, EventParams, LogEventOptions, DiscountInfo, AppUserDiscountResponse, PaywallConfig, Feature, BannerParams, PaywallParams, PaywallStyle, } from './types';
|
|
5
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,eAAe,UAAU,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,OAAO,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,+BAA+B,EAC/B,yBAAyB,EAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,eAAe,UAAU,CAAC;AAC1B,OAAO,EACL,eAAe,EACf,MAAM,EACN,OAAO,EACP,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,+BAA+B,EAC/B,+BAA+B,EAC/B,yBAAyB,GAC1B,CAAC;AAGF,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,OAAO,EACP,YAAY,EACZ,aAAa,EACb,YAAY,GACb,MAAM,SAAS,CAAC"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
export type ABTestGroup = 'baseline' | 'monetai' | 'unknown';
|
|
2
2
|
export type PredictResult = 'non-purchaser' | 'purchaser' | null;
|
|
3
|
+
export type PaywallStyle = 'compact' | 'highlight-benefits' | 'key-feature-summary' | 'text-focused';
|
|
4
|
+
export interface Feature {
|
|
5
|
+
title: string;
|
|
6
|
+
description: string;
|
|
7
|
+
isPremiumOnly?: boolean;
|
|
8
|
+
}
|
|
3
9
|
export interface EventParams {
|
|
4
10
|
[key: string]: any;
|
|
5
11
|
}
|
|
@@ -15,10 +21,50 @@ export interface DiscountInfo {
|
|
|
15
21
|
}
|
|
16
22
|
export interface AppUserDiscountResponse {
|
|
17
23
|
id: number;
|
|
18
|
-
started_at:
|
|
19
|
-
ended_at:
|
|
24
|
+
started_at: string;
|
|
25
|
+
ended_at: string;
|
|
20
26
|
app_user_id: string;
|
|
21
27
|
sdk_key: string;
|
|
22
28
|
created_at: Date;
|
|
23
29
|
}
|
|
30
|
+
export interface PaywallConfig {
|
|
31
|
+
enabled: boolean;
|
|
32
|
+
isSubscriber: boolean;
|
|
33
|
+
locale: string;
|
|
34
|
+
discountPercent: number;
|
|
35
|
+
style: PaywallStyle;
|
|
36
|
+
bannerBottom?: number;
|
|
37
|
+
bannerZIndex?: number;
|
|
38
|
+
bannerElevation?: number;
|
|
39
|
+
paywallZIndex?: number;
|
|
40
|
+
paywallElevation?: number;
|
|
41
|
+
regularPrice: string;
|
|
42
|
+
discountedPrice: string;
|
|
43
|
+
features?: Feature[];
|
|
44
|
+
onPurchase?: (closePaywall: () => void) => void;
|
|
45
|
+
onTermsOfService?: () => void;
|
|
46
|
+
onPrivacyPolicy?: () => void;
|
|
47
|
+
}
|
|
48
|
+
export interface PaywallParams {
|
|
49
|
+
discountPercent: string;
|
|
50
|
+
endedAt: string;
|
|
51
|
+
regularPrice: string;
|
|
52
|
+
discountedPrice: string;
|
|
53
|
+
locale: string;
|
|
54
|
+
style: PaywallStyle;
|
|
55
|
+
features?: Feature[];
|
|
56
|
+
zIndex?: number;
|
|
57
|
+
elevation?: number;
|
|
58
|
+
}
|
|
59
|
+
export interface BannerParams {
|
|
60
|
+
enabled: boolean;
|
|
61
|
+
isSubscriber: boolean;
|
|
62
|
+
locale: string;
|
|
63
|
+
discountPercent: number;
|
|
64
|
+
endedAt: Date;
|
|
65
|
+
style: PaywallStyle;
|
|
66
|
+
bottom?: number;
|
|
67
|
+
zIndex?: number;
|
|
68
|
+
elevation?: number;
|
|
69
|
+
}
|
|
24
70
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAC7D,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,WAAW,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAC7D,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,WAAW,GAAG,IAAI,CAAC;AAGjE,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,oBAAoB,GACpB,qBAAqB,GACrB,cAAc,CAAC;AAGnB,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;CAClB;AAGD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAGrB,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAErB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import type { DiscountInfo } from './types';
|
|
2
|
+
import type { DiscountInfo, PaywallConfig } from './types';
|
|
3
3
|
type MonetaiProviderProps = {
|
|
4
|
-
banner?: {
|
|
5
|
-
title: string;
|
|
6
|
-
discountTitle: string;
|
|
7
|
-
onPress: () => void;
|
|
8
|
-
};
|
|
9
4
|
children: ReactNode;
|
|
10
5
|
onDiscountInfoChange?: (discountInfo: DiscountInfo | null) => void;
|
|
6
|
+
paywallConfig?: PaywallConfig;
|
|
11
7
|
};
|
|
12
8
|
/**
|
|
13
9
|
* 클라이언트 측에서 이 컴포넌트로 전체 앱을 감싸주면,
|
|
14
10
|
* SDK 초기화 + Event Emitter 구독 + 배너 렌더링을 한곳에서 처리할 수 있음
|
|
15
11
|
*/
|
|
16
|
-
export default function MonetaiProvider({ children, onDiscountInfoChange, }: MonetaiProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export default function MonetaiProvider({ children, onDiscountInfoChange, paywallConfig, }: MonetaiProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
17
13
|
export {};
|
|
18
14
|
//# sourceMappingURL=MonetaiProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonetaiProvider.d.ts","sourceRoot":"","sources":["../../../../src/MonetaiProvider.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"MonetaiProvider.d.ts","sourceRoot":"","sources":["../../../../src/MonetaiProvider.tsx"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAa3D,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;IACnE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,QAAQ,EACR,oBAAoB,EACpB,aAAa,GACd,EAAE,oBAAoB,2CAoFtB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DiscountInfo, PaywallConfig } from './types';
|
|
2
|
+
declare const PaywallManager: ({ paywallConfig, discountInfo, }: {
|
|
3
|
+
paywallConfig: PaywallConfig;
|
|
4
|
+
discountInfo: DiscountInfo | null;
|
|
5
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export default PaywallManager;
|
|
7
|
+
//# sourceMappingURL=PaywallManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaywallManager.d.ts","sourceRoot":"","sources":["../../../../src/PaywallManager.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE3D,QAAA,MAAM,cAAc,GAAI,kCAGrB;IACD,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC,4CA8CA,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { BannerParams } from '../types';
|
|
3
|
+
export interface BannerProps {
|
|
4
|
+
visible: boolean;
|
|
5
|
+
onPaywall: () => void;
|
|
6
|
+
bannerParams: BannerParams;
|
|
7
|
+
}
|
|
8
|
+
declare const Banner: React.FC<BannerProps>;
|
|
9
|
+
export default Banner;
|
|
10
|
+
//# sourceMappingURL=Banner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../../../../src/components/Banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAK7C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA6EjC,CAAC;AA4DF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PaywallParams } from '../types';
|
|
3
|
+
interface PaywallProps {
|
|
4
|
+
visible: boolean;
|
|
5
|
+
preload?: boolean;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
onPurchase: () => void;
|
|
8
|
+
onTermsOfService?: () => void;
|
|
9
|
+
onPrivacyPolicy?: () => void;
|
|
10
|
+
params: PaywallParams;
|
|
11
|
+
}
|
|
12
|
+
declare const Paywall: React.FC<PaywallProps>;
|
|
13
|
+
export default Paywall;
|
|
14
|
+
//# sourceMappingURL=Paywall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Paywall.d.ts","sourceRoot":"","sources":["../../../../../src/components/Paywall.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AASxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAY9C,UAAU,YAAY;IACpB,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA6JnC,CAAC;AAgEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface CompactPaywallWrapperProps {
|
|
3
|
+
onClose: () => void;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare const CompactPaywallWrapper: React.FC<CompactPaywallWrapperProps>;
|
|
7
|
+
export default CompactPaywallWrapper;
|
|
8
|
+
//# sourceMappingURL=CompactPaywallWrapper.d.ts.map
|