@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,248 @@
1
+ import React, { useState } from 'react';
2
+ import {numeral} from '../../../core/helpers/numeral';
3
+ import {
4
+ View,
5
+ Text,
6
+ Image,
7
+ StyleSheet,
8
+ TouchableOpacity,
9
+ ActivityIndicator,
10
+ } from 'react-native';
11
+
12
+
13
+ interface Props {
14
+ item: Campaign;
15
+ onButtonClick: () => Promise<void>;
16
+ currencySaleModel?: CurrencySales;
17
+ premiumColor?: string;
18
+ isLoading: boolean;
19
+ onTap?: () => Promise<void>;
20
+ }
21
+
22
+ const AcmoOfferCard: React.FC<Props> = ({
23
+ item,
24
+ onButtonClick,
25
+ currencySaleModel,
26
+ premiumColor,
27
+ isLoading,
28
+ onTap,
29
+ }) => {
30
+ const [loading, setLoading] = useState<boolean>(isLoading);
31
+ const bonusMultiplier = currencySaleModel?.multiplier ?? 1;
32
+ const itemHeight = 132;
33
+
34
+ const handleClick = async () => {
35
+ if (loading) return;
36
+ setLoading(true);
37
+ await onButtonClick();
38
+ setLoading(false);
39
+ };
40
+
41
+ return (
42
+ <TouchableOpacity
43
+ key={item.campaignId}
44
+ activeOpacity={0.9}
45
+ style={styles.container}
46
+ onPress={() => {
47
+ if (!loading && onTap) onTap();
48
+ }}
49
+ >
50
+ <View style={styles.cardShadow}>
51
+ <View style={[styles.imageContainer, { height: itemHeight }]}>
52
+ <Image
53
+ source={{ uri: item.creative.creativePacks[0]?.creatives[0]?.fileUrl || '' }}
54
+ style={styles.image}
55
+ />
56
+ {item.premium && (
57
+ <View style={styles.diamondIcon}>
58
+ <Image
59
+ style={{ width: 12, height: 12, objectFit: 'contain', tintColor: 'white' }}
60
+ source={require('../../../../assets/images/diamond.png')}
61
+ />
62
+ </View>
63
+ )}
64
+ </View>
65
+
66
+ <View style={styles.detailCard}>
67
+ <View style={styles.header}>
68
+ <Image source={{ uri: item.app.thumbnail }} style={styles.appIcon} />
69
+ <Text style={styles.title}>{item.app.title}</Text>
70
+
71
+ <View style={styles.payoutSection}>
72
+ {currencySaleModel?.multiplier && (
73
+ <Text style={styles.strikePayout}>
74
+ {numeral(item.campaignPayout.totalPlayablePayoutConverted)}
75
+ </Text>
76
+ )}
77
+ <View style={styles.payoutRow}>
78
+ <Image source={{ uri: item.currency.adUnitCurrencyIcon }} style={styles.currencyIcon} />
79
+ <Text style={styles.payoutText}>
80
+ {numeral(item.campaignPayout.totalPlayablePayoutConverted * bonusMultiplier)}
81
+ </Text>
82
+ </View>
83
+ </View>
84
+
85
+ <TouchableOpacity onPress={onTap} disabled={loading}>
86
+ <Image source={require('../../../../assets/images/info_icon.png')} style={styles.infoIcon} />
87
+ </TouchableOpacity>
88
+ </View>
89
+
90
+ <TouchableOpacity
91
+ style={[styles.button, loading && styles.buttonDisabled, { backgroundColor: loading ? '#888' : premiumColor || '#1C90DF' }]}
92
+ onPress={handleClick}
93
+ disabled={loading}
94
+ >
95
+ {loading ? (
96
+ <ActivityIndicator color="white" />
97
+ ) : (
98
+ <Text style={styles.buttonText}>Play Now</Text>
99
+ )}
100
+ </TouchableOpacity>
101
+ </View>
102
+
103
+ {currencySaleModel?.multiplier && (
104
+ <View style={[styles.bonusBadge, { backgroundColor: `${premiumColor}` || '#1C90DF' }]}>
105
+ <Text style={styles.bonusText}>{currencySaleModel?.multiplier.toFixed(1)}x Bonus</Text>
106
+ </View>
107
+ )}
108
+ {currencySaleModel?.multiplier && (
109
+ <View style={[styles.trianlge, { backgroundColor: `${premiumColor}cc` || '#1C90DF' }]}>
110
+ </View>
111
+
112
+ )}
113
+ </View>
114
+ </TouchableOpacity>
115
+ );
116
+ };
117
+
118
+ const styles = StyleSheet.create({
119
+ container: {
120
+ margin: 16,
121
+ width: "100%"
122
+ },
123
+ cardShadow: {
124
+ borderRadius: 16,
125
+ backgroundColor: 'white',
126
+ shadowColor: 'black',
127
+ shadowOffset: { width: 0, height: 16 },
128
+ shadowOpacity: 0.06,
129
+ shadowRadius: 18,
130
+ elevation: 4,
131
+ },
132
+ imageContainer: {
133
+ borderTopLeftRadius: 16,
134
+ borderTopRightRadius: 16,
135
+ overflow: 'hidden',
136
+ },
137
+ image: {
138
+ width: '100%',
139
+ height: '100%',
140
+ resizeMode: 'cover',
141
+ },
142
+ diamondIcon: {
143
+ position: 'absolute',
144
+ top: 16,
145
+ right: 16,
146
+ backgroundColor: '#1E2020DD',
147
+ width: 28,
148
+ height: 28,
149
+ borderRadius: 8,
150
+ justifyContent: 'center',
151
+ alignItems: 'center',
152
+ },
153
+ diamondText: {
154
+ color: 'white',
155
+ fontSize: 14,
156
+ },
157
+ detailCard: {
158
+ padding: 16,
159
+ },
160
+ header: {
161
+ flexDirection: 'row',
162
+ justifyContent: 'space-between',
163
+ alignItems: 'center',
164
+ },
165
+ appIcon: {
166
+ width: 38,
167
+ height: 38,
168
+ borderRadius: 8,
169
+ marginRight: 8,
170
+ },
171
+ title: {
172
+ flex: 1,
173
+ fontWeight: '600',
174
+ fontSize: 14,
175
+ },
176
+ payoutSection: {
177
+ alignItems: 'flex-end',
178
+ },
179
+ strikePayout: {
180
+ textDecorationLine: 'line-through',
181
+ color: '#454646',
182
+ fontSize: 12,
183
+ },
184
+ payoutRow: {
185
+ flexDirection: 'row',
186
+ alignItems: 'center',
187
+ },
188
+ currencyIcon: {
189
+ width: 16,
190
+ height: 16,
191
+ marginRight: 4,
192
+ },
193
+ payoutText: {
194
+ fontWeight: '700',
195
+ fontSize: 14,
196
+ },
197
+ infoIcon: {
198
+ width: 16,
199
+ height: 16,
200
+ marginLeft: 8,
201
+ },
202
+ button: {
203
+ marginTop: 12,
204
+ height: 42,
205
+ borderRadius: 8,
206
+ justifyContent: 'center',
207
+ alignItems: 'center',
208
+ },
209
+ buttonDisabled: {
210
+ backgroundColor: '#e0e2e7',
211
+ },
212
+ buttonText: {
213
+ color: 'white',
214
+ fontWeight: '600',
215
+ fontSize: 14,
216
+ },
217
+ bonusBadge: {
218
+ position: 'absolute',
219
+ top: 16,
220
+ left: -6,
221
+ paddingVertical: 8,
222
+ paddingHorizontal: 14,
223
+ borderTopRightRadius: 100,
224
+ borderTopLeftRadius: 10,
225
+ borderBottomRightRadius: 100,
226
+ shadowColor: 'black',
227
+ shadowOffset: { width: 0, height: 8 },
228
+ shadowOpacity: 0.3,
229
+ shadowRadius: 10,
230
+ backgroundColor: 'transparent',
231
+ },
232
+ trianlge: {
233
+ position: 'absolute',
234
+ top: 46.6,
235
+ left: -7.4,
236
+ zIndex: -10,
237
+ width: 20,
238
+ height: 10,
239
+ transform: [{ rotate: '65deg' }]
240
+ },
241
+ bonusText: {
242
+ color: 'white',
243
+ fontWeight: '700',
244
+ fontSize: 12,
245
+ },
246
+ });
247
+
248
+ export default AcmoOfferCard;
@@ -0,0 +1,228 @@
1
+ import React from 'react';
2
+ import {numeral} from '../../../core/helpers/numeral';
3
+ import {
4
+ View,
5
+ Text,
6
+ TouchableOpacity,
7
+ Image,
8
+ StyleSheet,
9
+ ActivityIndicator,
10
+ } from 'react-native';
11
+ import { useLocalization } from '../../localization/localization_context';
12
+
13
+
14
+
15
+ type Props = {
16
+ offer: Campaign;
17
+ currencySales?: CurrencySales;
18
+ onButtonTap: () => Promise<void>;
19
+ onPress: () => Promise<void>;
20
+ index: number;
21
+ colorPremium?: string;
22
+ colorPremiumFg?: string;
23
+ loadingIndex: number | null;
24
+ setLoadingIndex: (index: number | null) => void;
25
+ };
26
+
27
+ const rankIcons = [
28
+ require('../../../../assets/images/rank_1.png'),
29
+ require('../../../../assets/images/rank_2.png'),
30
+ require('../../../../assets/images/rank_3.png'),
31
+ require('../../../../assets/images/rank_4.png'),
32
+ require('../../../../assets/images/rank_5.png'),
33
+ ];
34
+
35
+ export const AcmoOfferListItem: React.FC<Props> = ({
36
+ offer,
37
+ currencySales,
38
+ onButtonTap,
39
+ onPress,
40
+ index,
41
+ colorPremium,
42
+ colorPremiumFg,
43
+ loadingIndex,
44
+ setLoadingIndex,
45
+ }) => {
46
+ const bonusMultiplier = currencySales?.multiplier ?? 1;
47
+ const isLoading = loadingIndex === index;
48
+ const anyLoading = loadingIndex != null;
49
+ const { t } = useLocalization();
50
+
51
+ return (
52
+ <TouchableOpacity
53
+ disabled={anyLoading}
54
+ onPress={onPress}
55
+ style={styles.itemContainer}
56
+ activeOpacity={0.75}
57
+ >
58
+ <View style={styles.container}>
59
+ <Image source={rankIcons[index]} style={styles.rankIcon} />
60
+
61
+ <Image source={{ uri: offer.app.thumbnail }} style={styles.icon} />
62
+
63
+ <View style={styles.details}>
64
+ {currencySales && (
65
+ <View style={[styles.bonusBadge, { backgroundColor: `${colorPremium}20` }]}>
66
+ <Text style={[styles.bonusText, { color: colorPremium }]}>
67
+ {t('data.shared.label.bonusTagCaps',
68
+ { 'multiplier': currencySales?.multiplier! },)}
69
+ </Text>
70
+ </View>
71
+ )}
72
+
73
+ <Text numberOfLines={1} style={styles.title} ellipsizeMode="tail">
74
+ {offer.app.title}
75
+ </Text>
76
+
77
+ <View style={styles.payoutRow}>
78
+ {currencySales && (
79
+ <Text style={styles.strikeText}>
80
+ {numeral(offer.campaignPayout.totalPlayablePayoutConverted)}
81
+ </Text>
82
+ )}
83
+
84
+ <Image
85
+ source={{ uri: offer.currency.adUnitCurrencyIcon }}
86
+ style={styles.currencyIcon}
87
+ />
88
+
89
+ <Text style={styles.payoutText}>
90
+ {numeral(
91
+ offer.campaignPayout.totalPlayablePayoutConverted * bonusMultiplier
92
+ )}
93
+ </Text>
94
+ </View>
95
+ </View>
96
+
97
+ <TouchableOpacity
98
+ disabled={anyLoading}
99
+ style={[
100
+ styles.button,
101
+ { backgroundColor: anyLoading ? '#e0e2e7' : colorPremium },
102
+ ]}
103
+ onPress={async () => {
104
+ setLoadingIndex(index)
105
+ await onButtonTap();
106
+ setLoadingIndex(null);
107
+ }}
108
+ >
109
+ {isLoading ? (
110
+ <ActivityIndicator size="small" color="#a3a9b6" />
111
+ ) : null}
112
+ <Text
113
+ style={[
114
+ styles.buttonText,
115
+ {
116
+ color: anyLoading ? '#a3a9b6' : colorPremiumFg ?? '#fff',
117
+ marginLeft: isLoading ? 8 : 0,
118
+ },
119
+ ]}
120
+ >
121
+ {t("data.widget.button.play")}
122
+ </Text>
123
+ </TouchableOpacity>
124
+
125
+ </View>
126
+ </TouchableOpacity>
127
+ );
128
+ };
129
+
130
+
131
+ const styles = StyleSheet.create({
132
+ itemContainer: {
133
+ flexDirection: 'row',
134
+ flex: 1,
135
+ width: '100%',
136
+ justifyContent: 'space-between',
137
+ alignItems: 'center',
138
+ paddingHorizontal: 16,
139
+ paddingVertical: 8,
140
+ },
141
+ container: {
142
+ flexDirection: 'row',
143
+ marginVertical: 2,
144
+ paddingHorizontal: 0,
145
+ width: '100%',
146
+ position: 'relative',
147
+ },
148
+ rankIcon: {
149
+ position: 'absolute',
150
+ zIndex: 99,
151
+ left: -10,
152
+ top: -8,
153
+ width: 24,
154
+ height: 24,
155
+ resizeMode: 'contain',
156
+ },
157
+ row: {
158
+ flexDirection: 'row',
159
+ alignItems: 'center',
160
+ backgroundColor: '#fff',
161
+ borderRadius: 8,
162
+ padding: 10,
163
+ elevation: 2,
164
+ },
165
+ icon: {
166
+ width: 54,
167
+ height: 54,
168
+ borderRadius: 4,
169
+ marginRight: 10,
170
+ },
171
+ details: {
172
+ flex: 1,
173
+ justifyContent: 'center',
174
+ },
175
+ bonusBadge: {
176
+ alignSelf: 'flex-start',
177
+ paddingHorizontal: 8,
178
+ paddingVertical: 2,
179
+ borderRadius: 16,
180
+ marginBottom: 4,
181
+ },
182
+ bonusText: {
183
+ fontSize: 10,
184
+ fontWeight: '700',
185
+ },
186
+ title: {
187
+ fontSize: 12,
188
+ fontWeight: '500',
189
+ marginBottom: 4,
190
+ color: '#323434',
191
+ },
192
+ payoutRow: {
193
+ flexDirection: 'row',
194
+ alignItems: 'center',
195
+ gap: 10,
196
+ },
197
+ strikeText: {
198
+ fontSize: 12,
199
+ textDecorationLine: 'line-through',
200
+ color: '#323434',
201
+ fontWeight: '300',
202
+ },
203
+ currencyIcon: {
204
+ width: 14,
205
+ height: 14,
206
+ marginHorizontal: 4,
207
+ },
208
+ payoutText: {
209
+ fontSize: 12,
210
+ fontWeight: '700',
211
+ color: '#323434',
212
+ },
213
+ button: {
214
+ marginLeft: 4,
215
+ paddingHorizontal: 12,
216
+ height: 42,
217
+ minWidth: 75,
218
+ justifyContent: 'center',
219
+ alignItems: 'center',
220
+ borderRadius: 8,
221
+ flexDirection: 'row',
222
+ },
223
+ buttonText: {
224
+ fontSize: 14,
225
+ fontWeight: '600',
226
+ color: '#fff',
227
+ },
228
+ });
@@ -0,0 +1,79 @@
1
+ import React from 'react';
2
+ import { View, Text, TouchableOpacity, StyleSheet, ImageBackground } from 'react-native';
3
+ import { useLocalization } from '../../localization/localization_context';
4
+
5
+ const PremiumEmptyView: React.FC<{ onContinue?: () => void, colorPremium?: string}> = ({ onContinue, colorPremium}) => {
6
+
7
+ const { t } = useLocalization();
8
+
9
+ return (
10
+ <View style={styles.container}>
11
+ <ImageBackground
12
+ source={require('../../../../assets/images/premium-emptybg.jpeg')}
13
+ style={styles.backgroundImage}
14
+ imageStyle={styles.imageBorderRadius}
15
+ >
16
+ <View style={styles.content}>
17
+ <Text style={[styles.title, { color: 'white', fontFamily: 'Poppins_600SemiBold' }]}>
18
+ {t('data.widget.empty.noOffers')}
19
+ </Text>
20
+ <TouchableOpacity
21
+ style={[styles.button, { backgroundColor: 'white' }]}
22
+ onPress={onContinue}
23
+ activeOpacity={0.8}
24
+ >
25
+ <Text
26
+ style={[
27
+ styles.buttonText,
28
+ {
29
+ color: colorPremium ?? '#1C90DF',
30
+ fontWeight: 'bold',
31
+ fontSize: 12,
32
+ },
33
+ ]}
34
+ >
35
+ {t('data.widget.button.continuePlaying')}
36
+ </Text>
37
+ </TouchableOpacity>
38
+ </View>
39
+ </ImageBackground>
40
+ </View>
41
+ );
42
+ };
43
+
44
+ const styles = StyleSheet.create({
45
+ container: {
46
+ width: '100%',
47
+ },
48
+ backgroundImage: {
49
+ width: '100%',
50
+ borderRadius: 16,
51
+ overflow: 'hidden',
52
+ },
53
+ imageBorderRadius: {
54
+ borderRadius: 16,
55
+ },
56
+ content: {
57
+ paddingVertical: 22,
58
+ paddingHorizontal: 30,
59
+ justifyContent: 'center',
60
+ alignItems: 'center',
61
+ },
62
+ title: {
63
+ textAlign: 'center',
64
+ fontWeight: '600',
65
+ marginBottom: 16,
66
+ },
67
+ button: {
68
+ minWidth: '100%',
69
+ height: 34,
70
+ borderRadius: 8,
71
+ justifyContent: 'center',
72
+ alignItems: 'center',
73
+ },
74
+ buttonText: {
75
+ fontWeight: '600',
76
+ },
77
+ });
78
+
79
+ export default PremiumEmptyView;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { View, Text, Image, TouchableOpacity, StyleSheet,} from 'react-native';
3
- import { useTranslation } from 'react-i18next';
3
+ import { useLocalization } from '../../localization/localization_context';
4
4
 
5
5
  interface PremiumHeaderSectionProps {
6
6
  showMore?: boolean;
@@ -9,28 +9,29 @@ interface PremiumHeaderSectionProps {
9
9
  }
10
10
 
11
11
  const PremiumHeaderSection: React.FC<PremiumHeaderSectionProps> = ({ showMore = true, premiumColor, onShowOffers }) => {
12
- const { t } = useTranslation();
12
+ const { t } = useLocalization();
13
+
13
14
  return (
14
15
  <View style={styles.headerContainer}>
15
16
  <View style={styles.leftContainer}>
16
- <View style={[styles.starContainer, { backgroundColor: premiumColor || '#1C90DF' }]}>
17
+ <View style={styles.starContainer}>
17
18
  <Image
18
- source={require('../../../../assets/images/star_pointed.png')}
19
- style={[styles.starIcon, { tintColor: 'white' }]}
19
+ source={require('../../../../assets/images/diamond.png')}
20
+ style={[styles.starIcon, { tintColor: premiumColor }]}
20
21
  />
21
22
  </View>
22
- <Text style={styles.headerText} numberOfLines={1} adjustsFontSizeToFit ellipsizeMode="tail">
23
- {t('dashboard.suggested_offers')}
23
+ <Text style={[styles.headerText, { color: premiumColor }]} numberOfLines={1} ellipsizeMode="tail">
24
+ {t('data.widget.page.title')}
24
25
  </Text>
25
26
  </View>
26
27
  {showMore && (
27
28
  <TouchableOpacity style={styles.rightContainer} onPress={onShowOffers}>
28
29
  <Text style={[styles.moreOffersText, { color: premiumColor }]} numberOfLines={1}>
29
- {t('dashboard.more_offers')}
30
+ {t('data.widget.button.moreOffers')}
30
31
  </Text>
31
32
  <Image
32
- source={require('../../../../assets/images/right_arrow.png')}
33
- style={{ width: 11, height: 11, objectFit: 'contain', marginLeft: 5, tintColor: premiumColor || "#1C90DF" }}
33
+ source={require('../../../../assets/images/angle_up.png')}
34
+ style={{ transform: [{ rotate: '90deg' }], width: 11, height: 11, objectFit: 'contain', marginLeft: 5, tintColor: premiumColor || "#1C90DF" }}
34
35
  />
35
36
  </TouchableOpacity>
36
37
  )}
@@ -51,7 +52,7 @@ const styles = StyleSheet.create({
51
52
  justifyContent: 'space-between',
52
53
  alignItems: 'center',
53
54
  paddingHorizontal: 16,
54
- paddingVertical: 6,
55
+ paddingTop: 10,
55
56
  },
56
57
  leftContainer: {
57
58
  flexDirection: 'row',
@@ -64,7 +65,7 @@ const styles = StyleSheet.create({
64
65
  },
65
66
  headerText: {
66
67
  marginLeft: 8,
67
- fontSize: 16,
68
+ fontSize: 14,
68
69
  fontWeight: 'bold',
69
70
  flex: 1,
70
71
  },
@@ -78,4 +79,4 @@ const styles = StyleSheet.create({
78
79
  },
79
80
  });
80
81
 
81
- export default PremiumHeaderSection;
82
+ export default PremiumHeaderSection;
@@ -0,0 +1,72 @@
1
+ import React from 'react';
2
+ import { View, StyleSheet } from 'react-native';
3
+ import Shimmer from './custom_shimmer';
4
+ import { PremiumWidgetStyles } from '../top_offers';
5
+ import CustomCard from './custom_card';
6
+
7
+ interface PremiumWidgetsLoadingProps {
8
+ widgetStyle: PremiumWidgetStyles;
9
+ }
10
+
11
+ const PremiumWidgetsLoading: React.FC<PremiumWidgetsLoadingProps> = ({
12
+ widgetStyle,
13
+ }) => {
14
+ return (
15
+ <CustomCard style={{
16
+ width: '100%',
17
+ paddingHorizontal: 16,
18
+ }}>
19
+ <View style={styles.headerRow}>
20
+ <Shimmer style={{ width: 120, height: 18, borderRadius: 4 }} />
21
+ <Shimmer style={{ width: 105, height: 18, borderRadius: 4 }} />
22
+ </View>
23
+
24
+ {widgetStyle === PremiumWidgetStyles.list && (
25
+ <View style={styles.listContainer}>
26
+ {[...Array(4)].map((_, index) => (
27
+ <View key={index} style={styles.listTile}>
28
+ <Shimmer shimmerHeight={54} style={{ width: 54, height: 54, borderRadius: 4 }} />
29
+
30
+ <View style={styles.titleColumn}>
31
+ <Shimmer style={{ width: 130, height: 16, marginBottom: 2 }} />
32
+ <Shimmer style={{ width: 65, height: 16 }} />
33
+ </View>
34
+
35
+ <Shimmer shimmerHeight={42} style={{ width: 80, height: 42, borderRadius: 8 }} />
36
+ </View>
37
+ ))}
38
+ </View>
39
+ )}
40
+
41
+ {widgetStyle === PremiumWidgetStyles.sliderCards && (
42
+ <Shimmer shimmerHeight={150} style={{ flexDirection: 'row', height: 150, marginTop: 16 }} />
43
+ )}
44
+
45
+ <Shimmer shimmerHeight={42} style={{ flexDirection: 'row', height: 42, borderRadius: 21, marginVertical: 16 }} />
46
+ </CustomCard>
47
+ );
48
+ };
49
+
50
+ const styles = StyleSheet.create({
51
+ headerRow: {
52
+ flexDirection: 'row',
53
+ justifyContent: 'space-between',
54
+ marginTop: 12,
55
+ },
56
+ listContainer: {
57
+ marginTop: 12,
58
+ },
59
+ listTile: {
60
+ flexDirection: 'row',
61
+ alignItems: 'center',
62
+ paddingVertical: 10,
63
+ justifyContent: 'space-between',
64
+ },
65
+ titleColumn: {
66
+ flexDirection: 'column',
67
+ justifyContent: 'center',
68
+ marginHorizontal: 16,
69
+ },
70
+ });
71
+
72
+ export default PremiumWidgetsLoading;