@zezosoft/react-native-zezopay 1.0.2 → 1.0.4

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 (223) hide show
  1. package/README.md +15 -7
  2. package/lib/module/index.js +1 -1
  3. package/lib/module/zezopay/ZezoPay.js +248 -0
  4. package/lib/module/zezopay/ZezoPay.js.map +1 -0
  5. package/lib/module/{ZezoPay → zezopay}/components/Header.js +28 -10
  6. package/lib/module/zezopay/components/Header.js.map +1 -0
  7. package/lib/module/zezopay/components/PayButton.js +192 -0
  8. package/lib/module/zezopay/components/PayButton.js.map +1 -0
  9. package/lib/module/{ZezoPay → zezopay}/components/PaymentMethod.js +96 -70
  10. package/lib/module/zezopay/components/PaymentMethod.js.map +1 -0
  11. package/lib/module/{ZezoPay → zezopay}/components/Summary.js +54 -43
  12. package/lib/module/zezopay/components/Summary.js.map +1 -0
  13. package/lib/module/zezopay/components/VoucherBox.js +206 -0
  14. package/lib/module/zezopay/components/VoucherBox.js.map +1 -0
  15. package/lib/module/zezopay/components/index.js +8 -0
  16. package/lib/module/zezopay/components/index.js.map +1 -0
  17. package/lib/module/zezopay/context/ZezoPayContext.js +24 -0
  18. package/lib/module/zezopay/context/ZezoPayContext.js.map +1 -0
  19. package/lib/module/zezopay/context/index.js +4 -0
  20. package/lib/module/zezopay/context/index.js.map +1 -0
  21. package/lib/module/zezopay/hooks/index.js +5 -0
  22. package/lib/module/zezopay/hooks/index.js.map +1 -0
  23. package/lib/module/zezopay/hooks/useAsync.js +44 -0
  24. package/lib/module/zezopay/hooks/useAsync.js.map +1 -0
  25. package/lib/module/zezopay/hooks/useZezoPay.helpers.js +217 -0
  26. package/lib/module/zezopay/hooks/useZezoPay.helpers.js.map +1 -0
  27. package/lib/module/zezopay/hooks/useZezoPay.js +219 -0
  28. package/lib/module/zezopay/hooks/useZezoPay.js.map +1 -0
  29. package/lib/module/zezopay/index.js +10 -0
  30. package/lib/module/zezopay/index.js.map +1 -0
  31. package/lib/module/zezopay/payments/providers/iap/IAP.js +201 -0
  32. package/lib/module/zezopay/payments/providers/iap/IAP.js.map +1 -0
  33. package/lib/module/zezopay/payments/providers/index.js +12 -0
  34. package/lib/module/zezopay/payments/providers/index.js.map +1 -0
  35. package/lib/module/zezopay/payments/providers/payment-gateways.types.d.js +2 -0
  36. package/lib/module/zezopay/payments/providers/payment-gateways.types.d.js.map +1 -0
  37. package/lib/module/zezopay/payments/providers/razorpay/Razorpay.js +40 -0
  38. package/lib/module/zezopay/payments/providers/razorpay/Razorpay.js.map +1 -0
  39. package/lib/module/zezopay/payments/providers/stripe/Stripe.js +58 -0
  40. package/lib/module/zezopay/payments/providers/stripe/Stripe.js.map +1 -0
  41. package/lib/module/zezopay/services/api-sdk.js +24 -0
  42. package/lib/module/zezopay/services/api-sdk.js.map +1 -0
  43. package/lib/module/zezopay/services/baseService.js +55 -0
  44. package/lib/module/zezopay/services/baseService.js.map +1 -0
  45. package/lib/module/zezopay/services/common.types.js +2 -0
  46. package/lib/module/zezopay/services/common.types.js.map +1 -0
  47. package/lib/module/zezopay/services/digitalProducts/digitalProducts.js +72 -0
  48. package/lib/module/zezopay/services/digitalProducts/digitalProducts.js.map +1 -0
  49. package/lib/module/zezopay/services/digitalProducts/digitalProducts.types.js +4 -0
  50. package/lib/module/zezopay/services/digitalProducts/digitalProducts.types.js.map +1 -0
  51. package/lib/module/zezopay/services/digitalProducts/index.js +5 -0
  52. package/lib/module/zezopay/services/digitalProducts/index.js.map +1 -0
  53. package/lib/module/zezopay/services/iap/iap.js +20 -0
  54. package/lib/module/zezopay/services/iap/iap.js.map +1 -0
  55. package/lib/module/zezopay/services/iap/iap.types.js +2 -0
  56. package/lib/module/zezopay/services/iap/iap.types.js.map +1 -0
  57. package/lib/module/zezopay/services/iap/index.js +5 -0
  58. package/lib/module/zezopay/services/iap/index.js.map +1 -0
  59. package/lib/module/zezopay/services/index.js +10 -0
  60. package/lib/module/zezopay/services/index.js.map +1 -0
  61. package/lib/module/zezopay/services/payments/index.js +5 -0
  62. package/lib/module/zezopay/services/payments/index.js.map +1 -0
  63. package/lib/module/zezopay/services/payments/payments.js +52 -0
  64. package/lib/module/zezopay/services/payments/payments.js.map +1 -0
  65. package/lib/module/zezopay/services/payments/payments.types.js +52 -0
  66. package/lib/module/zezopay/services/payments/payments.types.js.map +1 -0
  67. package/lib/module/zezopay/services/subscriptions/index.js +5 -0
  68. package/lib/module/zezopay/services/subscriptions/index.js.map +1 -0
  69. package/lib/module/zezopay/services/subscriptions/plan/index.js +5 -0
  70. package/lib/module/zezopay/services/subscriptions/plan/index.js.map +1 -0
  71. package/lib/module/zezopay/services/subscriptions/plan/plan.js +57 -0
  72. package/lib/module/zezopay/services/subscriptions/plan/plan.js.map +1 -0
  73. package/lib/module/zezopay/services/subscriptions/plan/plan.types.js +4 -0
  74. package/lib/module/zezopay/services/subscriptions/plan/plan.types.js.map +1 -0
  75. package/lib/module/zezopay/services/utils/errorFormatter.js +49 -0
  76. package/lib/module/zezopay/services/utils/errorFormatter.js.map +1 -0
  77. package/lib/module/zezopay/services/utils/index.js +4 -0
  78. package/lib/module/zezopay/services/utils/index.js.map +1 -0
  79. package/lib/module/zezopay/theme.js +40 -0
  80. package/lib/module/zezopay/theme.js.map +1 -0
  81. package/lib/module/{ZezoPay → zezopay}/types/index.js.map +1 -1
  82. package/lib/module/{ZezoPay → zezopay}/utils/index.js +2 -1
  83. package/lib/module/zezopay/utils/index.js.map +1 -0
  84. package/lib/typescript/src/index.d.ts +1 -1
  85. package/lib/typescript/src/zezopay/ZezoPay.d.ts.map +1 -0
  86. package/lib/typescript/src/{ZezoPay → zezopay}/components/Header.d.ts +2 -0
  87. package/lib/typescript/src/zezopay/components/Header.d.ts.map +1 -0
  88. package/lib/typescript/src/{ZezoPay → zezopay}/components/PayButton.d.ts +2 -0
  89. package/lib/typescript/src/zezopay/components/PayButton.d.ts.map +1 -0
  90. package/lib/typescript/src/zezopay/components/PaymentMethod.d.ts +15 -0
  91. package/lib/typescript/src/zezopay/components/PaymentMethod.d.ts.map +1 -0
  92. package/lib/typescript/src/zezopay/components/Summary.d.ts +11 -0
  93. package/lib/typescript/src/zezopay/components/Summary.d.ts.map +1 -0
  94. package/lib/typescript/src/zezopay/components/VoucherBox.d.ts +14 -0
  95. package/lib/typescript/src/zezopay/components/VoucherBox.d.ts.map +1 -0
  96. package/lib/typescript/src/zezopay/components/index.d.ts +6 -0
  97. package/lib/typescript/src/zezopay/components/index.d.ts.map +1 -0
  98. package/lib/typescript/src/zezopay/context/ZezoPayContext.d.ts +10 -0
  99. package/lib/typescript/src/zezopay/context/ZezoPayContext.d.ts.map +1 -0
  100. package/lib/typescript/src/zezopay/context/index.d.ts +2 -0
  101. package/lib/typescript/src/zezopay/context/index.d.ts.map +1 -0
  102. package/lib/typescript/src/zezopay/hooks/index.d.ts +4 -0
  103. package/lib/typescript/src/zezopay/hooks/index.d.ts.map +1 -0
  104. package/lib/typescript/src/zezopay/hooks/useAsync.d.ts +8 -0
  105. package/lib/typescript/src/zezopay/hooks/useAsync.d.ts.map +1 -0
  106. package/lib/typescript/src/zezopay/hooks/useZezoPay.d.ts +41 -0
  107. package/lib/typescript/src/zezopay/hooks/useZezoPay.d.ts.map +1 -0
  108. package/lib/typescript/src/zezopay/hooks/useZezoPay.helpers.d.ts +23 -0
  109. package/lib/typescript/src/zezopay/hooks/useZezoPay.helpers.d.ts.map +1 -0
  110. package/lib/typescript/src/zezopay/index.d.ts +8 -0
  111. package/lib/typescript/src/zezopay/index.d.ts.map +1 -0
  112. package/lib/typescript/src/zezopay/payments/providers/iap/IAP.d.ts +17 -0
  113. package/lib/typescript/src/zezopay/payments/providers/iap/IAP.d.ts.map +1 -0
  114. package/lib/typescript/src/zezopay/payments/providers/index.d.ts +9 -0
  115. package/lib/typescript/src/zezopay/payments/providers/index.d.ts.map +1 -0
  116. package/lib/typescript/src/zezopay/payments/providers/razorpay/Razorpay.d.ts.map +1 -0
  117. package/lib/typescript/src/zezopay/payments/providers/stripe/Stripe.d.ts +7 -0
  118. package/lib/typescript/src/zezopay/payments/providers/stripe/Stripe.d.ts.map +1 -0
  119. package/lib/typescript/src/zezopay/services/api-sdk.d.ts +31 -0
  120. package/lib/typescript/src/zezopay/services/api-sdk.d.ts.map +1 -0
  121. package/lib/typescript/src/zezopay/services/baseService.d.ts +9 -0
  122. package/lib/typescript/src/zezopay/services/baseService.d.ts.map +1 -0
  123. package/lib/typescript/src/zezopay/services/common.types.d.ts +25 -0
  124. package/lib/typescript/src/zezopay/services/common.types.d.ts.map +1 -0
  125. package/lib/typescript/src/zezopay/services/digitalProducts/digitalProducts.d.ts +15 -0
  126. package/lib/typescript/src/zezopay/services/digitalProducts/digitalProducts.d.ts.map +1 -0
  127. package/lib/typescript/src/zezopay/services/digitalProducts/digitalProducts.types.d.ts +79 -0
  128. package/lib/typescript/src/zezopay/services/digitalProducts/digitalProducts.types.d.ts.map +1 -0
  129. package/lib/typescript/src/zezopay/services/digitalProducts/index.d.ts +3 -0
  130. package/lib/typescript/src/zezopay/services/digitalProducts/index.d.ts.map +1 -0
  131. package/lib/typescript/src/zezopay/services/iap/iap.d.ts +13 -0
  132. package/lib/typescript/src/zezopay/services/iap/iap.d.ts.map +1 -0
  133. package/lib/typescript/src/zezopay/services/iap/iap.types.d.ts +47 -0
  134. package/lib/typescript/src/zezopay/services/iap/iap.types.d.ts.map +1 -0
  135. package/lib/typescript/src/zezopay/services/iap/index.d.ts +3 -0
  136. package/lib/typescript/src/zezopay/services/iap/index.d.ts.map +1 -0
  137. package/lib/typescript/src/zezopay/services/index.d.ts +9 -0
  138. package/lib/typescript/src/zezopay/services/index.d.ts.map +1 -0
  139. package/lib/typescript/src/zezopay/services/payments/index.d.ts +3 -0
  140. package/lib/typescript/src/zezopay/services/payments/index.d.ts.map +1 -0
  141. package/lib/typescript/src/zezopay/services/payments/payments.d.ts +26 -0
  142. package/lib/typescript/src/zezopay/services/payments/payments.d.ts.map +1 -0
  143. package/lib/typescript/src/zezopay/services/payments/payments.types.d.ts +121 -0
  144. package/lib/typescript/src/zezopay/services/payments/payments.types.d.ts.map +1 -0
  145. package/lib/typescript/src/zezopay/services/subscriptions/index.d.ts +3 -0
  146. package/lib/typescript/src/zezopay/services/subscriptions/index.d.ts.map +1 -0
  147. package/lib/typescript/src/zezopay/services/subscriptions/plan/index.d.ts +3 -0
  148. package/lib/typescript/src/zezopay/services/subscriptions/plan/index.d.ts.map +1 -0
  149. package/lib/typescript/src/zezopay/services/subscriptions/plan/plan.d.ts +19 -0
  150. package/lib/typescript/src/zezopay/services/subscriptions/plan/plan.d.ts.map +1 -0
  151. package/lib/typescript/src/zezopay/services/subscriptions/plan/plan.types.d.ts +64 -0
  152. package/lib/typescript/src/zezopay/services/subscriptions/plan/plan.types.d.ts.map +1 -0
  153. package/lib/typescript/src/zezopay/services/utils/errorFormatter.d.ts +6 -0
  154. package/lib/typescript/src/zezopay/services/utils/errorFormatter.d.ts.map +1 -0
  155. package/lib/typescript/src/zezopay/services/utils/index.d.ts +2 -0
  156. package/lib/typescript/src/zezopay/services/utils/index.d.ts.map +1 -0
  157. package/lib/typescript/src/zezopay/theme.d.ts +38 -0
  158. package/lib/typescript/src/zezopay/theme.d.ts.map +1 -0
  159. package/lib/typescript/src/zezopay/types/index.d.ts +85 -0
  160. package/lib/typescript/src/zezopay/types/index.d.ts.map +1 -0
  161. package/lib/typescript/src/{ZezoPay → zezopay}/utils/index.d.ts.map +1 -1
  162. package/package.json +14 -7
  163. package/lib/module/ZezoPay/Payments/Providers/PaymentGateways.types.d.js +0 -2
  164. package/lib/module/ZezoPay/Payments/Providers/PaymentGateways.types.d.js.map +0 -1
  165. package/lib/module/ZezoPay/Payments/Providers/Razorpay/Razorpay.js +0 -39
  166. package/lib/module/ZezoPay/Payments/Providers/Razorpay/Razorpay.js.map +0 -1
  167. package/lib/module/ZezoPay/Payments/Providers/index.js +0 -10
  168. package/lib/module/ZezoPay/Payments/Providers/index.js.map +0 -1
  169. package/lib/module/ZezoPay/ZezoPay.js +0 -178
  170. package/lib/module/ZezoPay/ZezoPay.js.map +0 -1
  171. package/lib/module/ZezoPay/components/Header.js.map +0 -1
  172. package/lib/module/ZezoPay/components/PayButton.js +0 -143
  173. package/lib/module/ZezoPay/components/PayButton.js.map +0 -1
  174. package/lib/module/ZezoPay/components/PaymentMethod.js.map +0 -1
  175. package/lib/module/ZezoPay/components/Summary.js.map +0 -1
  176. package/lib/module/ZezoPay/components/VoucherBox.js +0 -124
  177. package/lib/module/ZezoPay/components/VoucherBox.js.map +0 -1
  178. package/lib/module/ZezoPay/index.js +0 -5
  179. package/lib/module/ZezoPay/index.js.map +0 -1
  180. package/lib/module/ZezoPay/utils/hooks/useAsync.js +0 -32
  181. package/lib/module/ZezoPay/utils/hooks/useAsync.js.map +0 -1
  182. package/lib/module/ZezoPay/utils/hooks/useZezoPay.js +0 -265
  183. package/lib/module/ZezoPay/utils/hooks/useZezoPay.js.map +0 -1
  184. package/lib/module/ZezoPay/utils/index.js.map +0 -1
  185. package/lib/typescript/src/ZezoPay/Payments/Providers/Razorpay/Razorpay.d.ts.map +0 -1
  186. package/lib/typescript/src/ZezoPay/Payments/Providers/index.d.ts +0 -7
  187. package/lib/typescript/src/ZezoPay/Payments/Providers/index.d.ts.map +0 -1
  188. package/lib/typescript/src/ZezoPay/ZezoPay.d.ts.map +0 -1
  189. package/lib/typescript/src/ZezoPay/components/Header.d.ts.map +0 -1
  190. package/lib/typescript/src/ZezoPay/components/PayButton.d.ts.map +0 -1
  191. package/lib/typescript/src/ZezoPay/components/PaymentMethod.d.ts +0 -12
  192. package/lib/typescript/src/ZezoPay/components/PaymentMethod.d.ts.map +0 -1
  193. package/lib/typescript/src/ZezoPay/components/Summary.d.ts +0 -7
  194. package/lib/typescript/src/ZezoPay/components/Summary.d.ts.map +0 -1
  195. package/lib/typescript/src/ZezoPay/components/VoucherBox.d.ts +0 -9
  196. package/lib/typescript/src/ZezoPay/components/VoucherBox.d.ts.map +0 -1
  197. package/lib/typescript/src/ZezoPay/index.d.ts +0 -3
  198. package/lib/typescript/src/ZezoPay/index.d.ts.map +0 -1
  199. package/lib/typescript/src/ZezoPay/types/index.d.ts +0 -66
  200. package/lib/typescript/src/ZezoPay/types/index.d.ts.map +0 -1
  201. package/lib/typescript/src/ZezoPay/utils/hooks/useAsync.d.ts +0 -6
  202. package/lib/typescript/src/ZezoPay/utils/hooks/useAsync.d.ts.map +0 -1
  203. package/lib/typescript/src/ZezoPay/utils/hooks/useZezoPay.d.ts +0 -46
  204. package/lib/typescript/src/ZezoPay/utils/hooks/useZezoPay.d.ts.map +0 -1
  205. package/src/ZezoPay/Payments/Providers/PaymentGateways.types.d.ts +0 -48
  206. package/src/ZezoPay/Payments/Providers/Razorpay/Razorpay.ts +0 -46
  207. package/src/ZezoPay/Payments/Providers/index.ts +0 -8
  208. package/src/ZezoPay/ZezoPay.tsx +0 -176
  209. package/src/ZezoPay/components/Header.tsx +0 -107
  210. package/src/ZezoPay/components/PayButton.tsx +0 -132
  211. package/src/ZezoPay/components/PaymentMethod.tsx +0 -263
  212. package/src/ZezoPay/components/Summary.tsx +0 -188
  213. package/src/ZezoPay/components/VoucherBox.tsx +0 -133
  214. package/src/ZezoPay/index.ts +0 -2
  215. package/src/ZezoPay/types/index.ts +0 -70
  216. package/src/ZezoPay/utils/hooks/useAsync.ts +0 -38
  217. package/src/ZezoPay/utils/hooks/useZezoPay.ts +0 -320
  218. package/src/ZezoPay/utils/index.ts +0 -16
  219. package/src/index.tsx +0 -1
  220. /package/lib/module/{ZezoPay → zezopay}/types/index.js +0 -0
  221. /package/lib/typescript/src/{ZezoPay → zezopay}/ZezoPay.d.ts +0 -0
  222. /package/lib/typescript/src/{ZezoPay/Payments/Providers/Razorpay → zezopay/payments/providers/razorpay}/Razorpay.d.ts +0 -0
  223. /package/lib/typescript/src/{ZezoPay → zezopay}/utils/index.d.ts +0 -0
@@ -1,188 +0,0 @@
1
- import { View, Text, Image, TouchableOpacity, StyleSheet } from 'react-native';
2
- import { X } from 'lucide-react-native';
3
- import type { ISummaryItem } from '@zezosoft/zezopay-client';
4
- import { formatCurrency } from '../utils';
5
-
6
- export const Summary = ({
7
- items = [],
8
- displayCurrency = 'INR',
9
- onRemoveItem,
10
- }: {
11
- items: ISummaryItem[];
12
- displayCurrency?: string;
13
- onRemoveItem?: (id: ISummaryItem['id']) => void;
14
- }) => {
15
- // Show error if no items
16
- if (!items || items.length === 0) {
17
- return (
18
- <View style={styles.errorWrapper}>
19
- <Text style={styles.errorText}>No items in summary.</Text>
20
- </View>
21
- );
22
- }
23
-
24
- return (
25
- <View>
26
- <Text style={styles.title}>Summary</Text>
27
- <View style={styles.list}>
28
- {items.map((item) => {
29
- let discountedPrice = item.price;
30
- if (item.discount) {
31
- if (typeof item.discount === 'number') {
32
- discountedPrice = (item.price * (100 - item.discount)) / 100;
33
- } else if (item.discount.type === 'percentage') {
34
- discountedPrice =
35
- (item.price * (100 - item.discount.amount)) / 100;
36
- } else if (item.discount.type === 'fixed') {
37
- discountedPrice = item.price - item.discount.amount;
38
- }
39
- }
40
-
41
- return (
42
- <View key={`summary-${item.id}`} style={styles.itemBox}>
43
- <View style={styles.row}>
44
- <View style={styles.left}>
45
- {item.image ? (
46
- <Image source={{ uri: item.image }} style={styles.logo} />
47
- ) : (
48
- <View style={[styles.logo, styles.logoTextContainer]}>
49
- <Text style={styles.logoText}>
50
- {item.name.slice(0, 2).toUpperCase()}
51
- </Text>
52
- </View>
53
- )}
54
-
55
- <View style={styles.info}>
56
- <Text style={styles.itemName}>{item.name}</Text>
57
-
58
- {item.discount ? (
59
- <Text style={styles.subText}>
60
- <Text style={styles.strike}>
61
- {formatCurrency({
62
- amount: item.price,
63
- currency: displayCurrency,
64
- })}
65
- </Text>
66
- <Text> </Text>
67
- <Text style={styles.discounted}>
68
- {formatCurrency({
69
- amount: discountedPrice,
70
- currency: displayCurrency,
71
- })}
72
- </Text>
73
- {item.duration ? (
74
- <Text>{` /${item.duration}`}</Text>
75
- ) : null}
76
- </Text>
77
- ) : (
78
- <Text style={styles.subText}>
79
- {formatCurrency({
80
- amount: discountedPrice,
81
- currency: displayCurrency,
82
- })}
83
- {item.duration ? (
84
- <Text>{` /${item.duration}`}</Text>
85
- ) : null}
86
- </Text>
87
- )}
88
- </View>
89
- </View>
90
-
91
- {onRemoveItem && (
92
- <TouchableOpacity
93
- onPress={() => onRemoveItem(item.id)}
94
- style={styles.removeBtn}
95
- >
96
- <X size={20} />
97
- </TouchableOpacity>
98
- )}
99
- </View>
100
- </View>
101
- );
102
- })}
103
- </View>
104
- </View>
105
- );
106
- };
107
-
108
- const styles = StyleSheet.create({
109
- title: {
110
- fontSize: 18,
111
- fontWeight: '700',
112
- marginBottom: 10,
113
- },
114
- list: {
115
- gap: 10,
116
- },
117
- itemBox: {
118
- padding: 12,
119
- borderRadius: 12,
120
- marginBottom: 10,
121
- borderColor: '#a6e6cf',
122
- borderWidth: 1,
123
- backgroundColor: 'rgba(224, 243, 236, 0.68)',
124
- },
125
- row: {
126
- flexDirection: 'row',
127
- alignItems: 'center',
128
- justifyContent: 'space-between',
129
- },
130
- left: {
131
- flexDirection: 'row',
132
- alignItems: 'center',
133
- gap: 10,
134
- flex: 1,
135
- },
136
- logo: {
137
- width: 42,
138
- height: 42,
139
- borderRadius: 8,
140
- backgroundColor: '#ddd',
141
- justifyContent: 'center',
142
- alignItems: 'center',
143
- },
144
- logoTextContainer: {
145
- backgroundColor: '#444',
146
- },
147
- logoText: {
148
- fontWeight: '700',
149
- color: '#fff',
150
- },
151
- info: {
152
- flexDirection: 'column',
153
- },
154
- itemName: {
155
- fontSize: 15,
156
- fontWeight: '600',
157
- color: '#111',
158
- },
159
- subText: {
160
- fontSize: 13,
161
- color: '#222',
162
- },
163
- strike: {
164
- textDecorationLine: 'line-through',
165
- color: '#444',
166
- },
167
- discounted: {
168
- fontWeight: '700',
169
- color: '#000',
170
- },
171
- removeBtn: {
172
- padding: 6,
173
- borderRadius: 20,
174
- },
175
- errorWrapper: {
176
- padding: 12,
177
- borderRadius: 12,
178
- backgroundColor: '#fee2e2',
179
- borderWidth: 1,
180
- borderColor: '#fca5a5',
181
- marginVertical: 10,
182
- },
183
- errorText: {
184
- color: '#b91c1c',
185
- fontWeight: '600',
186
- textAlign: 'center',
187
- },
188
- });
@@ -1,133 +0,0 @@
1
- import React from 'react';
2
- import {
3
- View,
4
- Text,
5
- TextInput,
6
- StyleSheet,
7
- TouchableOpacity,
8
- } from 'react-native';
9
- import LinearGradient from 'react-native-linear-gradient';
10
- import { scale, verticalScale, moderateScale } from 'react-native-size-matters';
11
-
12
- // Centralized color definitions
13
- const COLORS = {
14
- primaryOrange: '#FF7847',
15
- secondaryOrange: '#c24c21',
16
- disabledOrangeStart: '#df7026ff',
17
- disabledOrangeEnd: '#ce6320ff',
18
- black: '#000',
19
- white: '#fff',
20
- };
21
-
22
- interface VoucherBoxProps {
23
- voucher: string;
24
- setVoucher: (v: string) => void;
25
- onApply?: () => void;
26
- }
27
-
28
- const VoucherBox: React.FC<VoucherBoxProps> = ({
29
- voucher,
30
- setVoucher,
31
- onApply,
32
- }) => {
33
- return (
34
- <View>
35
- <Text style={styles.title}>Voucher</Text>
36
- <View style={styles.inputWrapper}>
37
- <TextInput
38
- placeholder={'Enter code...'}
39
- style={styles.input}
40
- value={voucher}
41
- onChangeText={setVoucher}
42
- accessibilityLabel="Voucher code input"
43
- />
44
- <TouchableOpacity
45
- style={styles.button}
46
- onPress={onApply}
47
- disabled={!voucher}
48
- activeOpacity={0.8}
49
- accessibilityRole="button"
50
- accessibilityLabel="Apply voucher code"
51
- >
52
- <LinearGradient
53
- colors={
54
- voucher
55
- ? [COLORS.primaryOrange, COLORS.secondaryOrange]
56
- : [COLORS.disabledOrangeStart, COLORS.disabledOrangeEnd]
57
- }
58
- style={styles.gradient}
59
- start={{ x: 0, y: 0 }}
60
- end={{ x: 1, y: 0 }}
61
- >
62
- <Text
63
- style={[styles.buttonText, !voucher && styles.disabledButtonText]}
64
- >
65
- Apply
66
- </Text>
67
- </LinearGradient>
68
- </TouchableOpacity>
69
- </View>
70
- </View>
71
- );
72
- };
73
-
74
- const styles = StyleSheet.create({
75
- title: {
76
- fontSize: moderateScale(16),
77
- fontWeight: '700',
78
- color: COLORS.black,
79
- marginBottom: verticalScale(8),
80
- },
81
- inputWrapper: {
82
- flexDirection: 'row',
83
- alignItems: 'center',
84
- backgroundColor: COLORS.white,
85
- height: moderateScale(47),
86
- minHeight: verticalScale(45),
87
- maxHeight: verticalScale(50),
88
- borderRadius: scale(8),
89
- borderWidth: 1,
90
- borderColor: COLORS.primaryOrange,
91
- width: '100%',
92
- shadowColor: COLORS.black,
93
- shadowOffset: { width: 0, height: 2 },
94
- paddingVertical: verticalScale(2),
95
- marginBottom: verticalScale(8),
96
- },
97
- input: {
98
- flex: 1,
99
- height: '100%',
100
- fontSize: moderateScale(14),
101
- paddingHorizontal: scale(14),
102
- paddingVertical: verticalScale(8),
103
- borderRadius: scale(12),
104
- },
105
- button: {
106
- minWidth: scale(80),
107
- height: moderateScale(45),
108
- borderRadius: scale(10),
109
- overflow: 'hidden',
110
- justifyContent: 'center',
111
- alignItems: 'center',
112
- marginRight: scale(3),
113
- },
114
- gradient: {
115
- width: '100%',
116
- height: '100%',
117
- alignItems: 'center',
118
- justifyContent: 'center',
119
- borderRadius: scale(10),
120
- },
121
- buttonText: {
122
- color: COLORS.white,
123
- fontWeight: '700',
124
- fontSize: moderateScale(15),
125
- textTransform: 'uppercase',
126
- },
127
- disabledButtonText: {
128
- color: COLORS.white,
129
- opacity: 0.7,
130
- },
131
- });
132
-
133
- export default VoucherBox;
@@ -1,2 +0,0 @@
1
- export * from './types';
2
- export { default as ZezoPay } from './ZezoPay';
@@ -1,70 +0,0 @@
1
- // types.ts
2
-
3
- import type { HandlePayment, UserInfo } from '@zezosoft/zezopay-client';
4
-
5
- export type PaymentDetails = {
6
- userId: string;
7
- price: number;
8
- metadata?: {
9
- isPaymentInitiatedEnabled?: boolean;
10
- userInfo?: UserInfo;
11
- };
12
- };
13
-
14
- export type ZezoPayProps = {
15
- publicKey: string;
16
- subscriptionId?: string;
17
- digitalProductId?: string;
18
- summaryItems: SummaryItem[];
19
- userInfo: UserInfo;
20
- title: string;
21
- onBack: () => void;
22
- callback?: ZezoPayCallbacks;
23
- handlePayment?: HandlePayment;
24
- };
25
-
26
- export type ZezoPayCallbacks = {
27
- onSuccess?: (data: any) => void;
28
- onFailure?: (error: any) => void;
29
- };
30
-
31
- export type PaymentProviderType =
32
- | 'razorpay'
33
- | 'stripe'
34
- | 'ccavenue'
35
- | 'phonepe';
36
-
37
- export type ZezoPayHookProps = {
38
- publicKey: string;
39
- userInfo: {
40
- _id: string;
41
- name: string;
42
- email?: string;
43
- phone?: string;
44
- };
45
- handlePayment?: (args: {
46
- provider: PaymentProviderType;
47
- subscriptionId?: string;
48
- digitalProductId?: string;
49
- userInfo: { _id: string; name: string; email?: string; phone?: string };
50
- }) => Promise<any>;
51
- subscriptionId?: string;
52
- digitalProductId?: string;
53
- summaryItems?: SummaryItem[];
54
- validateVoucherCode?: (code: string) => number;
55
- callbacks?: ZezoPayCallbacks;
56
- };
57
-
58
- export type Discount = {
59
- type: 'percentage' | 'fixed';
60
- amount: number;
61
- };
62
-
63
- export type SummaryItem = {
64
- id: string;
65
- name: string;
66
- price: number;
67
- discount?: number | { type: 'percentage' | 'fixed'; amount: number };
68
- duration?: string;
69
- image?: string;
70
- };
@@ -1,38 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
-
3
- export function useAsync<T>(asyncFn: () => Promise<T>, deps: any[] = []) {
4
- const [result, setResult] = useState<T | null>(null);
5
- const [loading, setLoading] = useState(true);
6
- const [error, setError] = useState<Error | null>(null);
7
-
8
- useEffect(() => {
9
- let mounted = true;
10
- setLoading(true);
11
-
12
- asyncFn()
13
- .then((res) => {
14
- if (mounted) {
15
- setResult(res);
16
- setError(null);
17
- }
18
- })
19
- .catch((err) => {
20
- if (mounted)
21
- setError(
22
- err instanceof Error
23
- ? err
24
- : new Error(err.msg || err.message || 'Unknown error')
25
- );
26
- })
27
- .finally(() => {
28
- if (mounted) setLoading(false);
29
- });
30
-
31
- return () => {
32
- mounted = false;
33
- };
34
- // eslint-disable-next-line react-hooks/exhaustive-deps
35
- }, deps);
36
-
37
- return { result, loading, error };
38
- }