@hayanmind/monetai-react-native 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/lib/commonjs/MonetaiProvider.js +45 -23
  2. package/lib/commonjs/MonetaiProvider.js.map +1 -1
  3. package/lib/commonjs/PaywallManager.js +63 -0
  4. package/lib/commonjs/PaywallManager.js.map +1 -0
  5. package/lib/commonjs/components/Banner.js +141 -0
  6. package/lib/commonjs/components/Banner.js.map +1 -0
  7. package/lib/commonjs/components/Paywall.js +236 -0
  8. package/lib/commonjs/components/Paywall.js.map +1 -0
  9. package/lib/commonjs/components/paywall-wrappers/CompactPaywallWrapper.js +61 -0
  10. package/lib/commonjs/components/paywall-wrappers/CompactPaywallWrapper.js.map +1 -0
  11. package/lib/commonjs/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js +33 -0
  12. package/lib/commonjs/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js.map +1 -0
  13. package/lib/commonjs/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js +33 -0
  14. package/lib/commonjs/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js.map +1 -0
  15. package/lib/commonjs/components/paywall-wrappers/TextFocusedPaywallWrapper.js +33 -0
  16. package/lib/commonjs/components/paywall-wrappers/TextFocusedPaywallWrapper.js.map +1 -0
  17. package/lib/commonjs/components/paywall-wrappers/index.js +41 -0
  18. package/lib/commonjs/components/paywall-wrappers/index.js.map +1 -0
  19. package/lib/commonjs/constants/paywall.js +11 -0
  20. package/lib/commonjs/constants/paywall.js.map +1 -0
  21. package/lib/commonjs/hooks/useBanner.js +84 -0
  22. package/lib/commonjs/hooks/useBanner.js.map +1 -0
  23. package/lib/commonjs/hooks/useInterval.js +34 -0
  24. package/lib/commonjs/hooks/useInterval.js.map +1 -0
  25. package/lib/commonjs/hooks/usePaywall.js +60 -0
  26. package/lib/commonjs/hooks/usePaywall.js.map +1 -0
  27. package/lib/commonjs/index.js +54 -1
  28. package/lib/commonjs/index.js.map +1 -1
  29. package/lib/commonjs/lib.js +2 -2
  30. package/lib/module/MonetaiProvider.js +48 -25
  31. package/lib/module/MonetaiProvider.js.map +1 -1
  32. package/lib/module/PaywallManager.js +58 -0
  33. package/lib/module/PaywallManager.js.map +1 -0
  34. package/lib/module/components/Banner.js +136 -0
  35. package/lib/module/components/Banner.js.map +1 -0
  36. package/lib/module/components/Paywall.js +230 -0
  37. package/lib/module/components/Paywall.js.map +1 -0
  38. package/lib/module/components/paywall-wrappers/CompactPaywallWrapper.js +55 -0
  39. package/lib/module/components/paywall-wrappers/CompactPaywallWrapper.js.map +1 -0
  40. package/lib/module/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js +27 -0
  41. package/lib/module/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js.map +1 -0
  42. package/lib/module/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js +27 -0
  43. package/lib/module/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js.map +1 -0
  44. package/lib/module/components/paywall-wrappers/TextFocusedPaywallWrapper.js +27 -0
  45. package/lib/module/components/paywall-wrappers/TextFocusedPaywallWrapper.js.map +1 -0
  46. package/lib/module/components/paywall-wrappers/index.js +11 -0
  47. package/lib/module/components/paywall-wrappers/index.js.map +1 -0
  48. package/lib/module/constants/paywall.js +7 -0
  49. package/lib/module/constants/paywall.js.map +1 -0
  50. package/lib/module/hooks/useBanner.js +79 -0
  51. package/lib/module/hooks/useBanner.js.map +1 -0
  52. package/lib/module/hooks/useInterval.js +30 -0
  53. package/lib/module/hooks/useInterval.js.map +1 -0
  54. package/lib/module/hooks/usePaywall.js +55 -0
  55. package/lib/module/hooks/usePaywall.js.map +1 -0
  56. package/lib/module/index.js +8 -1
  57. package/lib/module/index.js.map +1 -1
  58. package/lib/module/lib.js +2 -2
  59. package/lib/typescript/commonjs/src/MonetaiProvider.d.ts +3 -7
  60. package/lib/typescript/commonjs/src/MonetaiProvider.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/src/PaywallManager.d.ts +7 -0
  62. package/lib/typescript/commonjs/src/PaywallManager.d.ts.map +1 -0
  63. package/lib/typescript/commonjs/src/components/Banner.d.ts +10 -0
  64. package/lib/typescript/commonjs/src/components/Banner.d.ts.map +1 -0
  65. package/lib/typescript/commonjs/src/components/Paywall.d.ts +14 -0
  66. package/lib/typescript/commonjs/src/components/Paywall.d.ts.map +1 -0
  67. package/lib/typescript/commonjs/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts +8 -0
  68. package/lib/typescript/commonjs/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts.map +1 -0
  69. package/lib/typescript/commonjs/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts +8 -0
  70. package/lib/typescript/commonjs/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts.map +1 -0
  71. package/lib/typescript/commonjs/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts +8 -0
  72. package/lib/typescript/commonjs/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts +8 -0
  74. package/lib/typescript/commonjs/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/src/components/paywall-wrappers/index.d.ts +6 -0
  76. package/lib/typescript/commonjs/src/components/paywall-wrappers/index.d.ts.map +1 -0
  77. package/lib/typescript/commonjs/src/constants/paywall.d.ts +3 -0
  78. package/lib/typescript/commonjs/src/constants/paywall.d.ts.map +1 -0
  79. package/lib/typescript/commonjs/src/hooks/useBanner.d.ts +14 -0
  80. package/lib/typescript/commonjs/src/hooks/useBanner.d.ts.map +1 -0
  81. package/lib/typescript/commonjs/src/hooks/useInterval.d.ts +7 -0
  82. package/lib/typescript/commonjs/src/hooks/useInterval.d.ts.map +1 -0
  83. package/lib/typescript/commonjs/src/hooks/usePaywall.d.ts +15 -0
  84. package/lib/typescript/commonjs/src/hooks/usePaywall.d.ts.map +1 -0
  85. package/lib/typescript/commonjs/src/index.d.ts +7 -1
  86. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  87. package/lib/typescript/commonjs/src/types.d.ts +48 -2
  88. package/lib/typescript/commonjs/src/types.d.ts.map +1 -1
  89. package/lib/typescript/module/src/MonetaiProvider.d.ts +3 -7
  90. package/lib/typescript/module/src/MonetaiProvider.d.ts.map +1 -1
  91. package/lib/typescript/module/src/PaywallManager.d.ts +7 -0
  92. package/lib/typescript/module/src/PaywallManager.d.ts.map +1 -0
  93. package/lib/typescript/module/src/components/Banner.d.ts +10 -0
  94. package/lib/typescript/module/src/components/Banner.d.ts.map +1 -0
  95. package/lib/typescript/module/src/components/Paywall.d.ts +14 -0
  96. package/lib/typescript/module/src/components/Paywall.d.ts.map +1 -0
  97. package/lib/typescript/module/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts +8 -0
  98. package/lib/typescript/module/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts.map +1 -0
  99. package/lib/typescript/module/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts +8 -0
  100. package/lib/typescript/module/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts.map +1 -0
  101. package/lib/typescript/module/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts +8 -0
  102. package/lib/typescript/module/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts.map +1 -0
  103. package/lib/typescript/module/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts +8 -0
  104. package/lib/typescript/module/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts.map +1 -0
  105. package/lib/typescript/module/src/components/paywall-wrappers/index.d.ts +6 -0
  106. package/lib/typescript/module/src/components/paywall-wrappers/index.d.ts.map +1 -0
  107. package/lib/typescript/module/src/constants/paywall.d.ts +3 -0
  108. package/lib/typescript/module/src/constants/paywall.d.ts.map +1 -0
  109. package/lib/typescript/module/src/hooks/useBanner.d.ts +14 -0
  110. package/lib/typescript/module/src/hooks/useBanner.d.ts.map +1 -0
  111. package/lib/typescript/module/src/hooks/useInterval.d.ts +7 -0
  112. package/lib/typescript/module/src/hooks/useInterval.d.ts.map +1 -0
  113. package/lib/typescript/module/src/hooks/usePaywall.d.ts +15 -0
  114. package/lib/typescript/module/src/hooks/usePaywall.d.ts.map +1 -0
  115. package/lib/typescript/module/src/index.d.ts +7 -1
  116. package/lib/typescript/module/src/index.d.ts.map +1 -1
  117. package/lib/typescript/module/src/types.d.ts +48 -2
  118. package/lib/typescript/module/src/types.d.ts.map +1 -1
  119. package/package.json +4 -2
  120. package/src/MonetaiProvider.tsx +72 -29
  121. package/src/PaywallManager.tsx +61 -0
  122. package/src/components/Banner.tsx +152 -0
  123. package/src/components/Paywall.tsx +254 -0
  124. package/src/components/paywall-wrappers/CompactPaywallWrapper.tsx +58 -0
  125. package/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.tsx +30 -0
  126. package/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.tsx +30 -0
  127. package/src/components/paywall-wrappers/TextFocusedPaywallWrapper.tsx +30 -0
  128. package/src/components/paywall-wrappers/index.ts +8 -0
  129. package/src/constants/paywall.ts +4 -0
  130. package/src/hooks/useBanner.ts +112 -0
  131. package/src/hooks/useInterval.ts +29 -0
  132. package/src/hooks/usePaywall.ts +73 -0
  133. package/src/index.tsx +36 -1
  134. package/src/types.ts +65 -2
package/src/types.ts CHANGED
@@ -1,6 +1,20 @@
1
1
  export type ABTestGroup = 'baseline' | 'monetai' | 'unknown';
2
2
  export type PredictResult = 'non-purchaser' | 'purchaser' | null;
3
3
 
4
+ // Banner and Paywall style types
5
+ export type PaywallStyle =
6
+ | 'compact'
7
+ | 'highlight-benefits'
8
+ | 'key-feature-summary'
9
+ | 'text-focused';
10
+
11
+ // Feature type for paywall
12
+ export interface Feature {
13
+ title: string;
14
+ description: string;
15
+ isPremiumOnly?: boolean; // highlight-benefits 스타일에서만 사용
16
+ }
17
+
4
18
  export interface EventParams {
5
19
  [key: string]: any;
6
20
  }
@@ -19,9 +33,58 @@ export interface DiscountInfo {
19
33
 
20
34
  export interface AppUserDiscountResponse {
21
35
  id: number;
22
- started_at: Date;
23
- ended_at: Date;
36
+ started_at: string; // API에서 문자열로 오므로 string으로 변경
37
+ ended_at: string; // API에서 문자열로 오므로 string으로 변경
24
38
  app_user_id: string;
25
39
  sdk_key: string;
26
40
  created_at: Date;
27
41
  }
42
+
43
+ // Unified configuration for both banner and paywall
44
+ export interface PaywallConfig {
45
+ enabled: boolean; // 자동 배너 표시 활성화 여부
46
+ isSubscriber: boolean; // 구독자 여부 (true면 배너 표시 안함)
47
+ locale: string; // 언어 설정 (필수)
48
+ discountPercent: number; // 할인율 (필수, 0-100)
49
+ style: PaywallStyle; // 스타일 (기본값: 'text-focused')
50
+ bannerBottom?: number; // 플로팅 배너의 하단에서부터의 거리 (기본값: 20)
51
+ // z-order controls per surface
52
+ bannerZIndex?: number;
53
+ bannerElevation?: number;
54
+ paywallZIndex?: number;
55
+ paywallElevation?: number;
56
+ regularPrice: string; // 정가 (고객사 설정)
57
+ discountedPrice: string; // 할인된 가격 (고객사 설정)
58
+ features?: Feature[]; // 기능 목록 (highlight-benefits, key-feature-summary 스타일에서만 사용)
59
+
60
+ // Callback functions
61
+ onPurchase?: (closePaywall: () => void) => void; // 구매 버튼 클릭 콜백
62
+ onTermsOfService?: () => void; // 이용약관 클릭 콜백
63
+ onPrivacyPolicy?: () => void; // 개인정보처리방침 클릭 콜백
64
+ }
65
+
66
+ export interface PaywallParams {
67
+ discountPercent: string;
68
+ endedAt: string; // SDK 내부에서 처리
69
+ regularPrice: string;
70
+ discountedPrice: string;
71
+ locale: string;
72
+ style: PaywallStyle; // paywall 스타일
73
+ features?: Feature[]; // Feature[] 타입으로 변경
74
+ // Optional z-order controls
75
+ zIndex?: number;
76
+ elevation?: number;
77
+ }
78
+
79
+ export interface BannerParams {
80
+ enabled: boolean;
81
+ isSubscriber: boolean; // 구독자 여부
82
+ locale: string;
83
+ discountPercent: number;
84
+ endedAt: Date;
85
+ style: PaywallStyle;
86
+ bottom?: number;
87
+ // Optional z-order controls
88
+ zIndex?: number;
89
+ elevation?: number;
90
+ }