@tyrads.com/tyrads-sdk 3.0.0-beta.0 → 3.2.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/com/tyradssdk/TyradsSdkModule.kt +130 -29
  3. package/ios/Tyrads/AcmoAssets.swift +14 -0
  4. package/ios/Tyrads/ApiHeaders.swift +1 -0
  5. package/ios/Tyrads/InitModel.swift +3 -0
  6. package/ios/Tyrads/Tyrads.swift +255 -213
  7. package/ios/Tyrads/WebViewController.swift +195 -0
  8. package/ios/Tyrads/core/utils/AcmoKeyNames.swift +29 -0
  9. package/ios/Tyrads/core/utils/ColorExtension.swift +55 -0
  10. package/ios/Tyrads/core/utils/Services/LocalizationService.swift +175 -0
  11. package/ios/Tyrads/helpers/device_details.swift +160 -0
  12. package/ios/Tyrads/legal/AcmoPrivacyPage.swift +353 -0
  13. package/ios/Tyrads/legal/PrivacyPageController.swift +31 -0
  14. package/ios/Tyrads/user/AcmoUserUpdatePage.swift +302 -0
  15. package/ios/Tyrads/user/AcmoUsersUpdateController.swift +26 -0
  16. package/ios/Tyrads/user/Repository.swift +89 -0
  17. package/ios/TyradsSdk.mm +22 -4
  18. package/ios/TyradsSdk.swift +101 -31
  19. package/lib/commonjs/acmo/core/helpers/launcher.js +20 -0
  20. package/lib/commonjs/acmo/core/helpers/launcher.js.map +1 -0
  21. package/lib/commonjs/acmo/core/helpers/native_methods.js +37 -0
  22. package/lib/commonjs/acmo/core/helpers/native_methods.js.map +1 -0
  23. package/lib/commonjs/acmo/core/helpers/numeral.js +19 -0
  24. package/lib/commonjs/acmo/core/helpers/numeral.js.map +1 -0
  25. package/lib/commonjs/acmo/core/services/localization_service.js +164 -0
  26. package/lib/commonjs/acmo/core/services/localization_service.js.map +1 -0
  27. package/lib/commonjs/acmo/core/storage/storage.js +15 -1
  28. package/lib/commonjs/acmo/core/storage/storage.js.map +1 -1
  29. package/lib/commonjs/acmo/modules/dashboard/components/active_offers_button.js +79 -0
  30. package/lib/commonjs/acmo/modules/dashboard/components/active_offers_button.js.map +1 -0
  31. package/lib/commonjs/acmo/modules/dashboard/components/custom_card.js +7 -10
  32. package/lib/commonjs/acmo/modules/dashboard/components/custom_card.js.map +1 -1
  33. package/lib/commonjs/acmo/modules/dashboard/components/custom_scroller.js +141 -0
  34. package/lib/commonjs/acmo/modules/dashboard/components/custom_scroller.js.map +1 -0
  35. package/lib/commonjs/acmo/{core/marquee.js → modules/dashboard/components/custom_shimmer.js} +46 -34
  36. package/lib/commonjs/acmo/modules/dashboard/components/custom_shimmer.js.map +1 -0
  37. package/lib/commonjs/acmo/modules/dashboard/components/offer_card.js +263 -0
  38. package/lib/commonjs/acmo/modules/dashboard/components/offer_card.js.map +1 -0
  39. package/lib/commonjs/acmo/modules/dashboard/components/offer_list_item.js +203 -0
  40. package/lib/commonjs/acmo/modules/dashboard/components/offer_list_item.js.map +1 -0
  41. package/lib/commonjs/acmo/modules/dashboard/components/premium_empty_widget.js +87 -0
  42. package/lib/commonjs/acmo/modules/dashboard/components/premium_empty_widget.js.map +1 -0
  43. package/lib/commonjs/acmo/modules/dashboard/components/premium_header.js +16 -14
  44. package/lib/commonjs/acmo/modules/dashboard/components/premium_header.js.map +1 -1
  45. package/lib/commonjs/acmo/modules/dashboard/components/premium_loading.js +111 -0
  46. package/lib/commonjs/acmo/modules/dashboard/components/premium_loading.js.map +1 -0
  47. package/lib/commonjs/acmo/modules/dashboard/repository.js +108 -32
  48. package/lib/commonjs/acmo/modules/dashboard/repository.js.map +1 -1
  49. package/lib/commonjs/acmo/modules/dashboard/top_offers.js +85 -63
  50. package/lib/commonjs/acmo/modules/dashboard/top_offers.js.map +1 -1
  51. package/lib/commonjs/acmo/modules/localization/localization_context.js +56 -0
  52. package/lib/commonjs/acmo/modules/localization/localization_context.js.map +1 -0
  53. package/lib/commonjs/assets/images/angle_up.png +0 -0
  54. package/lib/commonjs/assets/images/diamond.png +0 -0
  55. package/lib/commonjs/assets/images/info.png +0 -0
  56. package/lib/commonjs/assets/images/info_icon.png +0 -0
  57. package/lib/commonjs/assets/images/premium-emptybg.jpeg +0 -0
  58. package/lib/commonjs/assets/images/rank_1.png +0 -0
  59. package/lib/commonjs/assets/images/rank_2.png +0 -0
  60. package/lib/commonjs/assets/images/rank_3.png +0 -0
  61. package/lib/commonjs/assets/images/rank_4.png +0 -0
  62. package/lib/commonjs/assets/images/rank_5.png +0 -0
  63. package/lib/commonjs/index.js +50 -16
  64. package/lib/commonjs/index.js.map +1 -1
  65. package/lib/module/acmo/core/helpers/launcher.js +15 -0
  66. package/lib/module/acmo/core/helpers/launcher.js.map +1 -0
  67. package/lib/module/acmo/core/helpers/native_methods.js +33 -0
  68. package/lib/module/acmo/core/helpers/native_methods.js.map +1 -0
  69. package/lib/module/acmo/core/helpers/numeral.js +14 -0
  70. package/lib/module/acmo/core/helpers/numeral.js.map +1 -0
  71. package/lib/module/acmo/core/services/localization_service.js +159 -0
  72. package/lib/module/acmo/core/services/localization_service.js.map +1 -0
  73. package/lib/module/acmo/core/storage/storage.js +13 -0
  74. package/lib/module/acmo/core/storage/storage.js.map +1 -1
  75. package/lib/module/acmo/modules/dashboard/components/active_offers_button.js +73 -0
  76. package/lib/module/acmo/modules/dashboard/components/active_offers_button.js.map +1 -0
  77. package/lib/module/acmo/modules/dashboard/components/custom_card.js +7 -10
  78. package/lib/module/acmo/modules/dashboard/components/custom_card.js.map +1 -1
  79. package/lib/module/acmo/modules/dashboard/components/custom_scroller.js +135 -0
  80. package/lib/module/acmo/modules/dashboard/components/custom_scroller.js.map +1 -0
  81. package/lib/module/acmo/modules/dashboard/components/custom_shimmer.js +66 -0
  82. package/lib/module/acmo/modules/dashboard/components/custom_shimmer.js.map +1 -0
  83. package/lib/module/acmo/modules/dashboard/components/offer_card.js +257 -0
  84. package/lib/module/acmo/modules/dashboard/components/offer_card.js.map +1 -0
  85. package/lib/module/acmo/modules/dashboard/components/offer_list_item.js +197 -0
  86. package/lib/module/acmo/modules/dashboard/components/offer_list_item.js.map +1 -0
  87. package/lib/module/acmo/modules/dashboard/components/premium_empty_widget.js +82 -0
  88. package/lib/module/acmo/modules/dashboard/components/premium_empty_widget.js.map +1 -0
  89. package/lib/module/acmo/modules/dashboard/components/premium_header.js +16 -14
  90. package/lib/module/acmo/modules/dashboard/components/premium_header.js.map +1 -1
  91. package/lib/module/acmo/modules/dashboard/components/premium_loading.js +106 -0
  92. package/lib/module/acmo/modules/dashboard/components/premium_loading.js.map +1 -0
  93. package/lib/module/acmo/modules/dashboard/repository.js +105 -30
  94. package/lib/module/acmo/modules/dashboard/repository.js.map +1 -1
  95. package/lib/module/acmo/modules/dashboard/top_offers.js +86 -64
  96. package/lib/module/acmo/modules/dashboard/top_offers.js.map +1 -1
  97. package/lib/module/acmo/modules/localization/localization_context.js +45 -0
  98. package/lib/module/acmo/modules/localization/localization_context.js.map +1 -0
  99. package/lib/module/assets/images/angle_up.png +0 -0
  100. package/lib/module/assets/images/diamond.png +0 -0
  101. package/lib/module/assets/images/info.png +0 -0
  102. package/lib/module/assets/images/info_icon.png +0 -0
  103. package/lib/module/assets/images/premium-emptybg.jpeg +0 -0
  104. package/lib/module/assets/images/rank_1.png +0 -0
  105. package/lib/module/assets/images/rank_2.png +0 -0
  106. package/lib/module/assets/images/rank_3.png +0 -0
  107. package/lib/module/assets/images/rank_4.png +0 -0
  108. package/lib/module/assets/images/rank_5.png +0 -0
  109. package/lib/module/index.js +49 -17
  110. package/lib/module/index.js.map +1 -1
  111. package/lib/typescript/commonjs/src/acmo/core/helpers/launcher.d.ts +3 -0
  112. package/lib/typescript/commonjs/src/acmo/core/helpers/launcher.d.ts.map +1 -0
  113. package/lib/typescript/commonjs/src/acmo/core/helpers/native_methods.d.ts +6 -0
  114. package/lib/typescript/commonjs/src/acmo/core/helpers/native_methods.d.ts.map +1 -0
  115. package/lib/typescript/commonjs/src/acmo/core/helpers/numeral.d.ts +2 -0
  116. package/lib/typescript/commonjs/src/acmo/core/helpers/numeral.d.ts.map +1 -0
  117. package/lib/typescript/commonjs/src/acmo/core/services/localization_service.d.ts +18 -0
  118. package/lib/typescript/commonjs/src/acmo/core/services/localization_service.d.ts.map +1 -0
  119. package/lib/typescript/commonjs/src/acmo/core/storage/storage.d.ts +1 -0
  120. package/lib/typescript/commonjs/src/acmo/core/storage/storage.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/active_offers_button.d.ts +9 -0
  122. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/active_offers_button.d.ts.map +1 -0
  123. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/custom_card.d.ts.map +1 -1
  124. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/custom_scroller.d.ts +17 -0
  125. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/custom_scroller.d.ts.map +1 -0
  126. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/custom_shimmer.d.ts +11 -0
  127. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/custom_shimmer.d.ts.map +1 -0
  128. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/offer_card.d.ts +12 -0
  129. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/offer_card.d.ts.map +1 -0
  130. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/offer_list_item.d.ts +15 -0
  131. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/offer_list_item.d.ts.map +1 -0
  132. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_empty_widget.d.ts +7 -0
  133. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_empty_widget.d.ts.map +1 -0
  134. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_header.d.ts.map +1 -1
  135. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_loading.d.ts +8 -0
  136. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_loading.d.ts.map +1 -0
  137. package/lib/typescript/commonjs/src/acmo/modules/dashboard/repository.d.ts +2 -1
  138. package/lib/typescript/commonjs/src/acmo/modules/dashboard/repository.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/src/acmo/modules/dashboard/top_offers.d.ts +8 -7
  140. package/lib/typescript/commonjs/src/acmo/modules/dashboard/top_offers.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/src/acmo/modules/localization/localization_context.d.ts +14 -0
  142. package/lib/typescript/commonjs/src/acmo/modules/localization/localization_context.d.ts.map +1 -0
  143. package/lib/typescript/commonjs/src/index.d.ts +8 -6
  144. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  145. package/lib/typescript/module/src/acmo/core/helpers/launcher.d.ts +3 -0
  146. package/lib/typescript/module/src/acmo/core/helpers/launcher.d.ts.map +1 -0
  147. package/lib/typescript/module/src/acmo/core/helpers/native_methods.d.ts +6 -0
  148. package/lib/typescript/module/src/acmo/core/helpers/native_methods.d.ts.map +1 -0
  149. package/lib/typescript/module/src/acmo/core/helpers/numeral.d.ts +2 -0
  150. package/lib/typescript/module/src/acmo/core/helpers/numeral.d.ts.map +1 -0
  151. package/lib/typescript/module/src/acmo/core/services/localization_service.d.ts +18 -0
  152. package/lib/typescript/module/src/acmo/core/services/localization_service.d.ts.map +1 -0
  153. package/lib/typescript/module/src/acmo/core/storage/storage.d.ts +1 -0
  154. package/lib/typescript/module/src/acmo/core/storage/storage.d.ts.map +1 -1
  155. package/lib/typescript/module/src/acmo/modules/dashboard/components/active_offers_button.d.ts +9 -0
  156. package/lib/typescript/module/src/acmo/modules/dashboard/components/active_offers_button.d.ts.map +1 -0
  157. package/lib/typescript/module/src/acmo/modules/dashboard/components/custom_card.d.ts.map +1 -1
  158. package/lib/typescript/module/src/acmo/modules/dashboard/components/custom_scroller.d.ts +17 -0
  159. package/lib/typescript/module/src/acmo/modules/dashboard/components/custom_scroller.d.ts.map +1 -0
  160. package/lib/typescript/module/src/acmo/modules/dashboard/components/custom_shimmer.d.ts +11 -0
  161. package/lib/typescript/module/src/acmo/modules/dashboard/components/custom_shimmer.d.ts.map +1 -0
  162. package/lib/typescript/module/src/acmo/modules/dashboard/components/offer_card.d.ts +12 -0
  163. package/lib/typescript/module/src/acmo/modules/dashboard/components/offer_card.d.ts.map +1 -0
  164. package/lib/typescript/module/src/acmo/modules/dashboard/components/offer_list_item.d.ts +15 -0
  165. package/lib/typescript/module/src/acmo/modules/dashboard/components/offer_list_item.d.ts.map +1 -0
  166. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_empty_widget.d.ts +7 -0
  167. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_empty_widget.d.ts.map +1 -0
  168. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_header.d.ts.map +1 -1
  169. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_loading.d.ts +8 -0
  170. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_loading.d.ts.map +1 -0
  171. package/lib/typescript/module/src/acmo/modules/dashboard/repository.d.ts +2 -1
  172. package/lib/typescript/module/src/acmo/modules/dashboard/repository.d.ts.map +1 -1
  173. package/lib/typescript/module/src/acmo/modules/dashboard/top_offers.d.ts +8 -7
  174. package/lib/typescript/module/src/acmo/modules/dashboard/top_offers.d.ts.map +1 -1
  175. package/lib/typescript/module/src/acmo/modules/localization/localization_context.d.ts +14 -0
  176. package/lib/typescript/module/src/acmo/modules/localization/localization_context.d.ts.map +1 -0
  177. package/lib/typescript/module/src/index.d.ts +8 -6
  178. package/lib/typescript/module/src/index.d.ts.map +1 -1
  179. package/package.json +3 -6
  180. package/readme.md +8 -8
  181. package/src/acmo/core/helpers/launcher.ts +14 -0
  182. package/src/acmo/core/helpers/native_methods.ts +43 -0
  183. package/src/acmo/core/helpers/numeral.ts +14 -0
  184. package/src/acmo/core/services/localization_service.ts +200 -0
  185. package/src/acmo/core/storage/storage.ts +14 -0
  186. package/src/acmo/core/types/types.d.ts +11 -13
  187. package/src/acmo/modules/dashboard/components/active_offers_button.tsx +62 -0
  188. package/src/acmo/modules/dashboard/components/custom_card.tsx +5 -8
  189. package/src/acmo/modules/dashboard/components/custom_scroller.tsx +164 -0
  190. package/src/acmo/modules/dashboard/components/custom_shimmer.tsx +75 -0
  191. package/src/acmo/modules/dashboard/components/offer_card.tsx +248 -0
  192. package/src/acmo/modules/dashboard/components/offer_list_item.tsx +228 -0
  193. package/src/acmo/modules/dashboard/components/premium_empty_widget.tsx +79 -0
  194. package/src/acmo/modules/dashboard/components/premium_header.tsx +14 -13
  195. package/src/acmo/modules/dashboard/components/premium_loading.tsx +72 -0
  196. package/src/acmo/modules/dashboard/repository.ts +121 -46
  197. package/src/acmo/modules/dashboard/top_offers.tsx +105 -53
  198. package/src/acmo/modules/localization/localization_context.tsx +52 -0
  199. package/src/assets/images/angle_up.png +0 -0
  200. package/src/assets/images/diamond.png +0 -0
  201. package/src/assets/images/info.png +0 -0
  202. package/src/assets/images/info_icon.png +0 -0
  203. package/src/assets/images/premium-emptybg.jpeg +0 -0
  204. package/src/assets/images/rank_1.png +0 -0
  205. package/src/assets/images/rank_2.png +0 -0
  206. package/src/assets/images/rank_3.png +0 -0
  207. package/src/assets/images/rank_4.png +0 -0
  208. package/src/assets/images/rank_5.png +0 -0
  209. package/src/index.tsx +76 -34
  210. package/lib/commonjs/acmo/core/marquee.js.map +0 -1
  211. package/lib/commonjs/acmo/modules/dashboard/components/auto_scroller.js +0 -87
  212. package/lib/commonjs/acmo/modules/dashboard/components/auto_scroller.js.map +0 -1
  213. package/lib/commonjs/acmo/modules/dashboard/components/my_games_button.js +0 -48
  214. package/lib/commonjs/acmo/modules/dashboard/components/my_games_button.js.map +0 -1
  215. package/lib/commonjs/acmo/modules/dashboard/components/offer_info_section.js +0 -158
  216. package/lib/commonjs/acmo/modules/dashboard/components/offer_info_section.js.map +0 -1
  217. package/lib/commonjs/acmo/modules/dashboard/components/premium_option_1.js +0 -180
  218. package/lib/commonjs/acmo/modules/dashboard/components/premium_option_1.js.map +0 -1
  219. package/lib/commonjs/acmo/modules/dashboard/components/premium_option_2.js +0 -102
  220. package/lib/commonjs/acmo/modules/dashboard/components/premium_option_2.js.map +0 -1
  221. package/lib/commonjs/acmo/modules/dashboard/components/premium_option_3.js +0 -41
  222. package/lib/commonjs/acmo/modules/dashboard/components/premium_option_3.js.map +0 -1
  223. package/lib/commonjs/acmo/modules/dashboard/components/premium_option_4.js +0 -214
  224. package/lib/commonjs/acmo/modules/dashboard/components/premium_option_4.js.map +0 -1
  225. package/lib/commonjs/i18n.js +0 -112
  226. package/lib/commonjs/i18n.js.map +0 -1
  227. package/lib/module/acmo/core/marquee.js +0 -54
  228. package/lib/module/acmo/core/marquee.js.map +0 -1
  229. package/lib/module/acmo/modules/dashboard/components/auto_scroller.js +0 -81
  230. package/lib/module/acmo/modules/dashboard/components/auto_scroller.js.map +0 -1
  231. package/lib/module/acmo/modules/dashboard/components/my_games_button.js +0 -43
  232. package/lib/module/acmo/modules/dashboard/components/my_games_button.js.map +0 -1
  233. package/lib/module/acmo/modules/dashboard/components/offer_info_section.js +0 -153
  234. package/lib/module/acmo/modules/dashboard/components/offer_info_section.js.map +0 -1
  235. package/lib/module/acmo/modules/dashboard/components/premium_option_1.js +0 -174
  236. package/lib/module/acmo/modules/dashboard/components/premium_option_1.js.map +0 -1
  237. package/lib/module/acmo/modules/dashboard/components/premium_option_2.js +0 -97
  238. package/lib/module/acmo/modules/dashboard/components/premium_option_2.js.map +0 -1
  239. package/lib/module/acmo/modules/dashboard/components/premium_option_3.js +0 -36
  240. package/lib/module/acmo/modules/dashboard/components/premium_option_3.js.map +0 -1
  241. package/lib/module/acmo/modules/dashboard/components/premium_option_4.js +0 -209
  242. package/lib/module/acmo/modules/dashboard/components/premium_option_4.js.map +0 -1
  243. package/lib/module/i18n.js +0 -107
  244. package/lib/module/i18n.js.map +0 -1
  245. package/lib/typescript/commonjs/src/acmo/core/marquee.d.ts +0 -11
  246. package/lib/typescript/commonjs/src/acmo/core/marquee.d.ts.map +0 -1
  247. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/auto_scroller.d.ts +0 -10
  248. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/auto_scroller.d.ts.map +0 -1
  249. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/my_games_button.d.ts +0 -8
  250. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/my_games_button.d.ts.map +0 -1
  251. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/offer_info_section.d.ts +0 -11
  252. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/offer_info_section.d.ts.map +0 -1
  253. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_option_1.d.ts +0 -9
  254. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_option_1.d.ts.map +0 -1
  255. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_option_2.d.ts +0 -9
  256. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_option_2.d.ts.map +0 -1
  257. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_option_3.d.ts +0 -9
  258. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_option_3.d.ts.map +0 -1
  259. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_option_4.d.ts +0 -9
  260. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_option_4.d.ts.map +0 -1
  261. package/lib/typescript/commonjs/src/i18n.d.ts +0 -3
  262. package/lib/typescript/commonjs/src/i18n.d.ts.map +0 -1
  263. package/lib/typescript/module/src/acmo/core/marquee.d.ts +0 -11
  264. package/lib/typescript/module/src/acmo/core/marquee.d.ts.map +0 -1
  265. package/lib/typescript/module/src/acmo/modules/dashboard/components/auto_scroller.d.ts +0 -10
  266. package/lib/typescript/module/src/acmo/modules/dashboard/components/auto_scroller.d.ts.map +0 -1
  267. package/lib/typescript/module/src/acmo/modules/dashboard/components/my_games_button.d.ts +0 -8
  268. package/lib/typescript/module/src/acmo/modules/dashboard/components/my_games_button.d.ts.map +0 -1
  269. package/lib/typescript/module/src/acmo/modules/dashboard/components/offer_info_section.d.ts +0 -11
  270. package/lib/typescript/module/src/acmo/modules/dashboard/components/offer_info_section.d.ts.map +0 -1
  271. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_option_1.d.ts +0 -9
  272. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_option_1.d.ts.map +0 -1
  273. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_option_2.d.ts +0 -9
  274. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_option_2.d.ts.map +0 -1
  275. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_option_3.d.ts +0 -9
  276. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_option_3.d.ts.map +0 -1
  277. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_option_4.d.ts +0 -9
  278. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_option_4.d.ts.map +0 -1
  279. package/lib/typescript/module/src/i18n.d.ts +0 -3
  280. package/lib/typescript/module/src/i18n.d.ts.map +0 -1
  281. package/src/acmo/core/marquee.tsx +0 -62
  282. package/src/acmo/modules/dashboard/components/auto_scroller.tsx +0 -85
  283. package/src/acmo/modules/dashboard/components/my_games_button.tsx +0 -40
  284. package/src/acmo/modules/dashboard/components/offer_info_section.tsx +0 -139
  285. package/src/acmo/modules/dashboard/components/premium_option_1.tsx +0 -163
  286. package/src/acmo/modules/dashboard/components/premium_option_2.tsx +0 -100
  287. package/src/acmo/modules/dashboard/components/premium_option_3.tsx +0 -42
  288. package/src/acmo/modules/dashboard/components/premium_option_4.tsx +0 -185
  289. package/src/i18n.ts +0 -115
@@ -0,0 +1,89 @@
1
+ //
2
+ //  Repository.swift
3
+ //  Pods
4
+ //
5
+ //  Created by Basharat Mehdi on 01/10/25.
6
+ //
7
+
8
+ import Foundation
9
+ import UIKit
10
+
11
+ public class UserRepository {
12
+
13
+ public static let shared = UserRepository()
14
+
15
+ private init() {}
16
+
17
+ public func updateUser(userID: String, gender: String, age: String) async throws {
18
+ let sdk = Tyrads.instance
19
+
20
+ guard let ageInt = Int(age) else {
21
+ print("ERROR: Failed to convert age string '\(age)' to integer.")
22
+ throw NSError(domain: "TyradsSdk", code: 4, userInfo: [NSLocalizedDescriptionKey: "Invalid age format."])
23
+ }
24
+
25
+ let fd: [String: Any] = [
26
+ "gender": gender == "Male" ? 1 : 2,
27
+ "age": ageInt,
28
+ ]
29
+
30
+ let fullURLString = AcmoConfig.BASE_URL + "update-user"
31
+
32
+ print("--- USER UPDATE REQUEST ---")
33
+ print("UserID: \(userID)")
34
+ print("URL: \(fullURLString)")
35
+ print("Data Sent: \(fd)")
36
+
37
+ let requestBody = sdk.isSecure && !(sdk.encKey ?? "").isEmpty ? try AcmoEncrypt(sdk.encKey!).encryptDataAESGCM(data: fd) : fd
38
+
39
+ guard let url = URL(string: fullURLString) else {
40
+ throw NSError(domain: "TyradsSdk", code: 1, userInfo: [NSLocalizedDescriptionKey: "Invalid URL for user update"])
41
+ }
42
+
43
+ var request = URLRequest(url: url)
44
+ request.httpMethod = "PUT"
45
+ request.setValue("application/json", forHTTPHeaderField: "Content-Type")
46
+ request.setValue(sdk.apiKey, forHTTPHeaderField: "X-API-Key")
47
+ request.setValue(sdk.apiSecret, forHTTPHeaderField: "X-API-Secret")
48
+ request.setValue(userID, forHTTPHeaderField: "X-User-ID")
49
+ request.setValue(AcmoConfig.SDK_PLATFORM, forHTTPHeaderField: "X-SDK-Platform")
50
+ request.setValue(AcmoConfig.SDK_VERSION, forHTTPHeaderField: "X-SDK-Version")
51
+ request.setValue(sdk.isSecure ? "BASIC" : "PLAIN", forHTTPHeaderField: "X-Secure-Mode")
52
+
53
+ print("X-API-Key: \(sdk.apiKey)")
54
+ print("X-API-Secret: \(sdk.apiSecret)")
55
+ print("X-Publisher-User-Id: \(userID)")
56
+ print("Request Body: \(requestBody)")
57
+
58
+ do {
59
+ request.httpBody = try JSONSerialization.data(withJSONObject: requestBody)
60
+ } catch {
61
+ print("ERROR: Failed to serialize request body: \(error)")
62
+ throw error
63
+ }
64
+
65
+ let (data, response) = try await URLSession.shared.data(for: request)
66
+
67
+ let responseString = String(data: data, encoding: .utf8) ?? "No readable response data"
68
+
69
+ guard let httpResponse = response as? HTTPURLResponse else {
70
+ print("ERROR: Response was not HTTPURLResponse.")
71
+ throw NSError(domain: "TyradsSdk", code: 0, userInfo: [NSLocalizedDescriptionKey: "Non-HTTP response received."])
72
+ }
73
+
74
+ print("Response Status Code: \(httpResponse.statusCode)")
75
+ print("Response Body: \(responseString)")
76
+
77
+ guard (200...299).contains(httpResponse.statusCode) else {
78
+ let statusCode = httpResponse.statusCode
79
+ sdk.log("User update failed with status: \(statusCode)")
80
+
81
+ let fullErrorDescription = "Failed to update user demographics."
82
+ throw NSError(domain: "TyradsSdk", code: statusCode,
83
+ userInfo: [NSLocalizedDescriptionKey: "Failed to update user demographics."])
84
+ }
85
+
86
+ print("User has been updated please check")
87
+ sdk.log("User update successful.")
88
+ }
89
+ }
package/ios/TyradsSdk.mm CHANGED
@@ -2,15 +2,33 @@
2
2
 
3
3
  @interface RCT_EXTERN_MODULE(TyradsSdk, NSObject)
4
4
 
5
- RCT_EXTERN_METHOD(init:(NSString *)apiKey
6
- secretKey:(NSString *)secretKey
7
- encKey:(NSString * _Nullable)encKey)
5
+ RCT_EXTERN_METHOD(startObserving)
6
+ RCT_EXTERN_METHOD(stopObserving)
7
+ RCT_EXTERN_METHOD(init:(NSString *)apiKey
8
+ secretKey:(NSString *)secretKey
9
+ encKey:(NSString * _Nullable)encKey
10
+ resolver:(RCTPromiseResolveBlock)resolve
11
+ rejecter:(RCTPromiseRejectBlock)reject)
8
12
  // RCT_EXTERN_METHOD(loginUser:(NSString *)userId)
9
13
  RCT_EXTERN_METHOD(loginUser:(NSString *)userId
10
14
  resolver:(RCTPromiseResolveBlock)resolve
11
15
  rejecter:(RCTPromiseRejectBlock)reject)
12
16
  RCT_EXTERN_METHOD(showOffers:(NSInteger)launchMode
13
17
  route:(NSString)route
14
- campaignID:(NSInteger)campaignID)
18
+ resolver:(RCTPromiseResolveBlock)resolve
19
+ rejecter:(RCTPromiseRejectBlock)reject)
20
+ RCT_EXTERN_METHOD(showOfferDetails:(NSInteger)launchMode
21
+ route:(NSString)route
22
+ campaignID:(NSInteger)campaignID
23
+ resolver:(RCTPromiseResolveBlock)resolve
24
+ rejecter:(RCTPromiseRejectBlock)reject)
25
+ RCT_EXTERN_METHOD(changeLanguage:(NSString *)lang
26
+ resolver:(RCTPromiseResolveBlock)resolve
27
+ rejecter:(RCTPromiseRejectBlock)reject)
28
+ RCT_EXTERN_METHOD(isPrivacyAccepted:(RCTPromiseResolveBlock)resolve
29
+ rejecter:(RCTPromiseRejectBlock)reject)
30
+ RCT_EXTERN_METHOD(checkOnboardingProcess:(RCTPromiseResolveBlock)resolve
31
+ rejecter:(RCTPromiseRejectBlock)reject)
32
+
15
33
 
16
34
  @end
@@ -1,47 +1,117 @@
1
1
  import Foundation
2
2
  import UIKit
3
+ import Combine
4
+ import React
3
5
 
4
6
 
5
7
  @objc(TyradsSdk)
6
- class TyradsSdk: NSObject {
7
-
8
+ class TyradsSdk: RCTEventEmitter {
9
+
10
+ private var cancellable: AnyCancellable?
11
+
12
+ override func startObserving() {
13
+ cancellable = Tyrads.instance.languagePublisher
14
+ .sink { [weak self] lang in
15
+ self?.sendEvent(withName: "LanguageChanged", body: lang)
16
+ }
17
+ }
18
+
19
+ override func stopObserving() {
20
+ cancellable?.cancel()
21
+ cancellable = nil
22
+ }
23
+
24
+ override func supportedEvents() -> [String]! {
25
+ return ["LanguageChanged"]
26
+ }
27
+
8
28
  @objc
9
- func `init`(_ apiKey: String, secretKey: String, encKey: String? = nil) {
29
+ func `init`(_ apiKey: String, secretKey: String, encKey: String? = nil, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
10
30
  NSLog("TyradsModule: init called with apiKey: \(apiKey) and secretKey: \(secretKey)")
11
- Tyrads.instance.configure(apiKey: apiKey, secretKey: secretKey, encKey: encKey)
31
+ Task {
32
+ do{
33
+ let locale = await Tyrads.instance.configure(apiKey: apiKey, secretKey: secretKey, encKey: encKey)
34
+ let result: [String: Any] = [
35
+ "success": true,
36
+ "languageCode": locale
37
+ ]
38
+ resolve (result)
39
+ } catch {
40
+ reject("INIT_FAILED", "Failed to initialize", error)
41
+ }
42
+ }
43
+
12
44
  }
13
-
45
+
14
46
  @objc
15
47
  func loginUser(_ userId: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
16
48
  NSLog("TyradsModule: loginUser called with userId: \(userId)")
17
- Tyrads.instance.loginUser(userId) { apiHeaders in
18
- guard let headers = apiHeaders else {
19
- reject("LOGIN_ERROR", "Login failed or returned nil headers", nil)
20
- return
49
+
50
+ Task {
51
+ do {
52
+ guard let apiHeaders = try await Tyrads.instance.loginUser(userId) else {
53
+ reject("LOGIN_ERROR", "Login failed or returned nil headers", nil)
54
+ return
55
+ }
56
+
57
+ let result: [String: Any] = [
58
+ "xApiKey": apiHeaders.xApiKey,
59
+ "xApiSecret": apiHeaders.xApiSecret,
60
+ "xUserId": apiHeaders.xUserId,
61
+ "xSdkPlatform": apiHeaders.xSdkPlatform ?? "",
62
+ "xSdkVersion": apiHeaders.xSdkVersion ?? "",
63
+ "userAgent": apiHeaders.userAgent,
64
+ "languageCode": apiHeaders.languageCode,
65
+ "premiumColor": apiHeaders.premiumColor,
66
+ "headerColor": apiHeaders.headerColor,
67
+ "mainColor": apiHeaders.mainColor,
68
+ "privacyAccepted": apiHeaders.privacyAccepted
69
+ ]
70
+
71
+ resolve(result)
72
+ } catch {
73
+ reject("LOGIN_ERROR", error.localizedDescription, error)
21
74
  }
22
-
23
- // Convert ApiHeaders to Dictionary
24
- let result: [String: Any] = [
25
- "xApiKey": headers.xApiKey,
26
- "xApiSecret": headers.xApiSecret,
27
- "xUserId": headers.xUserId,
28
- "xSdkPlatform": headers.xSdkPlatform ?? "",
29
- "xSdkVersion": headers.xSdkVersion ?? "",
30
- "userAgent": headers.userAgent,
31
- "languageCode": headers.languageCode,
32
- "premiumColor": headers.premiumColor,
33
- "headerColor": headers.headerColor,
34
- "mainColor": headers.mainColor
35
- ]
36
-
37
- resolve(result)
38
75
  }
39
76
  }
40
-
41
-
42
- @objc func showOffers(_ launchMode: Int = 3, route: String? = nil, campaignID: Int = 0) {
43
- NSLog("TyradsModule: showOffers called")
44
- Tyrads.instance.showOffers(launchMode, route: route, campaignID: campaignID == 0 ? nil : campaignID )
45
- }
77
+
78
+
79
+ @objc(showOffers:route:resolver:rejecter:)
80
+ func showOffers(_ launchMode: Int, route: String?, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
81
+ Task {
82
+ await Tyrads.instance.showOffers(launchMode, route: route, campaignID: nil)
83
+ resolve(nil)
84
+ }
85
+ }
86
+
87
+ @objc(showOfferDetails:route:campaignID:resolver:rejecter:)
88
+ func showOfferDetails(_ launchMode: Int, route: String?, campaignID: Int, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
89
+ Task {
90
+ await Tyrads.instance.showOffers(launchMode, route: route, campaignID: campaignID)
91
+ resolve(nil)
92
+ }
93
+ }
94
+
95
+ @objc(changeLanguage:resolver:rejecter:)
96
+ func changeLanguage(_ lang: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
97
+ Task {
98
+ await Tyrads.instance.changeLanguage(lang)
99
+ resolve(nil)
100
+ }
101
+ }
102
+
103
+ @objc
104
+ func isPrivacyAccepted(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
105
+ let accepted = Tyrads.instance.isPrivacyAccepted()
106
+ resolve(accepted)
107
+ }
108
+
109
+ @objc
110
+ func checkOnboardingProcess(_ resolver: @escaping RCTPromiseResolveBlock,rejecter: @escaping RCTPromiseRejectBlock) {
111
+ Task {
112
+ let result = await Tyrads.instance.checkOnboardingProcess()
113
+ resolver(result)
114
+ }
115
+ }
46
116
 
47
117
  }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.acmoLaunchURL = acmoLaunchURL;
7
+ exports.acmoLaunchURLForce = acmoLaunchURLForce;
8
+ var _reactNative = require("react-native");
9
+ async function acmoLaunchURLForce(url) {
10
+ await _reactNative.Linking.openURL(url);
11
+ }
12
+ async function acmoLaunchURL(url) {
13
+ const supported = await _reactNative.Linking.canOpenURL(url);
14
+ if (supported) {
15
+ await _reactNative.Linking.openURL(url);
16
+ } else {
17
+ console.warn("Don't know how to open URI: " + url);
18
+ }
19
+ }
20
+ //# sourceMappingURL=launcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","acmoLaunchURLForce","url","Linking","openURL","acmoLaunchURL","supported","canOpenURL","console","warn"],"sourceRoot":"../../../../../src","sources":["acmo/core/helpers/launcher.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,eAAeC,kBAAkBA,CAACC,GAAW,EAAE;EAClD,MAAMC,oBAAO,CAACC,OAAO,CAACF,GAAG,CAAC;AAC9B;AAEO,eAAeG,aAAaA,CAACH,GAAW,EAAE;EAC/C,MAAMI,SAAS,GAAG,MAAMH,oBAAO,CAACI,UAAU,CAACL,GAAG,CAAC;EAC/C,IAAII,SAAS,EAAE;IACb,MAAMH,oBAAO,CAACC,OAAO,CAACF,GAAG,CAAC;EAC5B,CAAC,MAAM;IACLM,OAAO,CAACC,IAAI,CAAC,8BAA8B,GAAGP,GAAG,CAAC;EACpD;AACF","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ const LINKING_ERROR = `The package 'tyrads-sdk' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
9
+ ios: "- You have run 'pod install'\n",
10
+ default: ''
11
+ }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
12
+ const TyradsSdk = _reactNative.NativeModules.TyradsSdk ? _reactNative.NativeModules.TyradsSdk : new Proxy({}, {
13
+ get() {
14
+ throw new Error(LINKING_ERROR);
15
+ }
16
+ });
17
+ const TyradsNativeMethods = {
18
+ isPrivacyAccepted: async () => {
19
+ try {
20
+ return await TyradsSdk.isPrivacyAccepted();
21
+ } catch (err) {
22
+ console.error("Error checking privacy acceptance:", err);
23
+ return false;
24
+ }
25
+ },
26
+ checkOnboardingProcess: async () => {
27
+ try {
28
+ const result = await TyradsSdk.checkOnboardingProcess();
29
+ return result === true;
30
+ } catch (err) {
31
+ console.error("Error showing privacy flow:", err);
32
+ return false;
33
+ }
34
+ }
35
+ };
36
+ var _default = exports.default = TyradsNativeMethods;
37
+ //# sourceMappingURL=native_methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","TyradsSdk","NativeModules","Proxy","get","Error","TyradsNativeMethods","isPrivacyAccepted","err","console","error","checkOnboardingProcess","result","_default","exports"],"sourceRoot":"../../../../../src","sources":["acmo/core/helpers/native_methods.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,aAAa,GACjB,qEAAqE,GACrEC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,SAAS,GAAGC,0BAAa,CAACD,SAAS,GACrCC,0BAAa,CAACD,SAAS,GACvB,IAAIE,KAAK,CACT,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACT,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAGH,MAAMU,mBAAmB,GAAG;EAE1BC,iBAAiB,EAAE,MAAAA,CAAA,KAAY;IAC7B,IAAI;MACF,OAAO,MAAMN,SAAS,CAACM,iBAAiB,CAAC,CAAC;IAC5C,CAAC,CAAC,OAAOC,GAAG,EAAE;MACZC,OAAO,CAACC,KAAK,CAAC,oCAAoC,EAAEF,GAAG,CAAC;MACxD,OAAO,KAAK;IACd;EACF,CAAC;EAEDG,sBAAsB,EAAE,MAAAA,CAAA,KAAY;IAClC,IAAI;MACF,MAAMC,MAAM,GAAG,MAAMX,SAAS,CAACU,sBAAsB,CAAC,CAAC;MACvD,OAAOC,MAAM,KAAK,IAAI;IACxB,CAAC,CAAC,OAAOJ,GAAG,EAAE;MACZC,OAAO,CAACC,KAAK,CAAC,6BAA6B,EAAEF,GAAG,CAAC;MACjD,OAAO,KAAK;IACd;EACF;AACF,CAAC;AAAC,IAAAK,QAAA,GAAAC,OAAA,CAAAd,OAAA,GAEaM,mBAAmB","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.numeral = void 0;
7
+ const numeral = (value, decimals = 2) => {
8
+ const suffixes = ['', 'K', 'M', 'B', 'T'];
9
+ let suffixIndex = 0;
10
+ let dividedValue = value;
11
+ while (dividedValue >= 1000 && suffixIndex < suffixes.length - 1) {
12
+ dividedValue /= 1000;
13
+ suffixIndex++;
14
+ }
15
+ const roundedValue = Math.floor(dividedValue * Math.pow(10, decimals)) / Math.pow(10, decimals);
16
+ return `${roundedValue}${suffixes[suffixIndex]}`;
17
+ };
18
+ exports.numeral = numeral;
19
+ //# sourceMappingURL=numeral.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["numeral","value","decimals","suffixes","suffixIndex","dividedValue","length","roundedValue","Math","floor","pow","exports"],"sourceRoot":"../../../../../src","sources":["acmo/core/helpers/numeral.ts"],"mappings":";;;;;;AAAO,MAAMA,OAAO,GAAGA,CAACC,KAAa,EAAEC,QAAgB,GAAG,CAAC,KAAa;EACtE,MAAMC,QAAQ,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACzC,IAAIC,WAAW,GAAG,CAAC;EACnB,IAAIC,YAAY,GAAGJ,KAAK;EAExB,OAAOI,YAAY,IAAI,IAAI,IAAID,WAAW,GAAGD,QAAQ,CAACG,MAAM,GAAG,CAAC,EAAE;IAChED,YAAY,IAAI,IAAI;IACpBD,WAAW,EAAE;EACf;EAEA,MAAMG,YAAY,GAAGC,IAAI,CAACC,KAAK,CAACJ,YAAY,GAAGG,IAAI,CAACE,GAAG,CAAC,EAAE,EAAER,QAAQ,CAAC,CAAC,GAAGM,IAAI,CAACE,GAAG,CAAC,EAAE,EAAER,QAAQ,CAAC;EAE/F,OAAO,GAAGK,YAAY,GAAGJ,QAAQ,CAACC,WAAW,CAAC,EAAE;AAClD,CAAC;AAACO,OAAA,CAAAX,OAAA,GAAAA,OAAA","ignoreList":[]}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
8
+ var _axios = _interopRequireDefault(require("axios"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const BASE_URL = 'https://api.tyrads.com/v3.0/';
11
+ class LocalizationService {
12
+ axios = null;
13
+ translations = {};
14
+ supportedLocales = [];
15
+ fallbackLocale = 'en';
16
+ constructor() {}
17
+ static getInstance() {
18
+ if (!LocalizationService.instance) {
19
+ LocalizationService.instance = new LocalizationService();
20
+ }
21
+ return LocalizationService.instance;
22
+ }
23
+ static async getHeadersFromStorage() {
24
+ try {
25
+ const data = await _asyncStorage.default.getItem('credentials');
26
+ return data ? JSON.parse(data) : {};
27
+ } catch (error) {
28
+ console.error('Failed to retrieve headers from AsyncStorage', error);
29
+ return {};
30
+ }
31
+ }
32
+ async init(locale) {
33
+ if (this.axios) {
34
+ return;
35
+ }
36
+ const headers = await LocalizationService.getHeadersFromStorage();
37
+ this.axios = _axios.default.create({
38
+ baseURL: BASE_URL,
39
+ timeout: 10000,
40
+ headers: {
41
+ 'Content-Type': 'application/json',
42
+ Accept: 'application/json',
43
+ "X-API-Key": headers["X-API-Key"],
44
+ "X-API-Secret": headers["X-API-Secret"]
45
+ }
46
+ });
47
+ this.axios.interceptors.request.use(config => {
48
+ console.log('====================================');
49
+ console.log(`Request: ${config.method} ${config.baseURL}${config.url}`);
50
+ console.log('Headers:', config.headers);
51
+ console.log('====================================');
52
+ return config;
53
+ }, error => {
54
+ return Promise.reject(error);
55
+ });
56
+ this.axios.interceptors.response.use(res => {
57
+ console.log('====================================');
58
+ console.log('Response Data:', res.data);
59
+ console.log('====================================');
60
+ return res;
61
+ }, error => {
62
+ return Promise.reject(error);
63
+ });
64
+ await this.loadTranslations(locale);
65
+ }
66
+ async loadTranslations(locale, force = false) {
67
+ const hasUpdate = await this.checkForUpdate(locale, force);
68
+ if (!hasUpdate) {
69
+ const cachedData = await _asyncStorage.default.getItem(`translations_${locale}`);
70
+ if (cachedData) {
71
+ try {
72
+ this.translations = JSON.parse(cachedData);
73
+ return;
74
+ } catch (e) {
75
+ console.error('Failed to parse cached translations', e);
76
+ }
77
+ }
78
+ }
79
+ await this.fetchTranslations(locale, force);
80
+ }
81
+ async fetchTranslations(locale, force = false) {
82
+ if (!this.axios) return;
83
+ try {
84
+ let effectiveLocale = locale;
85
+ if (!this.supportedLocales.includes(locale)) {
86
+ effectiveLocale = this.fallbackLocale;
87
+ }
88
+ const response = await this.axios.get(`translations/${effectiveLocale}`, {
89
+ params: {
90
+ force,
91
+ format: 'nested'
92
+ }
93
+ });
94
+ if (response.status === 200) {
95
+ this.translations = response.data;
96
+ await _asyncStorage.default.setItem(`translations_${effectiveLocale}`, JSON.stringify(response.data));
97
+ } else {
98
+ console.warn(`Failed to load translations: ${response.status}`);
99
+ }
100
+ } catch (e) {
101
+ if (_axios.default.isAxiosError(e)) {
102
+ console.error('Network error fetching translations:', e.message);
103
+ } else {
104
+ console.error('An unexpected error occurred:', e);
105
+ }
106
+ }
107
+ }
108
+ async checkForUpdate(locale, force = false) {
109
+ if (!this.axios) return false;
110
+ try {
111
+ const response = await this.axios.get('translations/version', {
112
+ params: {
113
+ force
114
+ }
115
+ });
116
+ if (response.status === 200) {
117
+ const data = response.data.data;
118
+ this.supportedLocales = data.map(item => item.code);
119
+ const currentLocaleData = data.find(item => item.code === locale);
120
+ if (!currentLocaleData) {
121
+ return false;
122
+ }
123
+ const currentLocaleSha256 = currentLocaleData.sha256;
124
+ const cachedVersion = await _asyncStorage.default.getItem(`cached_version_${locale}`);
125
+ if (currentLocaleSha256 !== cachedVersion) {
126
+ await _asyncStorage.default.setItem(`cached_version_${locale}`, currentLocaleSha256);
127
+ return true;
128
+ }
129
+ }
130
+ } catch (e) {
131
+ if (_axios.default.isAxiosError(e)) {
132
+ console.error('Error checking for update:', e.message);
133
+ } else {
134
+ console.error('An unexpected error occurred:', e);
135
+ }
136
+ }
137
+ return false;
138
+ }
139
+ translate(key, args = {}) {
140
+ const keys = key.split('.');
141
+ let currentMap = this.translations;
142
+ for (const k of keys) {
143
+ if (typeof currentMap === 'object' && currentMap !== null && currentMap.hasOwnProperty(k)) {
144
+ currentMap = currentMap[k];
145
+ } else {
146
+ return key;
147
+ }
148
+ }
149
+ if (typeof currentMap === 'string') {
150
+ let result = currentMap;
151
+ for (const [argKey, argValue] of Object.entries(args)) {
152
+ const regex = new RegExp(`{${argKey}}`, 'gi');
153
+ result = result.replace(regex, String(argValue));
154
+ }
155
+ return result;
156
+ }
157
+ return key;
158
+ }
159
+ async changeLanguage(locale, force = false) {
160
+ await this.loadTranslations(locale, force);
161
+ }
162
+ }
163
+ var _default = exports.default = LocalizationService;
164
+ //# sourceMappingURL=localization_service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_asyncStorage","_interopRequireDefault","require","_axios","e","__esModule","default","BASE_URL","LocalizationService","axios","translations","supportedLocales","fallbackLocale","constructor","getInstance","instance","getHeadersFromStorage","data","AsyncStorage","getItem","JSON","parse","error","console","init","locale","headers","create","baseURL","timeout","Accept","interceptors","request","use","config","log","method","url","Promise","reject","response","res","loadTranslations","force","hasUpdate","checkForUpdate","cachedData","fetchTranslations","effectiveLocale","includes","get","params","format","status","setItem","stringify","warn","isAxiosError","message","map","item","code","currentLocaleData","find","currentLocaleSha256","sha256","cachedVersion","translate","key","args","keys","split","currentMap","k","hasOwnProperty","result","argKey","argValue","Object","entries","regex","RegExp","replace","String","changeLanguage","_default","exports"],"sourceRoot":"../../../../../src","sources":["acmo/core/services/localization_service.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAkD,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAElD,MAAMG,QAAQ,GAAG,8BAA8B;AAa/C,MAAMC,mBAAmB,CAAC;EAEhBC,KAAK,GAAyB,IAAI;EAClCC,YAAY,GAAiB,CAAC,CAAC;EAC/BC,gBAAgB,GAAa,EAAE;EACtBC,cAAc,GAAW,IAAI;EAEtCC,WAAWA,CAAA,EAAG,CACtB;EAEA,OAAcC,WAAWA,CAAA,EAAwB;IAC/C,IAAI,CAACN,mBAAmB,CAACO,QAAQ,EAAE;MACjCP,mBAAmB,CAACO,QAAQ,GAAG,IAAIP,mBAAmB,CAAC,CAAC;IAC1D;IACA,OAAOA,mBAAmB,CAACO,QAAQ;EACrC;EAEA,aAAqBC,qBAAqBA,CAAA,EAAoC;IAC5E,IAAI;MACF,MAAMC,IAAI,GAAG,MAAMC,qBAAY,CAACC,OAAO,CAAC,aAAa,CAAC;MACtD,OAAOF,IAAI,GAAGG,IAAI,CAACC,KAAK,CAACJ,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC,CAAC,OAAOK,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,8CAA8C,EAAEA,KAAK,CAAC;MACpE,OAAO,CAAC,CAAC;IACX;EACF;EAGA,MAAaE,IAAIA,CAACC,MAAc,EAAiB;IAC/C,IAAI,IAAI,CAAChB,KAAK,EAAE;MACd;IACF;IAEA,MAAMiB,OAAO,GAAG,MAAMlB,mBAAmB,CAACQ,qBAAqB,CAAC,CAAC;IAEjE,IAAI,CAACP,KAAK,GAAGA,cAAK,CAACkB,MAAM,CAAC;MACxBC,OAAO,EAAErB,QAAQ;MACjBsB,OAAO,EAAE,KAAK;MACdH,OAAO,EAAE;QACP,cAAc,EAAE,kBAAkB;QAClCI,MAAM,EAAE,kBAAkB;QAC1B,WAAW,EAAEJ,OAAO,CAAC,WAAW,CAAC;QACjC,cAAc,EAAEA,OAAO,CAAC,cAAc;MACxC;IACF,CAAC,CAAC;IAEF,IAAI,CAACjB,KAAK,CAACsB,YAAY,CAACC,OAAO,CAACC,GAAG,CAChCC,MAAM,IAAK;MACVX,OAAO,CAACY,GAAG,CAAC,sCAAsC,CAAC;MACnDZ,OAAO,CAACY,GAAG,CAAC,YAAYD,MAAM,CAACE,MAAM,IAAIF,MAAM,CAACN,OAAO,GAAGM,MAAM,CAACG,GAAG,EAAE,CAAC;MACvEd,OAAO,CAACY,GAAG,CAAC,UAAU,EAAED,MAAM,CAACR,OAAO,CAAC;MACvCH,OAAO,CAACY,GAAG,CAAC,sCAAsC,CAAC;MACnD,OAAOD,MAAM;IACf,CAAC,EACAZ,KAAK,IAAK;MACT,OAAOgB,OAAO,CAACC,MAAM,CAACjB,KAAK,CAAC;IAC9B,CACF,CAAC;IACD,IAAI,CAACb,KAAK,CAACsB,YAAY,CAACS,QAAQ,CAACP,GAAG,CACjCQ,GAAG,IAAK;MACPlB,OAAO,CAACY,GAAG,CAAC,sCAAsC,CAAC;MACnDZ,OAAO,CAACY,GAAG,CAAC,gBAAgB,EAAEM,GAAG,CAACxB,IAAI,CAAC;MACvCM,OAAO,CAACY,GAAG,CAAC,sCAAsC,CAAC;MACnD,OAAOM,GAAG;IACZ,CAAC,EACAnB,KAAK,IAAK;MACT,OAAOgB,OAAO,CAACC,MAAM,CAACjB,KAAK,CAAC;IAC9B,CACF,CAAC;IACD,MAAM,IAAI,CAACoB,gBAAgB,CAACjB,MAAM,CAAC;EACrC;EAEA,MAAciB,gBAAgBA,CAACjB,MAAc,EAAEkB,KAAK,GAAG,KAAK,EAAiB;IAC3E,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,cAAc,CAACpB,MAAM,EAAEkB,KAAK,CAAC;IAE1D,IAAI,CAACC,SAAS,EAAE;MACd,MAAME,UAAU,GAAG,MAAM5B,qBAAY,CAACC,OAAO,CAAC,gBAAgBM,MAAM,EAAE,CAAC;MACvE,IAAIqB,UAAU,EAAE;QACd,IAAI;UACF,IAAI,CAACpC,YAAY,GAAGU,IAAI,CAACC,KAAK,CAACyB,UAAU,CAAC;UAC1C;QACF,CAAC,CAAC,OAAO1C,CAAC,EAAE;UACVmB,OAAO,CAACD,KAAK,CAAC,qCAAqC,EAAElB,CAAC,CAAC;QACzD;MACF;IACF;IAEA,MAAM,IAAI,CAAC2C,iBAAiB,CAACtB,MAAM,EAAEkB,KAAK,CAAC;EAC7C;EAEA,MAAcI,iBAAiBA,CAACtB,MAAc,EAAEkB,KAAK,GAAG,KAAK,EAAiB;IAC5E,IAAI,CAAC,IAAI,CAAClC,KAAK,EAAE;IACjB,IAAI;MACF,IAAIuC,eAAe,GAAGvB,MAAM;MAC5B,IAAI,CAAC,IAAI,CAACd,gBAAgB,CAACsC,QAAQ,CAACxB,MAAM,CAAC,EAAE;QAC3CuB,eAAe,GAAG,IAAI,CAACpC,cAAc;MACvC;MAEA,MAAM4B,QAAQ,GAAG,MAAM,IAAI,CAAC/B,KAAK,CAACyC,GAAG,CACnC,gBAAgBF,eAAe,EAAE,EACjC;QACEG,MAAM,EAAE;UACNR,KAAK;UACLS,MAAM,EAAE;QACV;MACF,CACF,CAAC;MAED,IAAIZ,QAAQ,CAACa,MAAM,KAAK,GAAG,EAAE;QAC3B,IAAI,CAAC3C,YAAY,GAAG8B,QAAQ,CAACvB,IAAoB;QACjD,MAAMC,qBAAY,CAACoC,OAAO,CAAC,gBAAgBN,eAAe,EAAE,EAAE5B,IAAI,CAACmC,SAAS,CAACf,QAAQ,CAACvB,IAAI,CAAC,CAAC;MAC9F,CAAC,MAAM;QACLM,OAAO,CAACiC,IAAI,CAAC,gCAAgChB,QAAQ,CAACa,MAAM,EAAE,CAAC;MACjE;IACF,CAAC,CAAC,OAAOjD,CAAC,EAAE;MACV,IAAIK,cAAK,CAACgD,YAAY,CAACrD,CAAC,CAAC,EAAE;QACzBmB,OAAO,CAACD,KAAK,CAAC,sCAAsC,EAAElB,CAAC,CAACsD,OAAO,CAAC;MAClE,CAAC,MAAM;QACLnC,OAAO,CAACD,KAAK,CAAC,+BAA+B,EAAElB,CAAC,CAAC;MACnD;IACF;EACF;EAEA,MAAcyC,cAAcA,CAACpB,MAAc,EAAEkB,KAAK,GAAG,KAAK,EAAoB;IAC5E,IAAI,CAAC,IAAI,CAAClC,KAAK,EAAE,OAAO,KAAK;IAC7B,IAAI;MACF,MAAM+B,QAAQ,GAAG,MAAM,IAAI,CAAC/B,KAAK,CAACyC,GAAG,CAAsB,sBAAsB,EAAE;QAAEC,MAAM,EAAE;UAAER;QAAM;MAAE,CAAC,CAAC;MACzG,IAAIH,QAAQ,CAACa,MAAM,KAAK,GAAG,EAAE;QAC3B,MAAMpC,IAAI,GAAGuB,QAAQ,CAACvB,IAAI,CAACA,IAAI;QAC/B,IAAI,CAACN,gBAAgB,GAAGM,IAAI,CAAC0C,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,IAAI,CAAC;QAEnD,MAAMC,iBAAiB,GAAG7C,IAAI,CAAC8C,IAAI,CAACH,IAAI,IAAIA,IAAI,CAACC,IAAI,KAAKpC,MAAM,CAAC;QACjE,IAAI,CAACqC,iBAAiB,EAAE;UACtB,OAAO,KAAK;QACd;QAEA,MAAME,mBAAmB,GAAGF,iBAAiB,CAACG,MAAM;QACpD,MAAMC,aAAa,GAAG,MAAMhD,qBAAY,CAACC,OAAO,CAAC,kBAAkBM,MAAM,EAAE,CAAC;QAE5E,IAAIuC,mBAAmB,KAAKE,aAAa,EAAE;UACzC,MAAMhD,qBAAY,CAACoC,OAAO,CAAC,kBAAkB7B,MAAM,EAAE,EAAEuC,mBAAmB,CAAC;UAC3E,OAAO,IAAI;QACb;MACF;IACF,CAAC,CAAC,OAAO5D,CAAC,EAAE;MACV,IAAIK,cAAK,CAACgD,YAAY,CAACrD,CAAC,CAAC,EAAE;QACzBmB,OAAO,CAACD,KAAK,CAAC,4BAA4B,EAAElB,CAAC,CAACsD,OAAO,CAAC;MACxD,CAAC,MAAM;QACLnC,OAAO,CAACD,KAAK,CAAC,+BAA+B,EAAElB,CAAC,CAAC;MACnD;IACF;IACA,OAAO,KAAK;EACd;EAEO+D,SAASA,CAACC,GAAW,EAAEC,IAAqC,GAAG,CAAC,CAAC,EAAU;IAChF,MAAMC,IAAI,GAAGF,GAAG,CAACG,KAAK,CAAC,GAAG,CAAC;IAC3B,IAAIC,UAAe,GAAG,IAAI,CAAC9D,YAAY;IAEvC,KAAK,MAAM+D,CAAC,IAAIH,IAAI,EAAE;MACpB,IAAI,OAAOE,UAAU,KAAK,QAAQ,IAAIA,UAAU,KAAK,IAAI,IAAIA,UAAU,CAACE,cAAc,CAACD,CAAC,CAAC,EAAE;QACzFD,UAAU,GAAGA,UAAU,CAACC,CAAC,CAAC;MAC5B,CAAC,MAAM;QACL,OAAOL,GAAG;MACZ;IACF;IAEA,IAAI,OAAOI,UAAU,KAAK,QAAQ,EAAE;MAClC,IAAIG,MAAM,GAAGH,UAAU;MACvB,KAAK,MAAM,CAACI,MAAM,EAAEC,QAAQ,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACV,IAAI,CAAC,EAAE;QACrD,MAAMW,KAAK,GAAG,IAAIC,MAAM,CAAC,IAAIL,MAAM,GAAG,EAAE,IAAI,CAAC;QAC7CD,MAAM,GAAGA,MAAM,CAACO,OAAO,CAACF,KAAK,EAAEG,MAAM,CAACN,QAAQ,CAAC,CAAC;MAClD;MACA,OAAOF,MAAM;IACf;IAEA,OAAOP,GAAG;EACZ;EAEA,MAAagB,cAAcA,CAAC3D,MAAc,EAAEkB,KAAK,GAAG,KAAK,EAAiB;IACxE,MAAM,IAAI,CAACD,gBAAgB,CAACjB,MAAM,EAAEkB,KAAK,CAAC;EAC5C;AACF;AAAC,IAAA0C,QAAA,GAAAC,OAAA,CAAAhF,OAAA,GAEcE,mBAAmB","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.saveData = exports.getData = void 0;
6
+ exports.saveData = exports.getData = exports.clearData = void 0;
7
7
  var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
8
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
9
  const saveData = async (key, object) => {
@@ -33,4 +33,18 @@ const getData = async key => {
33
33
  }
34
34
  };
35
35
  exports.getData = getData;
36
+ const clearData = async key => {
37
+ try {
38
+ await _asyncStorage.default.removeItem(key);
39
+ return true;
40
+ } catch (e) {
41
+ if (e instanceof Error) {
42
+ console.error('Error getting object:', e.message);
43
+ } else {
44
+ console.error('An unknown error occurred while getting.');
45
+ }
46
+ return false;
47
+ }
48
+ };
49
+ exports.clearData = clearData;
36
50
  //# sourceMappingURL=storage.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_asyncStorage","_interopRequireDefault","require","e","__esModule","default","saveData","key","object","jsonValue","JSON","stringify","AsyncStorage","setItem","Error","console","error","message","exports","getData","getItem","parse"],"sourceRoot":"../../../../../src","sources":["acmo/core/storage/storage.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAqE,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9D,MAAMG,QAAQ,GAAG,MAAAA,CAAOC,GAAW,EAAEC,MAAW,KAAoB;EACzE,IAAI;IACF,MAAMC,SAAiB,GAAGC,IAAI,CAACC,SAAS,CAACH,MAAM,CAAC;IAChD,MAAMI,qBAAY,CAACC,OAAO,CAACN,GAAG,EAAEE,SAAS,CAAC;EAC5C,CAAC,CAAC,OAAON,CAAM,EAAE;IACf,IAAIA,CAAC,YAAYW,KAAK,EAAE;MACtBC,OAAO,CAACC,KAAK,CAAC,sBAAsB,EAAEb,CAAC,CAACc,OAAO,CAAC;IAClD,CAAC,MAAM;MACLF,OAAO,CAACC,KAAK,CAAC,yCAAyC,CAAC;IAC1D;EACF;AACF,CAAC;AAACE,OAAA,CAAAZ,QAAA,GAAAA,QAAA;AAEK,MAAMa,OAAO,GAAG,MAAUZ,GAAW,IAAwB;EAClE,IAAI;IACF,MAAME,SAAwB,GAAG,MAAMG,qBAAY,CAACQ,OAAO,CAACb,GAAG,CAAC;IAChE,OAAOE,SAAS,IAAI,IAAI,GAAGC,IAAI,CAACW,KAAK,CAACZ,SAAS,CAAC,GAAQ,IAAI;EAC9D,CAAC,CAAC,OAAON,CAAM,EAAE;IACf,IAAIA,CAAC,YAAYW,KAAK,EAAE;MACtBC,OAAO,CAACC,KAAK,CAAC,uBAAuB,EAAEb,CAAC,CAACc,OAAO,CAAC;IACnD,CAAC,MAAM;MACLF,OAAO,CAACC,KAAK,CAAC,0CAA0C,CAAC;IAC3D;IACA,OAAO,IAAI;EACb;AACF,CAAC;AAACE,OAAA,CAAAC,OAAA,GAAAA,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_asyncStorage","_interopRequireDefault","require","e","__esModule","default","saveData","key","object","jsonValue","JSON","stringify","AsyncStorage","setItem","Error","console","error","message","exports","getData","getItem","parse","clearData","removeItem"],"sourceRoot":"../../../../../src","sources":["acmo/core/storage/storage.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAqE,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9D,MAAMG,QAAQ,GAAG,MAAAA,CAAOC,GAAW,EAAEC,MAAW,KAAoB;EACzE,IAAI;IACF,MAAMC,SAAiB,GAAGC,IAAI,CAACC,SAAS,CAACH,MAAM,CAAC;IAChD,MAAMI,qBAAY,CAACC,OAAO,CAACN,GAAG,EAAEE,SAAS,CAAC;EAC5C,CAAC,CAAC,OAAON,CAAM,EAAE;IACf,IAAIA,CAAC,YAAYW,KAAK,EAAE;MACtBC,OAAO,CAACC,KAAK,CAAC,sBAAsB,EAAEb,CAAC,CAACc,OAAO,CAAC;IAClD,CAAC,MAAM;MACLF,OAAO,CAACC,KAAK,CAAC,yCAAyC,CAAC;IAC1D;EACF;AACF,CAAC;AAACE,OAAA,CAAAZ,QAAA,GAAAA,QAAA;AAEK,MAAMa,OAAO,GAAG,MAAUZ,GAAW,IAAwB;EAClE,IAAI;IACF,MAAME,SAAwB,GAAG,MAAMG,qBAAY,CAACQ,OAAO,CAACb,GAAG,CAAC;IAChE,OAAOE,SAAS,IAAI,IAAI,GAAGC,IAAI,CAACW,KAAK,CAACZ,SAAS,CAAC,GAAQ,IAAI;EAC9D,CAAC,CAAC,OAAON,CAAM,EAAE;IACf,IAAIA,CAAC,YAAYW,KAAK,EAAE;MACtBC,OAAO,CAACC,KAAK,CAAC,uBAAuB,EAAEb,CAAC,CAACc,OAAO,CAAC;IACnD,CAAC,MAAM;MACLF,OAAO,CAACC,KAAK,CAAC,0CAA0C,CAAC;IAC3D;IACA,OAAO,IAAI;EACb;AACF,CAAC;AAACE,OAAA,CAAAC,OAAA,GAAAA,OAAA;AAEK,MAAMG,SAAS,GAAG,MAAUf,GAAW,IAAwB;EACpE,IAAI;IACF,MAAMK,qBAAY,CAACW,UAAU,CAAChB,GAAG,CAAC;IAClC,OAAO,IAAI;EACb,CAAC,CAAC,OAAOJ,CAAM,EAAE;IACf,IAAIA,CAAC,YAAYW,KAAK,EAAE;MACtBC,OAAO,CAACC,KAAK,CAAC,uBAAuB,EAAEb,CAAC,CAACc,OAAO,CAAC;IACnD,CAAC,MAAM;MACLF,OAAO,CAACC,KAAK,CAAC,0CAA0C,CAAC;IAC3D;IACA,OAAO,KAAK;EACd;AACF,CAAC;AAACE,OAAA,CAAAI,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _localization_context = require("../../localization/localization_context.js");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ // import { useTranslation } from 'react-i18next';
13
+
14
+ const ActiveOffersButton = ({
15
+ premiumColor,
16
+ activeCount,
17
+ onPress
18
+ }) => {
19
+ const {
20
+ t
21
+ } = (0, _localization_context.useLocalization)();
22
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
23
+ style: [styles.button, {
24
+ borderColor: premiumColor
25
+ }],
26
+ onPress: () => onPress && onPress('active-offers'),
27
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
28
+ style: {
29
+ flexDirection: 'row',
30
+ alignItems: 'center'
31
+ },
32
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
33
+ style: [styles.buttonText, {
34
+ color: premiumColor
35
+ }],
36
+ children: t("data.offers.button.activeOffers")
37
+ }), activeCount > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
38
+ style: styles.activeCountContainer,
39
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
40
+ style: styles.activeCountText,
41
+ children: activeCount > 99 ? '99+' : activeCount
42
+ })
43
+ })]
44
+ })
45
+ });
46
+ };
47
+ const styles = _reactNative.StyleSheet.create({
48
+ button: {
49
+ borderRadius: 42,
50
+ paddingHorizontal: 16,
51
+ paddingVertical: 8,
52
+ height: 40,
53
+ justifyContent: 'center',
54
+ alignItems: 'center',
55
+ marginHorizontal: 16,
56
+ marginBottom: 16,
57
+ borderWidth: 2
58
+ },
59
+ buttonText: {
60
+ fontSize: 14,
61
+ fontWeight: 'bold'
62
+ },
63
+ activeCountContainer: {
64
+ marginLeft: 8,
65
+ width: 18,
66
+ height: 18,
67
+ backgroundColor: '#FF554A',
68
+ alignItems: 'center',
69
+ justifyContent: 'center',
70
+ borderRadius: 9
71
+ },
72
+ activeCountText: {
73
+ color: 'white',
74
+ fontSize: 10,
75
+ fontWeight: 'bold'
76
+ }
77
+ });
78
+ var _default = exports.default = ActiveOffersButton;
79
+ //# sourceMappingURL=active_offers_button.js.map