@oxyhq/services 5.4.2 → 5.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/README.md +14 -0
  2. package/lib/commonjs/assets/OxyLogo.svg +1 -0
  3. package/lib/commonjs/assets/assets/OxyLogo.svg +1 -0
  4. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-Black.ttf +0 -0
  5. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-Bold.ttf +0 -0
  6. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-ExtraBold.ttf +0 -0
  7. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-Light.ttf +0 -0
  8. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-Medium.ttf +0 -0
  9. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-Regular.ttf +0 -0
  10. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-SemiBold.ttf +0 -0
  11. package/lib/commonjs/assets/assets/icons/OxyServices.tsx +67 -0
  12. package/lib/commonjs/assets/assets/icons/logo_OxyServices.svg +1 -0
  13. package/lib/commonjs/assets/assets/illustrations/HighFive.tsx +41 -0
  14. package/lib/commonjs/assets/fonts/Phudu/Phudu-Black.ttf +0 -0
  15. package/lib/commonjs/assets/fonts/Phudu/Phudu-Bold.ttf +0 -0
  16. package/lib/commonjs/assets/fonts/Phudu/Phudu-ExtraBold.ttf +0 -0
  17. package/lib/commonjs/assets/fonts/Phudu/Phudu-Light.ttf +0 -0
  18. package/lib/commonjs/assets/fonts/Phudu/Phudu-Medium.ttf +0 -0
  19. package/lib/commonjs/assets/fonts/Phudu/Phudu-Regular.ttf +0 -0
  20. package/lib/commonjs/assets/fonts/Phudu/Phudu-SemiBold.ttf +0 -0
  21. package/lib/commonjs/assets/icons/OxyServices.js +53 -0
  22. package/lib/commonjs/assets/icons/OxyServices.js.map +1 -0
  23. package/lib/commonjs/assets/icons/logo_OxyServices.svg +1 -0
  24. package/lib/commonjs/assets/illustrations/HighFive.js +61 -0
  25. package/lib/commonjs/assets/illustrations/HighFive.js.map +1 -0
  26. package/lib/commonjs/constants/version.js +28 -0
  27. package/lib/commonjs/constants/version.js.map +1 -0
  28. package/lib/commonjs/core/index.js +1660 -0
  29. package/lib/commonjs/core/index.js.map +1 -0
  30. package/lib/commonjs/index.js +160 -0
  31. package/lib/commonjs/index.js.map +1 -0
  32. package/lib/commonjs/lib/sonner.js +21 -0
  33. package/lib/commonjs/lib/sonner.js.map +1 -0
  34. package/lib/commonjs/models/interfaces.js +2 -0
  35. package/lib/commonjs/models/interfaces.js.map +1 -0
  36. package/lib/commonjs/models/secureSession.js +2 -0
  37. package/lib/commonjs/models/secureSession.js.map +1 -0
  38. package/lib/commonjs/node/createAuth.js +95 -0
  39. package/lib/commonjs/node/createAuth.js.map +1 -0
  40. package/lib/commonjs/node/index.js +63 -0
  41. package/lib/commonjs/node/index.js.map +1 -0
  42. package/lib/commonjs/package.json +1 -0
  43. package/lib/commonjs/ui/components/Avatar.js +98 -0
  44. package/lib/commonjs/ui/components/Avatar.js.map +1 -0
  45. package/lib/commonjs/ui/components/FollowButton.js +246 -0
  46. package/lib/commonjs/ui/components/FollowButton.js.map +1 -0
  47. package/lib/commonjs/ui/components/FontLoader.js +181 -0
  48. package/lib/commonjs/ui/components/FontLoader.js.map +1 -0
  49. package/lib/commonjs/ui/components/GroupedItem.js +109 -0
  50. package/lib/commonjs/ui/components/GroupedItem.js.map +1 -0
  51. package/lib/commonjs/ui/components/GroupedSection.js +33 -0
  52. package/lib/commonjs/ui/components/GroupedSection.js.map +1 -0
  53. package/lib/commonjs/ui/components/OxyLogo.js +56 -0
  54. package/lib/commonjs/ui/components/OxyLogo.js.map +1 -0
  55. package/lib/commonjs/ui/components/OxyProvider.js +522 -0
  56. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -0
  57. package/lib/commonjs/ui/components/OxySignInButton.js +178 -0
  58. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -0
  59. package/lib/commonjs/ui/components/ProfileCard.js +124 -0
  60. package/lib/commonjs/ui/components/ProfileCard.js.map +1 -0
  61. package/lib/commonjs/ui/components/QuickActions.js +87 -0
  62. package/lib/commonjs/ui/components/QuickActions.js.map +1 -0
  63. package/lib/commonjs/ui/components/Section.js +36 -0
  64. package/lib/commonjs/ui/components/Section.js.map +1 -0
  65. package/lib/commonjs/ui/components/SectionTitle.js +35 -0
  66. package/lib/commonjs/ui/components/SectionTitle.js.map +1 -0
  67. package/lib/commonjs/ui/components/bottomSheet/index.js +37 -0
  68. package/lib/commonjs/ui/components/bottomSheet/index.js.map +1 -0
  69. package/lib/commonjs/ui/components/icon/OxyIcon.js +27 -0
  70. package/lib/commonjs/ui/components/icon/OxyIcon.js.map +1 -0
  71. package/lib/commonjs/ui/components/icon/index.js +14 -0
  72. package/lib/commonjs/ui/components/icon/index.js.map +1 -0
  73. package/lib/commonjs/ui/components/index.js +97 -0
  74. package/lib/commonjs/ui/components/index.js.map +1 -0
  75. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js +213 -0
  76. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js.map +1 -0
  77. package/lib/commonjs/ui/components/internal/TextField.js +576 -0
  78. package/lib/commonjs/ui/components/internal/TextField.js.map +1 -0
  79. package/lib/commonjs/ui/context/OxyContext.js +584 -0
  80. package/lib/commonjs/ui/context/OxyContext.js.map +1 -0
  81. package/lib/commonjs/ui/index.js +136 -0
  82. package/lib/commonjs/ui/index.js.map +1 -0
  83. package/lib/commonjs/ui/navigation/OxyRouter.js +269 -0
  84. package/lib/commonjs/ui/navigation/OxyRouter.js.map +1 -0
  85. package/lib/commonjs/ui/navigation/types.js +6 -0
  86. package/lib/commonjs/ui/navigation/types.js.map +1 -0
  87. package/lib/commonjs/ui/screens/AccountCenterScreen.js +313 -0
  88. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -0
  89. package/lib/commonjs/ui/screens/AccountManagementDemo.js +299 -0
  90. package/lib/commonjs/ui/screens/AccountManagementDemo.js.map +1 -0
  91. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +855 -0
  92. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -0
  93. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +843 -0
  94. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -0
  95. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +788 -0
  96. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -0
  97. package/lib/commonjs/ui/screens/AppInfoScreen.js +664 -0
  98. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -0
  99. package/lib/commonjs/ui/screens/BillingManagementScreen.js +636 -0
  100. package/lib/commonjs/ui/screens/BillingManagementScreen.js.map +1 -0
  101. package/lib/commonjs/ui/screens/FeedbackScreen.js +1169 -0
  102. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -0
  103. package/lib/commonjs/ui/screens/FileManagementScreen.js +2515 -0
  104. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -0
  105. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +1620 -0
  106. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -0
  107. package/lib/commonjs/ui/screens/ProfileScreen.js +450 -0
  108. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -0
  109. package/lib/commonjs/ui/screens/SessionManagementScreen.js +449 -0
  110. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -0
  111. package/lib/commonjs/ui/screens/SignInScreen.js +882 -0
  112. package/lib/commonjs/ui/screens/SignInScreen.js.map +1 -0
  113. package/lib/commonjs/ui/screens/SignUpScreen.js +1036 -0
  114. package/lib/commonjs/ui/screens/SignUpScreen.js.map +1 -0
  115. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +88 -0
  116. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +1 -0
  117. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +364 -0
  118. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -0
  119. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +227 -0
  120. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js.map +1 -0
  121. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +148 -0
  122. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -0
  123. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +127 -0
  124. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +1 -0
  125. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +105 -0
  126. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +1 -0
  127. package/lib/commonjs/ui/store/index.js +52 -0
  128. package/lib/commonjs/ui/store/index.js.map +1 -0
  129. package/lib/commonjs/ui/styles/FONTS.md +126 -0
  130. package/lib/commonjs/ui/styles/fonts.js +84 -0
  131. package/lib/commonjs/ui/styles/fonts.js.map +1 -0
  132. package/lib/commonjs/ui/styles/index.js +28 -0
  133. package/lib/commonjs/ui/styles/index.js.map +1 -0
  134. package/lib/commonjs/ui/styles/theme.js +121 -0
  135. package/lib/commonjs/ui/styles/theme.js.map +1 -0
  136. package/lib/commonjs/utils/deviceManager.js +173 -0
  137. package/lib/commonjs/utils/deviceManager.js.map +1 -0
  138. package/lib/commonjs/utils/index.js +13 -0
  139. package/lib/commonjs/utils/index.js.map +1 -0
  140. package/lib/commonjs/utils/polyfills.js +42 -0
  141. package/lib/commonjs/utils/polyfills.js.map +1 -0
  142. package/lib/module/assets/OxyLogo.svg +1 -0
  143. package/lib/module/assets/assets/OxyLogo.svg +1 -0
  144. package/lib/module/assets/assets/fonts/Phudu/Phudu-Black.ttf +0 -0
  145. package/lib/module/assets/assets/fonts/Phudu/Phudu-Bold.ttf +0 -0
  146. package/lib/module/assets/assets/fonts/Phudu/Phudu-ExtraBold.ttf +0 -0
  147. package/lib/module/assets/assets/fonts/Phudu/Phudu-Light.ttf +0 -0
  148. package/lib/module/assets/assets/fonts/Phudu/Phudu-Medium.ttf +0 -0
  149. package/lib/module/assets/assets/fonts/Phudu/Phudu-Regular.ttf +0 -0
  150. package/lib/module/assets/assets/fonts/Phudu/Phudu-SemiBold.ttf +0 -0
  151. package/lib/module/assets/assets/icons/OxyServices.tsx +67 -0
  152. package/lib/module/assets/assets/icons/logo_OxyServices.svg +1 -0
  153. package/lib/module/assets/assets/illustrations/HighFive.tsx +41 -0
  154. package/lib/module/assets/fonts/Phudu/Phudu-Black.ttf +0 -0
  155. package/lib/module/assets/fonts/Phudu/Phudu-Bold.ttf +0 -0
  156. package/lib/module/assets/fonts/Phudu/Phudu-ExtraBold.ttf +0 -0
  157. package/lib/module/assets/fonts/Phudu/Phudu-Light.ttf +0 -0
  158. package/lib/module/assets/fonts/Phudu/Phudu-Medium.ttf +0 -0
  159. package/lib/module/assets/fonts/Phudu/Phudu-Regular.ttf +0 -0
  160. package/lib/module/assets/fonts/Phudu/Phudu-SemiBold.ttf +0 -0
  161. package/lib/module/assets/icons/OxyServices.js +46 -0
  162. package/lib/module/assets/icons/OxyServices.js.map +1 -0
  163. package/lib/module/assets/icons/logo_OxyServices.svg +1 -0
  164. package/lib/module/assets/illustrations/HighFive.js +55 -0
  165. package/lib/module/assets/illustrations/HighFive.js.map +1 -0
  166. package/lib/module/constants/version.js +21 -0
  167. package/lib/module/constants/version.js.map +1 -0
  168. package/lib/module/core/index.js +1634 -0
  169. package/lib/module/core/index.js.map +1 -0
  170. package/lib/module/index.js +48 -0
  171. package/lib/module/index.js.map +1 -0
  172. package/lib/module/lib/sonner.js +16 -0
  173. package/lib/module/lib/sonner.js.map +1 -0
  174. package/lib/module/models/interfaces.js +2 -0
  175. package/lib/module/models/interfaces.js.map +1 -0
  176. package/lib/module/models/secureSession.js +2 -0
  177. package/lib/module/models/secureSession.js.map +1 -0
  178. package/lib/module/node/createAuth.js +90 -0
  179. package/lib/module/node/createAuth.js.map +1 -0
  180. package/lib/module/node/index.js +27 -0
  181. package/lib/module/node/index.js.map +1 -0
  182. package/lib/module/package.json +1 -0
  183. package/lib/module/ui/components/Avatar.js +93 -0
  184. package/lib/module/ui/components/Avatar.js.map +1 -0
  185. package/lib/module/ui/components/FollowButton.js +241 -0
  186. package/lib/module/ui/components/FollowButton.js.map +1 -0
  187. package/lib/module/ui/components/FontLoader.js +176 -0
  188. package/lib/module/ui/components/FontLoader.js.map +1 -0
  189. package/lib/module/ui/components/GroupedItem.js +104 -0
  190. package/lib/module/ui/components/GroupedItem.js.map +1 -0
  191. package/lib/module/ui/components/GroupedSection.js +28 -0
  192. package/lib/module/ui/components/GroupedSection.js.map +1 -0
  193. package/lib/module/ui/components/OxyLogo.js +49 -0
  194. package/lib/module/ui/components/OxyLogo.js.map +1 -0
  195. package/lib/module/ui/components/OxyProvider.js +516 -0
  196. package/lib/module/ui/components/OxyProvider.js.map +1 -0
  197. package/lib/module/ui/components/OxySignInButton.js +172 -0
  198. package/lib/module/ui/components/OxySignInButton.js.map +1 -0
  199. package/lib/module/ui/components/ProfileCard.js +119 -0
  200. package/lib/module/ui/components/ProfileCard.js.map +1 -0
  201. package/lib/module/ui/components/QuickActions.js +82 -0
  202. package/lib/module/ui/components/QuickActions.js.map +1 -0
  203. package/lib/module/ui/components/Section.js +31 -0
  204. package/lib/module/ui/components/Section.js.map +1 -0
  205. package/lib/module/ui/components/SectionTitle.js +30 -0
  206. package/lib/module/ui/components/SectionTitle.js.map +1 -0
  207. package/lib/module/ui/components/bottomSheet/index.js +5 -0
  208. package/lib/module/ui/components/bottomSheet/index.js.map +1 -0
  209. package/lib/module/ui/components/icon/OxyIcon.js +22 -0
  210. package/lib/module/ui/components/icon/OxyIcon.js.map +1 -0
  211. package/lib/module/ui/components/icon/index.js +4 -0
  212. package/lib/module/ui/components/icon/index.js.map +1 -0
  213. package/lib/module/ui/components/index.js +18 -0
  214. package/lib/module/ui/components/index.js.map +1 -0
  215. package/lib/module/ui/components/internal/GroupedPillButtons.js +208 -0
  216. package/lib/module/ui/components/internal/GroupedPillButtons.js.map +1 -0
  217. package/lib/module/ui/components/internal/TextField.js +571 -0
  218. package/lib/module/ui/components/internal/TextField.js.map +1 -0
  219. package/lib/module/ui/context/OxyContext.js +579 -0
  220. package/lib/module/ui/context/OxyContext.js.map +1 -0
  221. package/lib/module/ui/index.js +26 -0
  222. package/lib/module/ui/index.js.map +1 -0
  223. package/lib/module/ui/navigation/OxyRouter.js +262 -0
  224. package/lib/module/ui/navigation/OxyRouter.js.map +1 -0
  225. package/lib/module/ui/navigation/types.js +4 -0
  226. package/lib/module/ui/navigation/types.js.map +1 -0
  227. package/lib/module/ui/screens/AccountCenterScreen.js +308 -0
  228. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -0
  229. package/lib/module/ui/screens/AccountManagementDemo.js +296 -0
  230. package/lib/module/ui/screens/AccountManagementDemo.js.map +1 -0
  231. package/lib/module/ui/screens/AccountOverviewScreen.js +849 -0
  232. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -0
  233. package/lib/module/ui/screens/AccountSettingsScreen.js +837 -0
  234. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -0
  235. package/lib/module/ui/screens/AccountSwitcherScreen.js +782 -0
  236. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -0
  237. package/lib/module/ui/screens/AppInfoScreen.js +658 -0
  238. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -0
  239. package/lib/module/ui/screens/BillingManagementScreen.js +631 -0
  240. package/lib/module/ui/screens/BillingManagementScreen.js.map +1 -0
  241. package/lib/module/ui/screens/FeedbackScreen.js +1164 -0
  242. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -0
  243. package/lib/module/ui/screens/FileManagementScreen.js +2510 -0
  244. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -0
  245. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +1615 -0
  246. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -0
  247. package/lib/module/ui/screens/ProfileScreen.js +444 -0
  248. package/lib/module/ui/screens/ProfileScreen.js.map +1 -0
  249. package/lib/module/ui/screens/SessionManagementScreen.js +444 -0
  250. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -0
  251. package/lib/module/ui/screens/SignInScreen.js +876 -0
  252. package/lib/module/ui/screens/SignInScreen.js.map +1 -0
  253. package/lib/module/ui/screens/SignUpScreen.js +1030 -0
  254. package/lib/module/ui/screens/SignUpScreen.js.map +1 -0
  255. package/lib/module/ui/screens/karma/KarmaAboutScreen.js +83 -0
  256. package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -0
  257. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +358 -0
  258. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -0
  259. package/lib/module/ui/screens/karma/KarmaFAQScreen.js +222 -0
  260. package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -0
  261. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +142 -0
  262. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -0
  263. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +122 -0
  264. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -0
  265. package/lib/module/ui/screens/karma/KarmaRulesScreen.js +100 -0
  266. package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -0
  267. package/lib/module/ui/store/index.js +44 -0
  268. package/lib/module/ui/store/index.js.map +1 -0
  269. package/lib/module/ui/styles/FONTS.md +126 -0
  270. package/lib/module/ui/styles/fonts.js +81 -0
  271. package/lib/module/ui/styles/fonts.js.map +1 -0
  272. package/lib/module/ui/styles/index.js +5 -0
  273. package/lib/module/ui/styles/index.js.map +1 -0
  274. package/lib/module/ui/styles/theme.js +114 -0
  275. package/lib/module/ui/styles/theme.js.map +1 -0
  276. package/lib/module/utils/deviceManager.js +167 -0
  277. package/lib/module/utils/deviceManager.js.map +1 -0
  278. package/lib/module/utils/index.js +4 -0
  279. package/lib/module/utils/index.js.map +1 -0
  280. package/lib/module/utils/polyfills.js +36 -0
  281. package/lib/module/utils/polyfills.js.map +1 -0
  282. package/lib/typescript/assets/icons/OxyServices.d.ts +29 -0
  283. package/lib/typescript/assets/icons/OxyServices.d.ts.map +1 -0
  284. package/lib/typescript/assets/illustrations/HighFive.d.ts +9 -0
  285. package/lib/typescript/assets/illustrations/HighFive.d.ts.map +1 -0
  286. package/lib/typescript/constants/version.d.ts +14 -0
  287. package/lib/typescript/constants/version.d.ts.map +1 -0
  288. package/lib/typescript/core/index.d.ts +603 -0
  289. package/lib/typescript/core/index.d.ts.map +1 -0
  290. package/lib/typescript/index.d.ts +20 -0
  291. package/lib/typescript/index.d.ts.map +1 -0
  292. package/lib/typescript/lib/sonner.d.ts +6 -0
  293. package/lib/typescript/lib/sonner.d.ts.map +1 -0
  294. package/lib/typescript/models/interfaces.d.ts +179 -0
  295. package/lib/typescript/models/interfaces.d.ts.map +1 -0
  296. package/lib/typescript/models/secureSession.d.ts +27 -0
  297. package/lib/typescript/models/secureSession.d.ts.map +1 -0
  298. package/lib/typescript/node/createAuth.d.ts +7 -0
  299. package/lib/typescript/node/createAuth.d.ts.map +1 -0
  300. package/lib/typescript/node/index.d.ts +13 -0
  301. package/lib/typescript/node/index.d.ts.map +1 -0
  302. package/lib/typescript/types/expo-vector-icons.d.ts +3 -0
  303. package/lib/typescript/types/express.d.ts +5 -0
  304. package/lib/typescript/types/react-redux.d.ts +5 -0
  305. package/lib/typescript/ui/components/Avatar.d.ts +62 -0
  306. package/lib/typescript/ui/components/Avatar.d.ts.map +1 -0
  307. package/lib/typescript/ui/components/FollowButton.d.ts +92 -0
  308. package/lib/typescript/ui/components/FollowButton.d.ts.map +1 -0
  309. package/lib/typescript/ui/components/FontLoader.d.ts +15 -0
  310. package/lib/typescript/ui/components/FontLoader.d.ts.map +1 -0
  311. package/lib/typescript/ui/components/GroupedItem.d.ts +17 -0
  312. package/lib/typescript/ui/components/GroupedItem.d.ts.map +1 -0
  313. package/lib/typescript/ui/components/GroupedSection.d.ts +19 -0
  314. package/lib/typescript/ui/components/GroupedSection.d.ts.map +1 -0
  315. package/lib/typescript/ui/components/OxyLogo.d.ts +29 -0
  316. package/lib/typescript/ui/components/OxyLogo.d.ts.map +1 -0
  317. package/lib/typescript/ui/components/OxyProvider.d.ts +12 -0
  318. package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -0
  319. package/lib/typescript/ui/components/OxySignInButton.d.ts +70 -0
  320. package/lib/typescript/ui/components/OxySignInButton.d.ts.map +1 -0
  321. package/lib/typescript/ui/components/ProfileCard.d.ts +20 -0
  322. package/lib/typescript/ui/components/ProfileCard.d.ts.map +1 -0
  323. package/lib/typescript/ui/components/QuickActions.d.ts +15 -0
  324. package/lib/typescript/ui/components/QuickActions.d.ts.map +1 -0
  325. package/lib/typescript/ui/components/Section.d.ts +11 -0
  326. package/lib/typescript/ui/components/Section.d.ts.map +1 -0
  327. package/lib/typescript/ui/components/SectionTitle.d.ts +9 -0
  328. package/lib/typescript/ui/components/SectionTitle.d.ts.map +1 -0
  329. package/lib/typescript/ui/components/bottomSheet/index.d.ts +4 -0
  330. package/lib/typescript/ui/components/bottomSheet/index.d.ts.map +1 -0
  331. package/lib/typescript/ui/components/icon/OxyIcon.d.ts +10 -0
  332. package/lib/typescript/ui/components/icon/OxyIcon.d.ts.map +1 -0
  333. package/lib/typescript/ui/components/icon/index.d.ts +3 -0
  334. package/lib/typescript/ui/components/icon/index.d.ts.map +1 -0
  335. package/lib/typescript/ui/components/index.d.ts +13 -0
  336. package/lib/typescript/ui/components/index.d.ts.map +1 -0
  337. package/lib/typescript/ui/components/internal/GroupedPillButtons.d.ts +18 -0
  338. package/lib/typescript/ui/components/internal/GroupedPillButtons.d.ts.map +1 -0
  339. package/lib/typescript/ui/components/internal/TextField.d.ts +25 -0
  340. package/lib/typescript/ui/components/internal/TextField.d.ts.map +1 -0
  341. package/lib/typescript/ui/context/OxyContext.d.ts +42 -0
  342. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -0
  343. package/lib/typescript/ui/index.d.ts +17 -0
  344. package/lib/typescript/ui/index.d.ts.map +1 -0
  345. package/lib/typescript/ui/navigation/OxyRouter.d.ts +5 -0
  346. package/lib/typescript/ui/navigation/OxyRouter.d.ts.map +1 -0
  347. package/lib/typescript/ui/navigation/types.d.ts +116 -0
  348. package/lib/typescript/ui/navigation/types.d.ts.map +1 -0
  349. package/lib/typescript/ui/screens/AccountCenterScreen.d.ts +5 -0
  350. package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -0
  351. package/lib/typescript/ui/screens/AccountManagementDemo.d.ts +8 -0
  352. package/lib/typescript/ui/screens/AccountManagementDemo.d.ts.map +1 -0
  353. package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts +5 -0
  354. package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -0
  355. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts +5 -0
  356. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -0
  357. package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts +5 -0
  358. package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts.map +1 -0
  359. package/lib/typescript/ui/screens/AppInfoScreen.d.ts +5 -0
  360. package/lib/typescript/ui/screens/AppInfoScreen.d.ts.map +1 -0
  361. package/lib/typescript/ui/screens/BillingManagementScreen.d.ts +5 -0
  362. package/lib/typescript/ui/screens/BillingManagementScreen.d.ts.map +1 -0
  363. package/lib/typescript/ui/screens/FeedbackScreen.d.ts +5 -0
  364. package/lib/typescript/ui/screens/FeedbackScreen.d.ts.map +1 -0
  365. package/lib/typescript/ui/screens/FileManagementScreen.d.ts +8 -0
  366. package/lib/typescript/ui/screens/FileManagementScreen.d.ts.map +1 -0
  367. package/lib/typescript/ui/screens/PremiumSubscriptionScreen.d.ts +5 -0
  368. package/lib/typescript/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -0
  369. package/lib/typescript/ui/screens/ProfileScreen.d.ts +9 -0
  370. package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -0
  371. package/lib/typescript/ui/screens/SessionManagementScreen.d.ts +5 -0
  372. package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -0
  373. package/lib/typescript/ui/screens/SignInScreen.d.ts +5 -0
  374. package/lib/typescript/ui/screens/SignInScreen.d.ts.map +1 -0
  375. package/lib/typescript/ui/screens/SignUpScreen.d.ts +5 -0
  376. package/lib/typescript/ui/screens/SignUpScreen.d.ts.map +1 -0
  377. package/lib/typescript/ui/screens/karma/KarmaAboutScreen.d.ts +5 -0
  378. package/lib/typescript/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -0
  379. package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts +5 -0
  380. package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -0
  381. package/lib/typescript/ui/screens/karma/KarmaFAQScreen.d.ts +5 -0
  382. package/lib/typescript/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -0
  383. package/lib/typescript/ui/screens/karma/KarmaLeaderboardScreen.d.ts +5 -0
  384. package/lib/typescript/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -0
  385. package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts +5 -0
  386. package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -0
  387. package/lib/typescript/ui/screens/karma/KarmaRulesScreen.d.ts +5 -0
  388. package/lib/typescript/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -0
  389. package/lib/typescript/ui/store/index.d.ts +19 -0
  390. package/lib/typescript/ui/store/index.d.ts.map +1 -0
  391. package/lib/typescript/ui/styles/fonts.d.ts +21 -0
  392. package/lib/typescript/ui/styles/fonts.d.ts.map +1 -0
  393. package/lib/typescript/ui/styles/index.d.ts +3 -0
  394. package/lib/typescript/ui/styles/index.d.ts.map +1 -0
  395. package/lib/typescript/ui/styles/theme.d.ts +68 -0
  396. package/lib/typescript/ui/styles/theme.d.ts.map +1 -0
  397. package/lib/typescript/utils/deviceManager.d.ts +66 -0
  398. package/lib/typescript/utils/deviceManager.d.ts.map +1 -0
  399. package/lib/typescript/utils/index.d.ts +3 -0
  400. package/lib/typescript/utils/index.d.ts.map +1 -0
  401. package/lib/typescript/utils/polyfills.d.ts +6 -0
  402. package/lib/typescript/utils/polyfills.d.ts.map +1 -0
  403. package/package.json +7 -6
  404. package/src/assets/illustrations/HighFive.tsx +41 -0
  405. package/src/node/createAuth.ts +116 -0
  406. package/src/node/index.ts +4 -0
  407. package/src/types/expo-vector-icons.d.ts +3 -0
  408. package/src/types/express.d.ts +5 -0
  409. package/src/types/react-redux.d.ts +5 -0
  410. package/src/ui/components/OxyProvider.tsx +136 -135
  411. package/src/ui/components/internal/GroupedPillButtons.tsx +253 -0
  412. package/src/ui/components/internal/TextField.tsx +694 -0
  413. package/src/ui/index.ts +6 -2
  414. package/src/ui/navigation/OxyRouter.tsx +8 -3
  415. package/src/ui/screens/FeedbackScreen.tsx +1042 -0
  416. package/src/ui/screens/SignInScreen.tsx +179 -222
  417. package/src/ui/screens/SignUpScreen.tsx +772 -608
  418. package/src/ui/store/index.ts +51 -0
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+
3
+ import React, { useState, useMemo, useCallback } from 'react';
4
+ import { View, Text, StyleSheet, ScrollView, Platform, TouchableOpacity, TextInput, LayoutAnimation, UIManager } from 'react-native';
5
+ import { Ionicons } from '@expo/vector-icons';
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ if (Platform.OS === 'android' && UIManager.setLayoutAnimationEnabledExperimental) {
8
+ UIManager.setLayoutAnimationEnabledExperimental(true);
9
+ }
10
+ const FAQS = [{
11
+ q: 'What is karma?',
12
+ a: 'Karma is a recognition of your positive actions in the Oxy Ecosystem. It cannot be sent or received directly.'
13
+ }, {
14
+ q: 'How do I earn karma?',
15
+ a: 'By helping others, reporting bugs, contributing content, and participating in community events.'
16
+ }, {
17
+ q: 'Can I lose karma?',
18
+ a: 'Karma may be reduced for negative actions or breaking community rules.'
19
+ }, {
20
+ q: 'What can I do with karma?',
21
+ a: 'Unlock rewards, badges, and special features as you earn more karma.'
22
+ }, {
23
+ q: 'Can I transfer karma to others?',
24
+ a: 'No, karma cannot be sent or received. It is only earned by your actions.'
25
+ }, {
26
+ q: 'How do I get support?',
27
+ a: 'Contact Oxy support via the app or website for any karma-related questions.'
28
+ }];
29
+
30
+ /**
31
+ * KarmaFAQScreen - Optimized for performance
32
+ *
33
+ * Performance optimizations implemented:
34
+ * - useMemo for theme calculations (only recalculates when theme changes)
35
+ * - useMemo for filtered FAQs (only recalculates when search changes)
36
+ * - useCallback for event handlers to prevent unnecessary re-renders
37
+ * - React.memo wrapper to prevent re-renders when props haven't changed
38
+ */
39
+ const KarmaFAQScreen = ({
40
+ goBack,
41
+ theme
42
+ }) => {
43
+ const [expanded, setExpanded] = useState(0);
44
+ const [search, setSearch] = useState('');
45
+
46
+ // Memoize theme-related calculations to prevent unnecessary recalculations
47
+ const themeStyles = useMemo(() => {
48
+ const isDarkTheme = theme === 'dark';
49
+ return {
50
+ isDarkTheme,
51
+ backgroundColor: isDarkTheme ? '#121212' : '#FFFFFF',
52
+ textColor: isDarkTheme ? '#FFFFFF' : '#000000',
53
+ cardColor: isDarkTheme ? '#23232b' : '#f7f7fa',
54
+ primaryColor: '#d169e5',
55
+ inputBg: isDarkTheme ? '#23232b' : '#f2f2f7',
56
+ inputBorder: isDarkTheme ? '#444' : '#e0e0e0'
57
+ };
58
+ }, [theme]);
59
+
60
+ // Memoize filtered FAQs to prevent filtering on every render
61
+ const filteredFaqs = useMemo(() => {
62
+ if (!search.trim()) return FAQS;
63
+ const searchLower = search.toLowerCase();
64
+ return FAQS.filter(faq => faq.q.toLowerCase().includes(searchLower) || faq.a.toLowerCase().includes(searchLower));
65
+ }, [search]);
66
+
67
+ // Memoize toggle handler to prevent recreation on every render
68
+ const handleToggle = useCallback(idx => {
69
+ LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut);
70
+ setExpanded(prev => prev === idx ? null : idx);
71
+ }, []);
72
+ return /*#__PURE__*/_jsxs(View, {
73
+ style: [styles.container, {
74
+ backgroundColor: themeStyles.backgroundColor
75
+ }],
76
+ children: [/*#__PURE__*/_jsx(Text, {
77
+ style: [styles.title, {
78
+ color: themeStyles.textColor
79
+ }],
80
+ children: "Karma FAQ"
81
+ }), /*#__PURE__*/_jsxs(View, {
82
+ style: [styles.searchBar, {
83
+ backgroundColor: themeStyles.inputBg,
84
+ borderColor: themeStyles.inputBorder
85
+ }],
86
+ children: [/*#__PURE__*/_jsx(Ionicons, {
87
+ name: "search-outline",
88
+ size: 20,
89
+ color: themeStyles.primaryColor,
90
+ style: {
91
+ marginRight: 8
92
+ }
93
+ }), /*#__PURE__*/_jsx(TextInput, {
94
+ style: [styles.searchInput, {
95
+ color: themeStyles.textColor
96
+ }],
97
+ placeholder: "Search FAQ...",
98
+ placeholderTextColor: themeStyles.isDarkTheme ? '#aaa' : '#888',
99
+ value: search,
100
+ onChangeText: setSearch,
101
+ returnKeyType: "search"
102
+ })]
103
+ }), /*#__PURE__*/_jsxs(ScrollView, {
104
+ contentContainerStyle: styles.contentContainer,
105
+ keyboardShouldPersistTaps: "handled",
106
+ children: [filteredFaqs.length === 0 ? /*#__PURE__*/_jsx(Text, {
107
+ style: [styles.noResults, {
108
+ color: themeStyles.textColor
109
+ }],
110
+ children: "No results found."
111
+ }) : filteredFaqs.map((item, idx) => {
112
+ const isOpen = expanded === idx;
113
+ return /*#__PURE__*/_jsxs(TouchableOpacity, {
114
+ style: [styles.card, {
115
+ backgroundColor: themeStyles.cardColor,
116
+ shadowColor: themeStyles.isDarkTheme ? '#000' : '#d169e5'
117
+ }],
118
+ activeOpacity: 0.95,
119
+ onPress: () => handleToggle(idx),
120
+ children: [/*#__PURE__*/_jsxs(View, {
121
+ style: styles.questionRow,
122
+ children: [/*#__PURE__*/_jsx(Ionicons, {
123
+ name: isOpen ? 'chevron-down' : 'chevron-forward',
124
+ size: 22,
125
+ color: themeStyles.primaryColor,
126
+ style: {
127
+ marginRight: 8
128
+ }
129
+ }), /*#__PURE__*/_jsx(Text, {
130
+ style: [styles.question, {
131
+ color: themeStyles.primaryColor
132
+ }],
133
+ children: item.q
134
+ })]
135
+ }), isOpen && /*#__PURE__*/_jsx(Text, {
136
+ style: [styles.answer, {
137
+ color: themeStyles.textColor
138
+ }],
139
+ children: item.a
140
+ })]
141
+ }, idx);
142
+ }), /*#__PURE__*/_jsx(Text, {
143
+ style: [styles.paragraph, {
144
+ color: themeStyles.textColor,
145
+ marginTop: 32,
146
+ textAlign: 'center'
147
+ }],
148
+ children: "Still have questions? Contact support!"
149
+ })]
150
+ })]
151
+ });
152
+ };
153
+ const styles = StyleSheet.create({
154
+ container: {
155
+ flex: 1
156
+ },
157
+ title: {
158
+ fontFamily: Platform.OS === 'web' ? 'Phudu' : 'Phudu-Bold',
159
+ fontWeight: Platform.OS === 'web' ? 'bold' : undefined,
160
+ fontSize: 38,
161
+ margin: 24,
162
+ marginBottom: 12,
163
+ textAlign: 'center'
164
+ },
165
+ searchBar: {
166
+ flexDirection: 'row',
167
+ alignItems: 'center',
168
+ borderRadius: 16,
169
+ borderWidth: 1,
170
+ marginHorizontal: 24,
171
+ marginBottom: 12,
172
+ paddingHorizontal: 12,
173
+ height: 44
174
+ },
175
+ searchInput: {
176
+ flex: 1,
177
+ fontSize: 16,
178
+ height: 44
179
+ },
180
+ contentContainer: {
181
+ padding: 24,
182
+ paddingBottom: 40
183
+ },
184
+ card: {
185
+ borderRadius: 18,
186
+ padding: 20,
187
+ marginBottom: 18,
188
+ shadowOpacity: 0.08,
189
+ shadowOffset: {
190
+ width: 0,
191
+ height: 2
192
+ },
193
+ shadowRadius: 8,
194
+ elevation: 2
195
+ },
196
+ questionRow: {
197
+ flexDirection: 'row',
198
+ alignItems: 'center',
199
+ marginBottom: 8
200
+ },
201
+ question: {
202
+ fontSize: 17,
203
+ fontWeight: 'bold'
204
+ },
205
+ answer: {
206
+ fontSize: 16,
207
+ lineHeight: 22,
208
+ marginTop: 8
209
+ },
210
+ paragraph: {
211
+ fontSize: 16,
212
+ marginBottom: 12
213
+ },
214
+ noResults: {
215
+ fontSize: 16,
216
+ marginTop: 32,
217
+ textAlign: 'center',
218
+ opacity: 0.7
219
+ }
220
+ });
221
+ export default /*#__PURE__*/React.memo(KarmaFAQScreen);
222
+ //# sourceMappingURL=KarmaFAQScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","useMemo","useCallback","View","Text","StyleSheet","ScrollView","Platform","TouchableOpacity","TextInput","LayoutAnimation","UIManager","Ionicons","jsx","_jsx","jsxs","_jsxs","OS","setLayoutAnimationEnabledExperimental","FAQS","q","a","KarmaFAQScreen","goBack","theme","expanded","setExpanded","search","setSearch","themeStyles","isDarkTheme","backgroundColor","textColor","cardColor","primaryColor","inputBg","inputBorder","filteredFaqs","trim","searchLower","toLowerCase","filter","faq","includes","handleToggle","idx","configureNext","Presets","easeInEaseOut","prev","style","styles","container","children","title","color","searchBar","borderColor","name","size","marginRight","searchInput","placeholder","placeholderTextColor","value","onChangeText","returnKeyType","contentContainerStyle","contentContainer","keyboardShouldPersistTaps","length","noResults","map","item","isOpen","card","shadowColor","activeOpacity","onPress","questionRow","question","answer","paragraph","marginTop","textAlign","create","flex","fontFamily","fontWeight","undefined","fontSize","margin","marginBottom","flexDirection","alignItems","borderRadius","borderWidth","marginHorizontal","paddingHorizontal","height","padding","paddingBottom","shadowOpacity","shadowOffset","width","shadowRadius","elevation","lineHeight","opacity","memo"],"sourceRoot":"../../../../../src","sources":["ui/screens/karma/KarmaFAQScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect, useState } from 'react';
4
+ import { View, Text, StyleSheet, ScrollView, ActivityIndicator, TouchableOpacity } from 'react-native';
5
+ import { useOxy } from '../../context/OxyContext';
6
+ import Avatar from '../../components/Avatar';
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ const KarmaLeaderboardScreen = ({
9
+ goBack,
10
+ theme,
11
+ navigate
12
+ }) => {
13
+ const {
14
+ oxyServices
15
+ } = useOxy();
16
+ const [leaderboard, setLeaderboard] = useState([]);
17
+ const [isLoading, setIsLoading] = useState(true);
18
+ const [error, setError] = useState(null);
19
+ const isDarkTheme = theme === 'dark';
20
+ const backgroundColor = isDarkTheme ? '#121212' : '#FFFFFF';
21
+ const textColor = isDarkTheme ? '#FFFFFF' : '#000000';
22
+ const primaryColor = '#d169e5';
23
+ useEffect(() => {
24
+ setIsLoading(true);
25
+ setError(null);
26
+ oxyServices.getKarmaLeaderboard().then(data => setLeaderboard(Array.isArray(data) ? data : [])).catch(err => setError(err.message || 'Failed to load leaderboard')).finally(() => setIsLoading(false));
27
+ }, [oxyServices]);
28
+ return /*#__PURE__*/_jsxs(View, {
29
+ style: [styles.container, {
30
+ backgroundColor
31
+ }],
32
+ children: [/*#__PURE__*/_jsx(Text, {
33
+ style: [styles.title, {
34
+ color: textColor
35
+ }],
36
+ children: "Karma Leaderboard"
37
+ }), isLoading ? /*#__PURE__*/_jsx(ActivityIndicator, {
38
+ size: "large",
39
+ color: primaryColor,
40
+ style: {
41
+ marginTop: 40
42
+ }
43
+ }) : error ? /*#__PURE__*/_jsx(Text, {
44
+ style: [styles.error, {
45
+ color: '#D32F2F'
46
+ }],
47
+ children: error
48
+ }) : /*#__PURE__*/_jsx(ScrollView, {
49
+ contentContainerStyle: styles.listContainer,
50
+ children: leaderboard.length === 0 ? /*#__PURE__*/_jsx(Text, {
51
+ style: [styles.placeholder, {
52
+ color: textColor
53
+ }],
54
+ children: "No leaderboard data."
55
+ }) : leaderboard.map((entry, idx) => /*#__PURE__*/_jsxs(TouchableOpacity, {
56
+ style: [styles.row, idx < 3 && {
57
+ backgroundColor: '#f7eaff'
58
+ }],
59
+ onPress: () => navigate && navigate('KarmaProfile', {
60
+ userId: entry.userId,
61
+ username: entry.username
62
+ }),
63
+ activeOpacity: 0.7,
64
+ children: [/*#__PURE__*/_jsx(Text, {
65
+ style: [styles.rank, {
66
+ color: primaryColor
67
+ }],
68
+ children: idx + 1
69
+ }), /*#__PURE__*/_jsx(Avatar, {
70
+ name: entry.username || 'User',
71
+ size: 40,
72
+ theme: theme,
73
+ style: styles.avatar
74
+ }), /*#__PURE__*/_jsx(Text, {
75
+ style: [styles.username, {
76
+ color: textColor
77
+ }],
78
+ children: entry.username || entry.userId
79
+ }), /*#__PURE__*/_jsx(Text, {
80
+ style: [styles.karma, {
81
+ color: primaryColor
82
+ }],
83
+ children: entry.total
84
+ })]
85
+ }, entry.userId))
86
+ })]
87
+ });
88
+ };
89
+ const styles = StyleSheet.create({
90
+ container: {
91
+ flex: 1
92
+ },
93
+ title: {
94
+ fontSize: 24,
95
+ fontWeight: 'bold',
96
+ margin: 24,
97
+ textAlign: 'center'
98
+ },
99
+ listContainer: {
100
+ paddingBottom: 40
101
+ },
102
+ row: {
103
+ flexDirection: 'row',
104
+ alignItems: 'center',
105
+ paddingVertical: 12,
106
+ paddingHorizontal: 20,
107
+ borderBottomWidth: 1,
108
+ borderColor: '#eee'
109
+ },
110
+ rank: {
111
+ fontSize: 20,
112
+ width: 32,
113
+ textAlign: 'center',
114
+ fontWeight: 'bold'
115
+ },
116
+ avatar: {
117
+ marginHorizontal: 8
118
+ },
119
+ username: {
120
+ flex: 1,
121
+ fontSize: 16,
122
+ marginLeft: 8
123
+ },
124
+ karma: {
125
+ fontSize: 18,
126
+ fontWeight: 'bold',
127
+ marginLeft: 12
128
+ },
129
+ placeholder: {
130
+ fontSize: 16,
131
+ color: '#888',
132
+ textAlign: 'center',
133
+ marginTop: 40
134
+ },
135
+ error: {
136
+ fontSize: 16,
137
+ textAlign: 'center',
138
+ marginTop: 40
139
+ }
140
+ });
141
+ export default KarmaLeaderboardScreen;
142
+ //# sourceMappingURL=KarmaLeaderboardScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useState","View","Text","StyleSheet","ScrollView","ActivityIndicator","TouchableOpacity","useOxy","Avatar","jsx","_jsx","jsxs","_jsxs","KarmaLeaderboardScreen","goBack","theme","navigate","oxyServices","leaderboard","setLeaderboard","isLoading","setIsLoading","error","setError","isDarkTheme","backgroundColor","textColor","primaryColor","getKarmaLeaderboard","then","data","Array","isArray","catch","err","message","finally","style","styles","container","children","title","color","size","marginTop","contentContainerStyle","listContainer","length","placeholder","map","entry","idx","row","onPress","userId","username","activeOpacity","rank","name","avatar","karma","total","create","flex","fontSize","fontWeight","margin","textAlign","paddingBottom","flexDirection","alignItems","paddingVertical","paddingHorizontal","borderBottomWidth","borderColor","width","marginHorizontal","marginLeft"],"sourceRoot":"../../../../../src","sources":["ui/screens/karma/KarmaLeaderboardScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, Text, StyleSheet, ScrollView } from 'react-native';
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ const KarmaRewardsScreen = ({
7
+ goBack,
8
+ theme
9
+ }) => {
10
+ const isDarkTheme = theme === 'dark';
11
+ const backgroundColor = isDarkTheme ? '#121212' : '#FFFFFF';
12
+ const textColor = isDarkTheme ? '#FFFFFF' : '#000000';
13
+ const primaryColor = '#d169e5';
14
+
15
+ // Placeholder: In a real app, fetch rewards from API
16
+ return /*#__PURE__*/_jsxs(View, {
17
+ style: [styles.container, {
18
+ backgroundColor
19
+ }],
20
+ children: [/*#__PURE__*/_jsx(Text, {
21
+ style: [styles.title, {
22
+ color: textColor
23
+ }],
24
+ children: "Karma Rewards"
25
+ }), /*#__PURE__*/_jsxs(ScrollView, {
26
+ contentContainerStyle: styles.contentContainer,
27
+ children: [/*#__PURE__*/_jsx(Text, {
28
+ style: [styles.paragraph, {
29
+ color: textColor
30
+ }],
31
+ children: "Unlock special features and recognition by earning karma!"
32
+ }), /*#__PURE__*/_jsxs(View, {
33
+ style: styles.rewardBox,
34
+ children: [/*#__PURE__*/_jsx(Text, {
35
+ style: [styles.rewardTitle, {
36
+ color: primaryColor
37
+ }],
38
+ children: "\uD83C\uDF89 Early Access"
39
+ }), /*#__PURE__*/_jsx(Text, {
40
+ style: [styles.rewardDesc, {
41
+ color: textColor
42
+ }],
43
+ children: "Get early access to new features with 100+ karma."
44
+ })]
45
+ }), /*#__PURE__*/_jsxs(View, {
46
+ style: styles.rewardBox,
47
+ children: [/*#__PURE__*/_jsx(Text, {
48
+ style: [styles.rewardTitle, {
49
+ color: primaryColor
50
+ }],
51
+ children: "\uD83C\uDFC5 Community Badge"
52
+ }), /*#__PURE__*/_jsx(Text, {
53
+ style: [styles.rewardDesc, {
54
+ color: textColor
55
+ }],
56
+ children: "Earn a special badge for 500+ karma."
57
+ })]
58
+ }), /*#__PURE__*/_jsxs(View, {
59
+ style: styles.rewardBox,
60
+ children: [/*#__PURE__*/_jsx(Text, {
61
+ style: [styles.rewardTitle, {
62
+ color: primaryColor
63
+ }],
64
+ children: "\uD83C\uDF1F Featured Member"
65
+ }), /*#__PURE__*/_jsx(Text, {
66
+ style: [styles.rewardDesc, {
67
+ color: textColor
68
+ }],
69
+ children: "Be featured in the community for 1000+ karma."
70
+ })]
71
+ }), /*#__PURE__*/_jsx(Text, {
72
+ style: [styles.paragraph, {
73
+ color: textColor,
74
+ marginTop: 24
75
+ }],
76
+ children: "More rewards coming soon!"
77
+ })]
78
+ })]
79
+ });
80
+ };
81
+ const styles = StyleSheet.create({
82
+ container: {
83
+ flex: 1
84
+ },
85
+ title: {
86
+ fontSize: 24,
87
+ fontWeight: 'bold',
88
+ margin: 24,
89
+ textAlign: 'center'
90
+ },
91
+ contentContainer: {
92
+ padding: 24
93
+ },
94
+ rewardBox: {
95
+ backgroundColor: '#f7eaff',
96
+ borderRadius: 16,
97
+ padding: 18,
98
+ marginBottom: 18,
99
+ shadowColor: '#000',
100
+ shadowOpacity: 0.04,
101
+ shadowOffset: {
102
+ width: 0,
103
+ height: 1
104
+ },
105
+ shadowRadius: 4,
106
+ elevation: 1
107
+ },
108
+ rewardTitle: {
109
+ fontSize: 18,
110
+ fontWeight: 'bold',
111
+ marginBottom: 6
112
+ },
113
+ rewardDesc: {
114
+ fontSize: 15
115
+ },
116
+ paragraph: {
117
+ fontSize: 16,
118
+ marginBottom: 12
119
+ }
120
+ });
121
+ export default KarmaRewardsScreen;
122
+ //# sourceMappingURL=KarmaRewardsScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","StyleSheet","ScrollView","jsx","_jsx","jsxs","_jsxs","KarmaRewardsScreen","goBack","theme","isDarkTheme","backgroundColor","textColor","primaryColor","style","styles","container","children","title","color","contentContainerStyle","contentContainer","paragraph","rewardBox","rewardTitle","rewardDesc","marginTop","create","flex","fontSize","fontWeight","margin","textAlign","padding","borderRadius","marginBottom","shadowColor","shadowOpacity","shadowOffset","width","height","shadowRadius","elevation"],"sourceRoot":"../../../../../src","sources":["ui/screens/karma/KarmaRewardsScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect, useState } from 'react';
4
+ import { View, Text, StyleSheet, ScrollView, ActivityIndicator } from 'react-native';
5
+ import { useOxy } from '../../context/OxyContext';
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ const KarmaRulesScreen = ({
8
+ goBack,
9
+ theme
10
+ }) => {
11
+ const {
12
+ oxyServices
13
+ } = useOxy();
14
+ const [rules, setRules] = useState([]);
15
+ const [isLoading, setIsLoading] = useState(true);
16
+ const [error, setError] = useState(null);
17
+ const isDarkTheme = theme === 'dark';
18
+ const backgroundColor = isDarkTheme ? '#121212' : '#FFFFFF';
19
+ const textColor = isDarkTheme ? '#FFFFFF' : '#000000';
20
+ const primaryColor = '#d169e5';
21
+ useEffect(() => {
22
+ setIsLoading(true);
23
+ setError(null);
24
+ oxyServices.getKarmaRules().then(data => setRules(Array.isArray(data) ? data : [])).catch(err => setError(err.message || 'Failed to load rules')).finally(() => setIsLoading(false));
25
+ }, [oxyServices]);
26
+ return /*#__PURE__*/_jsxs(View, {
27
+ style: [styles.container, {
28
+ backgroundColor
29
+ }],
30
+ children: [/*#__PURE__*/_jsx(Text, {
31
+ style: [styles.title, {
32
+ color: textColor
33
+ }],
34
+ children: "Karma Rules"
35
+ }), isLoading ? /*#__PURE__*/_jsx(ActivityIndicator, {
36
+ size: "large",
37
+ color: primaryColor,
38
+ style: {
39
+ marginTop: 40
40
+ }
41
+ }) : error ? /*#__PURE__*/_jsx(Text, {
42
+ style: [styles.error, {
43
+ color: '#D32F2F'
44
+ }],
45
+ children: error
46
+ }) : /*#__PURE__*/_jsx(ScrollView, {
47
+ contentContainerStyle: styles.listContainer,
48
+ children: rules.length === 0 ? /*#__PURE__*/_jsx(Text, {
49
+ style: [styles.placeholder, {
50
+ color: textColor
51
+ }],
52
+ children: "No rules found."
53
+ }) : rules.map((rule, idx) => /*#__PURE__*/_jsx(View, {
54
+ style: styles.ruleRow,
55
+ children: /*#__PURE__*/_jsx(Text, {
56
+ style: [styles.ruleDesc, {
57
+ color: textColor
58
+ }],
59
+ children: rule.description
60
+ })
61
+ }, rule.id || idx))
62
+ })]
63
+ });
64
+ };
65
+ const styles = StyleSheet.create({
66
+ container: {
67
+ flex: 1
68
+ },
69
+ title: {
70
+ fontSize: 24,
71
+ fontWeight: 'bold',
72
+ margin: 24,
73
+ textAlign: 'center'
74
+ },
75
+ listContainer: {
76
+ paddingBottom: 40
77
+ },
78
+ ruleRow: {
79
+ paddingVertical: 14,
80
+ paddingHorizontal: 24,
81
+ borderBottomWidth: 1,
82
+ borderColor: '#eee'
83
+ },
84
+ ruleDesc: {
85
+ fontSize: 16
86
+ },
87
+ placeholder: {
88
+ fontSize: 16,
89
+ color: '#888',
90
+ textAlign: 'center',
91
+ marginTop: 40
92
+ },
93
+ error: {
94
+ fontSize: 16,
95
+ textAlign: 'center',
96
+ marginTop: 40
97
+ }
98
+ });
99
+ export default KarmaRulesScreen;
100
+ //# sourceMappingURL=KarmaRulesScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useState","View","Text","StyleSheet","ScrollView","ActivityIndicator","useOxy","jsx","_jsx","jsxs","_jsxs","KarmaRulesScreen","goBack","theme","oxyServices","rules","setRules","isLoading","setIsLoading","error","setError","isDarkTheme","backgroundColor","textColor","primaryColor","getKarmaRules","then","data","Array","isArray","catch","err","message","finally","style","styles","container","children","title","color","size","marginTop","contentContainerStyle","listContainer","length","placeholder","map","rule","idx","ruleRow","ruleDesc","description","id","create","flex","fontSize","fontWeight","margin","textAlign","paddingBottom","paddingVertical","paddingHorizontal","borderBottomWidth","borderColor"],"sourceRoot":"../../../../../src","sources":["ui/screens/karma/KarmaRulesScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ import { configureStore, createSlice } from '@reduxjs/toolkit';
4
+ const initialState = {
5
+ user: null,
6
+ isAuthenticated: false,
7
+ isLoading: false,
8
+ error: null
9
+ };
10
+ const authSlice = createSlice({
11
+ name: 'auth',
12
+ initialState,
13
+ reducers: {
14
+ loginStart(state) {
15
+ state.isLoading = true;
16
+ state.error = null;
17
+ },
18
+ loginSuccess(state, action) {
19
+ state.isLoading = false;
20
+ state.isAuthenticated = true;
21
+ state.user = action.payload;
22
+ },
23
+ loginFailure(state, action) {
24
+ state.isLoading = false;
25
+ state.error = action.payload;
26
+ },
27
+ logout(state) {
28
+ state.user = null;
29
+ state.isAuthenticated = false;
30
+ }
31
+ }
32
+ });
33
+ export const {
34
+ loginStart,
35
+ loginSuccess,
36
+ loginFailure,
37
+ logout
38
+ } = authSlice.actions;
39
+ export const store = configureStore({
40
+ reducer: {
41
+ auth: authSlice.reducer
42
+ }
43
+ });
44
+ //# sourceMappingURL=index.js.map