@oxyhq/services 10.5.0 → 11.1.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 (427) hide show
  1. package/lib/commonjs/index.js.map +1 -1
  2. package/lib/commonjs/ui/components/AccountMenu.js +9 -5
  3. package/lib/commonjs/ui/components/AccountMenu.js.map +1 -1
  4. package/lib/commonjs/ui/components/AnotherDeviceQR.js +51 -56
  5. package/lib/commonjs/ui/components/AnotherDeviceQR.js.map +1 -1
  6. package/lib/commonjs/ui/components/BottomSheetRouter.js +1 -0
  7. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
  8. package/lib/commonjs/ui/components/FollowButton.js +18 -5
  9. package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
  10. package/lib/commonjs/ui/components/OxyProvider.js +23 -7
  11. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  12. package/lib/commonjs/ui/components/SignInModal.js +20 -1
  13. package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
  14. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +19 -9
  15. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
  16. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +4 -2
  17. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
  18. package/lib/commonjs/ui/context/OxyContext.js +153 -19
  19. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  20. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +6 -17
  21. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  22. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +5 -5
  23. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js.map +1 -1
  24. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +38 -38
  25. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  26. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +2 -2
  27. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  28. package/lib/commonjs/ui/hooks/queries/queryKeys.js +3 -3
  29. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  30. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +1 -1
  31. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  32. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js +16 -12
  33. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  34. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +10 -6
  35. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  36. package/lib/commonjs/ui/hooks/queryClient.js +6 -5
  37. package/lib/commonjs/ui/hooks/queryClient.js.map +1 -1
  38. package/lib/commonjs/ui/hooks/useOxyAuthSession.js +40 -2
  39. package/lib/commonjs/ui/hooks/useOxyAuthSession.js.map +1 -1
  40. package/lib/commonjs/ui/hooks/useProfileEditing.js +21 -0
  41. package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
  42. package/lib/commonjs/ui/hooks/useSessionManagement.js +3 -3
  43. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  44. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +100 -108
  45. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  46. package/lib/commonjs/ui/screens/AppInfoScreen.js +227 -273
  47. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  48. package/lib/commonjs/ui/screens/AvatarCropScreen.js +10 -4
  49. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  50. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +20 -37
  51. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
  52. package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js +89 -201
  53. package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js.map +1 -1
  54. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +80 -208
  55. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  56. package/lib/commonjs/ui/screens/FAQScreen.js +56 -208
  57. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
  58. package/lib/commonjs/ui/screens/FeedbackScreen.js +303 -352
  59. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  60. package/lib/commonjs/ui/screens/FileManagementScreen.js +20 -20
  61. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  62. package/lib/commonjs/ui/screens/HelpSupportScreen.js +77 -89
  63. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  64. package/lib/commonjs/ui/screens/HistoryViewScreen.js +43 -58
  65. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  66. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +67 -90
  67. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  68. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js +77 -177
  69. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  70. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +113 -107
  71. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  72. package/lib/commonjs/ui/screens/ManageAccountScreen.js +55 -114
  73. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  74. package/lib/commonjs/ui/screens/NotificationsScreen.js +67 -85
  75. package/lib/commonjs/ui/screens/NotificationsScreen.js.map +1 -1
  76. package/lib/commonjs/ui/screens/OxyAuthScreen.js +71 -135
  77. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  78. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +15 -9
  79. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  80. package/lib/commonjs/ui/screens/PreferencesScreen.js +65 -83
  81. package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
  82. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +378 -1023
  83. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  84. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +294 -242
  85. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  86. package/lib/commonjs/ui/screens/ProfileScreen.js +192 -305
  87. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  88. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +57 -97
  89. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  90. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +41 -41
  91. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  92. package/lib/commonjs/ui/screens/UserLinksScreen.js +17 -24
  93. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  94. package/lib/commonjs/ui/screens/UserListScreen.js +83 -214
  95. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  96. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +115 -77
  97. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  98. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js +70 -57
  99. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  100. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +136 -332
  101. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  102. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js +47 -137
  103. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  104. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +182 -115
  105. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  106. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +138 -214
  107. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  108. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +54 -92
  109. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  110. package/lib/commonjs/ui/utils/activeAuthuser.js +15 -9
  111. package/lib/commonjs/ui/utils/activeAuthuser.js.map +1 -1
  112. package/lib/commonjs/ui/utils/avatarUtils.js +1 -1
  113. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  114. package/lib/module/index.js.map +1 -1
  115. package/lib/module/ui/components/AccountMenu.js +10 -6
  116. package/lib/module/ui/components/AccountMenu.js.map +1 -1
  117. package/lib/module/ui/components/AnotherDeviceQR.js +50 -56
  118. package/lib/module/ui/components/AnotherDeviceQR.js.map +1 -1
  119. package/lib/module/ui/components/BottomSheetRouter.js +2 -1
  120. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  121. package/lib/module/ui/components/FollowButton.js +18 -5
  122. package/lib/module/ui/components/FollowButton.js.map +1 -1
  123. package/lib/module/ui/components/OxyProvider.js +23 -7
  124. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  125. package/lib/module/ui/components/SignInModal.js +20 -1
  126. package/lib/module/ui/components/SignInModal.js.map +1 -1
  127. package/lib/module/ui/components/fileManagement/FileViewer.js +19 -9
  128. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
  129. package/lib/module/ui/components/fileManagement/UploadPreview.js +4 -2
  130. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
  131. package/lib/module/ui/context/OxyContext.js +154 -20
  132. package/lib/module/ui/context/OxyContext.js.map +1 -1
  133. package/lib/module/ui/context/hooks/useAuthOperations.js +6 -17
  134. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  135. package/lib/module/ui/hooks/mutations/mutationFactory.js +5 -5
  136. package/lib/module/ui/hooks/mutations/mutationFactory.js.map +1 -1
  137. package/lib/module/ui/hooks/mutations/useAccountMutations.js +38 -38
  138. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  139. package/lib/module/ui/hooks/mutations/useServicesMutations.js +2 -2
  140. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  141. package/lib/module/ui/hooks/queries/queryKeys.js +3 -3
  142. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  143. package/lib/module/ui/hooks/queries/useAccountQueries.js +1 -1
  144. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  145. package/lib/module/ui/hooks/queries/usePaymentQueries.js +16 -12
  146. package/lib/module/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  147. package/lib/module/ui/hooks/queries/useServicesQueries.js +9 -6
  148. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  149. package/lib/module/ui/hooks/queryClient.js +6 -5
  150. package/lib/module/ui/hooks/queryClient.js.map +1 -1
  151. package/lib/module/ui/hooks/useOxyAuthSession.js +40 -2
  152. package/lib/module/ui/hooks/useOxyAuthSession.js.map +1 -1
  153. package/lib/module/ui/hooks/useProfileEditing.js +21 -0
  154. package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
  155. package/lib/module/ui/hooks/useSessionManagement.js +4 -3
  156. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  157. package/lib/module/ui/screens/AccountVerificationScreen.js +101 -109
  158. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  159. package/lib/module/ui/screens/AppInfoScreen.js +228 -275
  160. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  161. package/lib/module/ui/screens/AvatarCropScreen.js +10 -4
  162. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  163. package/lib/module/ui/screens/ConnectedAppsScreen.js +19 -39
  164. package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
  165. package/lib/module/ui/screens/CreateManagedAccountScreen.js +90 -202
  166. package/lib/module/ui/screens/CreateManagedAccountScreen.js.map +1 -1
  167. package/lib/module/ui/screens/EditProfileFieldScreen.js +77 -205
  168. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  169. package/lib/module/ui/screens/FAQScreen.js +55 -207
  170. package/lib/module/ui/screens/FAQScreen.js.map +1 -1
  171. package/lib/module/ui/screens/FeedbackScreen.js +301 -350
  172. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  173. package/lib/module/ui/screens/FileManagementScreen.js +20 -20
  174. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  175. package/lib/module/ui/screens/HelpSupportScreen.js +78 -90
  176. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  177. package/lib/module/ui/screens/HistoryViewScreen.js +44 -59
  178. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  179. package/lib/module/ui/screens/LanguageSelectorScreen.js +68 -91
  180. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  181. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js +75 -177
  182. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  183. package/lib/module/ui/screens/LegalDocumentsScreen.js +116 -108
  184. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  185. package/lib/module/ui/screens/ManageAccountScreen.js +52 -112
  186. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  187. package/lib/module/ui/screens/NotificationsScreen.js +68 -86
  188. package/lib/module/ui/screens/NotificationsScreen.js.map +1 -1
  189. package/lib/module/ui/screens/OxyAuthScreen.js +69 -134
  190. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  191. package/lib/module/ui/screens/PaymentGatewayScreen.js +16 -10
  192. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  193. package/lib/module/ui/screens/PreferencesScreen.js +66 -84
  194. package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
  195. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +366 -1012
  196. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  197. package/lib/module/ui/screens/PrivacySettingsScreen.js +295 -243
  198. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  199. package/lib/module/ui/screens/ProfileScreen.js +189 -302
  200. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  201. package/lib/module/ui/screens/SavesCollectionsScreen.js +58 -98
  202. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  203. package/lib/module/ui/screens/SearchSettingsScreen.js +42 -42
  204. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  205. package/lib/module/ui/screens/UserLinksScreen.js +18 -25
  206. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  207. package/lib/module/ui/screens/UserListScreen.js +81 -212
  208. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  209. package/lib/module/ui/screens/WelcomeNewUserScreen.js +114 -76
  210. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  211. package/lib/module/ui/screens/trust/TrustAboutScreen.js +69 -57
  212. package/lib/module/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  213. package/lib/module/ui/screens/trust/TrustCenterScreen.js +135 -332
  214. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  215. package/lib/module/ui/screens/trust/TrustFAQScreen.js +48 -138
  216. package/lib/module/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  217. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +184 -117
  218. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  219. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +132 -208
  220. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  221. package/lib/module/ui/screens/trust/TrustRulesScreen.js +58 -94
  222. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  223. package/lib/module/ui/utils/activeAuthuser.js +15 -9
  224. package/lib/module/ui/utils/activeAuthuser.js.map +1 -1
  225. package/lib/module/ui/utils/avatarUtils.js +1 -1
  226. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  227. package/lib/typescript/commonjs/index.d.ts +1 -0
  228. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  229. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts +2 -0
  230. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts.map +1 -1
  231. package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts +12 -2
  232. package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts.map +1 -1
  233. package/lib/typescript/commonjs/ui/components/BottomSheetRouter.d.ts.map +1 -1
  234. package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
  235. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts +3 -2
  236. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  237. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
  238. package/lib/typescript/commonjs/ui/components/TouchableRipple/TouchableRipple.native.d.ts +1 -1
  239. package/lib/typescript/commonjs/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +1 -1
  240. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +34 -0
  241. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  242. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  243. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +3 -0
  244. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  245. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +3 -3
  246. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  247. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  248. package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts.map +1 -1
  249. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts +22 -0
  250. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts.map +1 -1
  251. package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts +3 -0
  252. package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts.map +1 -1
  253. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts +2 -1
  254. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
  255. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  256. package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
  257. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  258. package/lib/typescript/commonjs/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  259. package/lib/typescript/commonjs/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -1
  260. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  261. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  263. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  264. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  265. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  266. package/lib/typescript/commonjs/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  267. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  268. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  269. package/lib/typescript/commonjs/ui/screens/NotificationsScreen.d.ts.map +1 -1
  270. package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  271. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  272. package/lib/typescript/commonjs/ui/screens/PreferencesScreen.d.ts.map +1 -1
  273. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  274. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  275. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  276. package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  277. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  278. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  279. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
  280. package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  281. package/lib/typescript/commonjs/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  282. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  283. package/lib/typescript/commonjs/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  284. package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  285. package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  286. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  287. package/lib/typescript/commonjs/ui/utils/activeAuthuser.d.ts.map +1 -1
  288. package/lib/typescript/module/index.d.ts +1 -0
  289. package/lib/typescript/module/index.d.ts.map +1 -1
  290. package/lib/typescript/module/ui/components/AccountMenu.d.ts +2 -0
  291. package/lib/typescript/module/ui/components/AccountMenu.d.ts.map +1 -1
  292. package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts +12 -2
  293. package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts.map +1 -1
  294. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts.map +1 -1
  295. package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
  296. package/lib/typescript/module/ui/components/OxyProvider.d.ts +3 -2
  297. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  298. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
  299. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.native.d.ts +1 -1
  300. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +1 -1
  301. package/lib/typescript/module/ui/context/OxyContext.d.ts +34 -0
  302. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  303. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  304. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +3 -0
  305. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  306. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +3 -3
  307. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  308. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  309. package/lib/typescript/module/ui/hooks/queryClient.d.ts.map +1 -1
  310. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts +22 -0
  311. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts.map +1 -1
  312. package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts +3 -0
  313. package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts.map +1 -1
  314. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts +2 -1
  315. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
  316. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  317. package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
  318. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  319. package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  320. package/lib/typescript/module/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -1
  321. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  322. package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +1 -1
  323. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  324. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  325. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  326. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  327. package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  328. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  329. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  330. package/lib/typescript/module/ui/screens/NotificationsScreen.d.ts.map +1 -1
  331. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  332. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  333. package/lib/typescript/module/ui/screens/PreferencesScreen.d.ts.map +1 -1
  334. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  335. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  336. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  337. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  338. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  339. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  340. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
  341. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  342. package/lib/typescript/module/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  343. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  344. package/lib/typescript/module/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  345. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  346. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  347. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  348. package/lib/typescript/module/ui/utils/activeAuthuser.d.ts.map +1 -1
  349. package/lib/typescript/types/expo-haptics.d.ts +42 -0
  350. package/package.json +24 -31
  351. package/src/index.ts +1 -0
  352. package/src/types/expo-haptics.d.ts +42 -0
  353. package/src/ui/components/AccountMenu.tsx +11 -5
  354. package/src/ui/components/AnotherDeviceQR.tsx +53 -45
  355. package/src/ui/components/BottomSheetRouter.tsx +2 -1
  356. package/src/ui/components/FollowButton.tsx +24 -5
  357. package/src/ui/components/OxyProvider.tsx +22 -8
  358. package/src/ui/components/SignInModal.tsx +21 -2
  359. package/src/ui/components/TouchableRipple/TouchableRipple.native.tsx +1 -1
  360. package/src/ui/components/fileManagement/FileViewer.tsx +9 -9
  361. package/src/ui/components/fileManagement/UploadPreview.tsx +2 -2
  362. package/src/ui/context/OxyContext.tsx +178 -21
  363. package/src/ui/context/hooks/useAuthOperations.ts +6 -17
  364. package/src/ui/hooks/mutations/mutationFactory.ts +5 -5
  365. package/src/ui/hooks/mutations/useAccountMutations.ts +38 -38
  366. package/src/ui/hooks/mutations/useServicesMutations.ts +2 -2
  367. package/src/ui/hooks/queries/queryKeys.ts +6 -3
  368. package/src/ui/hooks/queries/useAccountQueries.ts +1 -1
  369. package/src/ui/hooks/queries/usePaymentQueries.ts +12 -12
  370. package/src/ui/hooks/queries/useServicesQueries.ts +9 -6
  371. package/src/ui/hooks/queryClient.ts +5 -5
  372. package/src/ui/hooks/useOxyAuthSession.ts +76 -2
  373. package/src/ui/hooks/useProfileEditing.ts +24 -0
  374. package/src/ui/hooks/useSessionManagement.ts +9 -6
  375. package/src/ui/screens/AccountVerificationScreen.tsx +101 -113
  376. package/src/ui/screens/AppInfoScreen.tsx +200 -238
  377. package/src/ui/screens/AvatarCropScreen.tsx +17 -4
  378. package/src/ui/screens/ConnectedAppsScreen.tsx +16 -34
  379. package/src/ui/screens/CreateManagedAccountScreen.tsx +94 -170
  380. package/src/ui/screens/EditProfileFieldScreen.tsx +77 -190
  381. package/src/ui/screens/FAQScreen.tsx +77 -208
  382. package/src/ui/screens/FeedbackScreen.tsx +330 -239
  383. package/src/ui/screens/FileManagementScreen.tsx +20 -20
  384. package/src/ui/screens/HelpSupportScreen.tsx +67 -82
  385. package/src/ui/screens/HistoryViewScreen.tsx +32 -38
  386. package/src/ui/screens/LanguageSelectorScreen.tsx +79 -93
  387. package/src/ui/screens/LearnMoreUsernamesScreen.tsx +81 -164
  388. package/src/ui/screens/LegalDocumentsScreen.tsx +184 -123
  389. package/src/ui/screens/ManageAccountScreen.tsx +48 -114
  390. package/src/ui/screens/NotificationsScreen.tsx +107 -106
  391. package/src/ui/screens/OxyAuthScreen.tsx +76 -109
  392. package/src/ui/screens/PaymentGatewayScreen.tsx +16 -7
  393. package/src/ui/screens/PreferencesScreen.tsx +96 -116
  394. package/src/ui/screens/PremiumSubscriptionScreen.tsx +419 -872
  395. package/src/ui/screens/PrivacySettingsScreen.tsx +203 -185
  396. package/src/ui/screens/ProfileScreen.tsx +158 -200
  397. package/src/ui/screens/SavesCollectionsScreen.tsx +78 -125
  398. package/src/ui/screens/SearchSettingsScreen.tsx +52 -41
  399. package/src/ui/screens/UserLinksScreen.tsx +18 -25
  400. package/src/ui/screens/UserListScreen.tsx +95 -188
  401. package/src/ui/screens/WelcomeNewUserScreen.tsx +109 -36
  402. package/src/ui/screens/trust/TrustAboutScreen.tsx +52 -41
  403. package/src/ui/screens/trust/TrustCenterScreen.tsx +184 -222
  404. package/src/ui/screens/trust/TrustFAQScreen.tsx +64 -124
  405. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +190 -67
  406. package/src/ui/screens/trust/TrustRewardsScreen.tsx +147 -182
  407. package/src/ui/screens/trust/TrustRulesScreen.tsx +77 -50
  408. package/src/ui/utils/activeAuthuser.ts +15 -9
  409. package/src/ui/utils/avatarUtils.ts +1 -1
  410. package/lib/commonjs/ui/components/feedback/FormInput.js +0 -72
  411. package/lib/commonjs/ui/components/feedback/FormInput.js.map +0 -1
  412. package/lib/commonjs/ui/components/feedback/feedbackStyles.js +0 -261
  413. package/lib/commonjs/ui/components/feedback/feedbackStyles.js.map +0 -1
  414. package/lib/module/ui/components/feedback/FormInput.js +0 -67
  415. package/lib/module/ui/components/feedback/FormInput.js.map +0 -1
  416. package/lib/module/ui/components/feedback/feedbackStyles.js +0 -256
  417. package/lib/module/ui/components/feedback/feedbackStyles.js.map +0 -1
  418. package/lib/typescript/commonjs/ui/components/feedback/FormInput.d.ts +0 -20
  419. package/lib/typescript/commonjs/ui/components/feedback/FormInput.d.ts.map +0 -1
  420. package/lib/typescript/commonjs/ui/components/feedback/feedbackStyles.d.ts +0 -279
  421. package/lib/typescript/commonjs/ui/components/feedback/feedbackStyles.d.ts.map +0 -1
  422. package/lib/typescript/module/ui/components/feedback/FormInput.d.ts +0 -20
  423. package/lib/typescript/module/ui/components/feedback/FormInput.d.ts.map +0 -1
  424. package/lib/typescript/module/ui/components/feedback/feedbackStyles.d.ts +0 -279
  425. package/lib/typescript/module/ui/components/feedback/feedbackStyles.d.ts.map +0 -1
  426. package/src/ui/components/feedback/FormInput.tsx +0 -84
  427. package/src/ui/components/feedback/feedbackStyles.ts +0 -246
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  import { useEffect, useState } from 'react';
4
- import { View, Text, StyleSheet, ActivityIndicator, ScrollView, TouchableOpacity } from 'react-native';
4
+ import { View, StyleSheet, ActivityIndicator, ScrollView } from 'react-native';
5
5
  import { useTheme } from '@oxyhq/bloom/theme';
6
+ import { Button } from '@oxyhq/bloom/button';
7
+ import { H2, Text } from '@oxyhq/bloom/typography';
8
+ import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
6
9
  import Avatar from "../components/Avatar.js";
7
10
  import FollowButton from "../components/FollowButton.js";
8
11
  import { useFollow } from "../hooks/useFollow.js";
@@ -12,6 +15,10 @@ import { useOxy } from "../context/OxyContext.js";
12
15
  import { getAccountDisplayName, logger } from '@oxyhq/core';
13
16
  import { extractErrorMessage } from "../utils/errorHandlers.js";
14
17
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
+ const AVATAR_SIZE = 96;
19
+ const BANNER_HEIGHT = 160;
20
+ const AVATAR_OVERLAP = -56;
21
+ const INFO_ICON_SIZE = 18;
15
22
  const ProfileScreen = ({
16
23
  userId,
17
24
  username,
@@ -39,7 +46,6 @@ const ProfileScreen = ({
39
46
  isLoadingCounts
40
47
  } = useFollow(userId);
41
48
  const bloomTheme = useTheme();
42
- const styles = createStyles();
43
49
  const {
44
50
  t,
45
51
  locale
@@ -157,10 +163,8 @@ const ProfileScreen = ({
157
163
  }, [userId]);
158
164
  if (isLoading) {
159
165
  return /*#__PURE__*/_jsx(View, {
160
- style: [styles.container, {
161
- justifyContent: 'center',
162
- backgroundColor: bloomTheme.colors.background
163
- }],
166
+ style: styles.centerContainer,
167
+ className: "bg-bg",
164
168
  children: /*#__PURE__*/_jsx(ActivityIndicator, {
165
169
  size: "large",
166
170
  color: bloomTheme.colors.primary
@@ -169,82 +173,77 @@ const ProfileScreen = ({
169
173
  }
170
174
  if (error) {
171
175
  return /*#__PURE__*/_jsxs(View, {
172
- style: [styles.container, {
173
- backgroundColor: bloomTheme.colors.background
174
- }],
176
+ style: styles.container,
177
+ className: "bg-bg",
175
178
  children: [/*#__PURE__*/_jsxs(View, {
176
- style: [styles.errorHeader, {
177
- borderBottomColor: bloomTheme.colors.border
178
- }],
179
- children: [goBack && /*#__PURE__*/_jsx(TouchableOpacity, {
179
+ style: styles.errorHeader,
180
+ className: "px-screen-margin py-space-12 border-b border-border",
181
+ children: [goBack && /*#__PURE__*/_jsx(Button, {
182
+ variant: "icon",
183
+ size: "icon",
180
184
  onPress: goBack,
181
- style: styles.backButton,
182
- children: /*#__PURE__*/_jsx(Ionicons, {
185
+ accessibilityLabel: t('common.back') || 'Back',
186
+ icon: /*#__PURE__*/_jsx(Ionicons, {
183
187
  name: "arrow-back",
184
- size: 24,
188
+ size: 22,
185
189
  color: bloomTheme.colors.text
186
190
  })
187
- }), /*#__PURE__*/_jsx(Text, {
191
+ }), /*#__PURE__*/_jsx(H2, {
188
192
  style: styles.errorTitle,
189
- className: "text-foreground",
190
- children: "Profile Error"
193
+ className: "text-text",
194
+ children: t('profile.errorTitle') || 'Profile Error'
191
195
  })]
192
196
  }), /*#__PURE__*/_jsxs(View, {
193
197
  style: styles.errorContent,
198
+ className: "px-space-32 gap-space-12",
194
199
  children: [/*#__PURE__*/_jsx(Ionicons, {
195
200
  name: "alert-circle",
196
201
  size: 48,
197
- color: bloomTheme.colors.error,
198
- style: styles.errorIcon
202
+ color: bloomTheme.colors.error
199
203
  }), /*#__PURE__*/_jsx(Text, {
200
204
  style: styles.errorText,
201
- className: "text-destructive",
205
+ className: "text-text",
202
206
  children: error
203
207
  }), /*#__PURE__*/_jsx(Text, {
204
208
  style: styles.errorSubtext,
205
- className: "text-muted-foreground",
206
- children: "This could happen if the user doesn't exist or the profile service is unavailable."
209
+ className: "text-text-secondary",
210
+ children: t('profile.errorSubtext') || "This could happen if the user doesn't exist or the profile service is unavailable."
207
211
  })]
208
212
  })]
209
213
  });
210
214
  }
215
+ const displayName = profile ? getAccountDisplayName(profile, locale) : username || '';
211
216
  return /*#__PURE__*/_jsx(View, {
212
- style: [styles.container, {
213
- backgroundColor: bloomTheme.colors.background
214
- }],
217
+ style: styles.container,
218
+ className: "bg-bg",
215
219
  children: /*#__PURE__*/_jsxs(ScrollView, {
216
- style: {
217
- flex: 1
218
- },
220
+ style: styles.flex,
219
221
  contentContainerStyle: styles.scrollContainer,
220
222
  children: [/*#__PURE__*/_jsx(View, {
221
223
  style: styles.bannerContainer,
222
- className: "bg-primary/20",
224
+ className: "bg-fill-brand/20",
223
225
  children: /*#__PURE__*/_jsx(View, {
224
- style: styles.bannerImage,
225
- className: "bg-primary"
226
+ style: styles.flex,
227
+ className: "bg-fill-brand"
226
228
  })
227
229
  }), /*#__PURE__*/_jsxs(View, {
228
230
  style: styles.avatarRow,
231
+ className: "px-screen-margin",
229
232
  children: [/*#__PURE__*/_jsx(View, {
230
233
  style: styles.avatarWrapper,
231
- className: "border-background bg-background",
234
+ className: "border-bg bg-bg rounded-radius-max",
232
235
  children: /*#__PURE__*/_jsx(Avatar, {
233
236
  uri: profile?.avatar ? oxyServices.getFileDownloadUrl(profile.avatar, 'thumb') : undefined,
234
- name: profile ? getAccountDisplayName(profile, locale) : username,
235
- size: 96
237
+ name: displayName || username,
238
+ size: AVATAR_SIZE
236
239
  })
237
240
  }), /*#__PURE__*/_jsx(View, {
238
241
  style: styles.actionButtonWrapper,
239
- children: isOwnProfile ? /*#__PURE__*/_jsx(TouchableOpacity, {
240
- style: styles.actionButton,
241
- className: "bg-background border-primary",
242
+ children: isOwnProfile ? /*#__PURE__*/_jsx(Button, {
243
+ variant: "secondary",
244
+ size: "small",
242
245
  onPress: () => navigate?.('ManageAccount'),
243
- children: /*#__PURE__*/_jsx(Text, {
244
- style: styles.actionButtonText,
245
- className: "text-primary",
246
- children: t('editProfile.title') || 'Edit Profile'
247
- })
246
+ children: t('editProfile.title') || 'Edit Profile'
248
247
  }) : /*#__PURE__*/_jsx(FollowButton, {
249
248
  userId: userId,
250
249
  onFollowChange: isFollowing => {
@@ -259,264 +258,192 @@ const ProfileScreen = ({
259
258
  })]
260
259
  }), /*#__PURE__*/_jsxs(View, {
261
260
  style: styles.header,
262
- children: [/*#__PURE__*/_jsx(Text, {
261
+ className: "px-screen-margin",
262
+ children: [/*#__PURE__*/_jsx(H2, {
263
263
  style: styles.displayName,
264
- className: "text-foreground",
265
- children: profile ? getAccountDisplayName(profile, locale) : username || ''
264
+ className: "text-text",
265
+ children: displayName
266
266
  }), profile?.username && /*#__PURE__*/_jsxs(Text, {
267
267
  style: styles.subText,
268
- className: "text-muted-foreground",
268
+ className: "text-text-secondary",
269
269
  children: ["@", profile.username]
270
270
  }), /*#__PURE__*/_jsx(Text, {
271
271
  style: styles.bio,
272
- className: "text-foreground",
272
+ className: "text-text",
273
273
  children: profile?.bio || t('profile.noBio') || 'This user has no bio yet.'
274
+ })]
275
+ }), /*#__PURE__*/_jsxs(SettingsListGroup, {
276
+ children: [profile?.createdAt && /*#__PURE__*/_jsx(SettingsListItem, {
277
+ icon: /*#__PURE__*/_jsx(Ionicons, {
278
+ name: "calendar-outline",
279
+ size: INFO_ICON_SIZE,
280
+ color: bloomTheme.colors.textSecondary
281
+ }),
282
+ title: t('profile.joinedOn', {
283
+ date: new Date(profile.createdAt).toLocaleDateString()
284
+ }) || `Joined ${new Date(profile.createdAt).toLocaleDateString()}`,
285
+ showChevron: false
286
+ }), profile?.location && /*#__PURE__*/_jsx(SettingsListItem, {
287
+ icon: /*#__PURE__*/_jsx(Ionicons, {
288
+ name: "location-outline",
289
+ size: INFO_ICON_SIZE,
290
+ color: bloomTheme.colors.textSecondary
291
+ }),
292
+ title: profile.location,
293
+ showChevron: false
294
+ }), profile?.website && /*#__PURE__*/_jsx(SettingsListItem, {
295
+ icon: /*#__PURE__*/_jsx(Ionicons, {
296
+ name: "globe-outline",
297
+ size: INFO_ICON_SIZE,
298
+ color: bloomTheme.colors.textSecondary
299
+ }),
300
+ title: profile.website,
301
+ showChevron: false
302
+ }), profile && 'company' in profile && typeof profile.company === 'string' && profile.company && /*#__PURE__*/_jsx(SettingsListItem, {
303
+ icon: /*#__PURE__*/_jsx(Ionicons, {
304
+ name: "business-outline",
305
+ size: INFO_ICON_SIZE,
306
+ color: bloomTheme.colors.textSecondary
307
+ }),
308
+ title: profile.company,
309
+ showChevron: false
310
+ }), profile && 'jobTitle' in profile && typeof profile.jobTitle === 'string' && profile.jobTitle && /*#__PURE__*/_jsx(SettingsListItem, {
311
+ icon: /*#__PURE__*/_jsx(Ionicons, {
312
+ name: "briefcase-outline",
313
+ size: INFO_ICON_SIZE,
314
+ color: bloomTheme.colors.textSecondary
315
+ }),
316
+ title: profile.jobTitle,
317
+ showChevron: false
318
+ }), profile && 'education' in profile && typeof profile.education === 'string' && profile.education && /*#__PURE__*/_jsx(SettingsListItem, {
319
+ icon: /*#__PURE__*/_jsx(Ionicons, {
320
+ name: "school-outline",
321
+ size: INFO_ICON_SIZE,
322
+ color: bloomTheme.colors.textSecondary
323
+ }),
324
+ title: profile.education,
325
+ showChevron: false
326
+ }), profile && 'birthday' in profile && typeof profile.birthday === 'string' && profile.birthday && /*#__PURE__*/_jsx(SettingsListItem, {
327
+ icon: /*#__PURE__*/_jsx(Ionicons, {
328
+ name: "gift-outline",
329
+ size: INFO_ICON_SIZE,
330
+ color: bloomTheme.colors.textSecondary
331
+ }),
332
+ title: t('profile.bornOn', {
333
+ date: new Date(profile.birthday).toLocaleDateString()
334
+ }) || `Born ${new Date(profile.birthday).toLocaleDateString()}`,
335
+ showChevron: false
336
+ }), links.length > 0 && /*#__PURE__*/_jsx(SettingsListItem, {
337
+ icon: /*#__PURE__*/_jsx(Ionicons, {
338
+ name: "link-outline",
339
+ size: INFO_ICON_SIZE,
340
+ color: bloomTheme.colors.textSecondary
341
+ }),
342
+ title: links[0].url,
343
+ value: links.length > 1 ? t('profile.more', {
344
+ count: links.length - 1
345
+ }) || `+ ${links.length - 1} more` : undefined,
346
+ onPress: () => navigate?.('UserLinks', {
347
+ userId,
348
+ links
349
+ })
350
+ })]
351
+ }), /*#__PURE__*/_jsxs(View, {
352
+ style: styles.statsRow,
353
+ className: "px-screen-margin",
354
+ children: [/*#__PURE__*/_jsxs(View, {
355
+ style: styles.statItem,
356
+ children: [/*#__PURE__*/_jsx(Text, {
357
+ style: styles.statAmount,
358
+ className: "text-text-inverse",
359
+ children: reputationTotal !== null && reputationTotal !== undefined ? reputationTotal : '--'
360
+ }), /*#__PURE__*/_jsx(Text, {
361
+ style: styles.statLabel,
362
+ className: "text-text-secondary",
363
+ children: t('profile.reputation') || 'Reputation'
364
+ })]
274
365
  }), /*#__PURE__*/_jsxs(View, {
275
- style: styles.infoGrid,
276
- children: [profile?.createdAt && /*#__PURE__*/_jsxs(View, {
277
- style: styles.infoGridItem,
278
- children: [/*#__PURE__*/_jsx(Ionicons, {
279
- name: "calendar-outline",
280
- size: 16,
281
- color: bloomTheme.colors.textSecondary,
282
- style: {
283
- marginRight: 6
284
- }
285
- }), /*#__PURE__*/_jsx(Text, {
286
- style: styles.infoGridText,
287
- className: "text-muted-foreground",
288
- children: t('profile.joinedOn', {
289
- date: new Date(profile.createdAt).toLocaleDateString()
290
- }) || `Joined ${new Date(profile.createdAt).toLocaleDateString()}`
291
- })]
292
- }), profile?.location && /*#__PURE__*/_jsxs(View, {
293
- style: styles.infoGridItem,
294
- children: [/*#__PURE__*/_jsx(Ionicons, {
295
- name: "location-outline",
296
- size: 16,
297
- color: bloomTheme.colors.textSecondary,
298
- style: {
299
- marginRight: 6
300
- }
301
- }), /*#__PURE__*/_jsx(Text, {
302
- style: styles.infoGridText,
303
- className: "text-muted-foreground",
304
- numberOfLines: 1,
305
- children: profile.location
306
- })]
307
- }), profile?.website && /*#__PURE__*/_jsxs(View, {
308
- style: styles.infoGridItem,
309
- children: [/*#__PURE__*/_jsx(Ionicons, {
310
- name: "globe-outline",
311
- size: 16,
312
- color: bloomTheme.colors.textSecondary,
313
- style: {
314
- marginRight: 6
315
- }
316
- }), /*#__PURE__*/_jsx(Text, {
317
- style: styles.infoGridText,
318
- className: "text-muted-foreground",
319
- numberOfLines: 1,
320
- children: profile.website
321
- })]
322
- }), profile && 'company' in profile && typeof profile.company === 'string' && profile.company && /*#__PURE__*/_jsxs(View, {
323
- style: styles.infoGridItem,
324
- children: [/*#__PURE__*/_jsx(Ionicons, {
325
- name: "business-outline",
326
- size: 16,
327
- color: bloomTheme.colors.textSecondary,
328
- style: {
329
- marginRight: 6
330
- }
331
- }), /*#__PURE__*/_jsx(Text, {
332
- style: styles.infoGridText,
333
- className: "text-muted-foreground",
334
- numberOfLines: 1,
335
- children: profile.company
336
- })]
337
- }), profile && 'jobTitle' in profile && typeof profile.jobTitle === 'string' && profile.jobTitle && /*#__PURE__*/_jsxs(View, {
338
- style: styles.infoGridItem,
339
- children: [/*#__PURE__*/_jsx(Ionicons, {
340
- name: "briefcase-outline",
341
- size: 16,
342
- color: bloomTheme.colors.textSecondary,
343
- style: {
344
- marginRight: 6
345
- }
346
- }), /*#__PURE__*/_jsx(Text, {
347
- style: styles.infoGridText,
348
- className: "text-muted-foreground",
349
- numberOfLines: 1,
350
- children: profile.jobTitle
351
- })]
352
- }), profile && 'education' in profile && typeof profile.education === 'string' && profile.education && /*#__PURE__*/_jsxs(View, {
353
- style: styles.infoGridItem,
354
- children: [/*#__PURE__*/_jsx(Ionicons, {
355
- name: "school-outline",
356
- size: 16,
357
- color: bloomTheme.colors.textSecondary,
358
- style: {
359
- marginRight: 6
360
- }
361
- }), /*#__PURE__*/_jsx(Text, {
362
- style: styles.infoGridText,
363
- className: "text-muted-foreground",
364
- numberOfLines: 1,
365
- children: profile.education
366
- })]
367
- }), profile && 'birthday' in profile && typeof profile.birthday === 'string' && profile.birthday && /*#__PURE__*/_jsxs(View, {
368
- style: styles.infoGridItem,
369
- children: [/*#__PURE__*/_jsx(Ionicons, {
370
- name: "gift-outline",
371
- size: 16,
372
- color: bloomTheme.colors.textSecondary,
373
- style: {
374
- marginRight: 6
375
- }
376
- }), /*#__PURE__*/_jsx(Text, {
377
- style: styles.infoGridText,
378
- className: "text-muted-foreground",
379
- children: t('profile.bornOn', {
380
- date: new Date(profile.birthday).toLocaleDateString()
381
- }) || `Born ${new Date(profile.birthday).toLocaleDateString()}`
382
- })]
383
- }), links.length > 0 && /*#__PURE__*/_jsxs(TouchableOpacity, {
384
- style: styles.infoGridItem,
385
- onPress: () => navigate?.('UserLinks', {
386
- userId,
387
- links
388
- }),
389
- children: [/*#__PURE__*/_jsx(Ionicons, {
390
- name: "link-outline",
391
- size: 16,
392
- color: bloomTheme.colors.textSecondary,
393
- style: {
394
- marginRight: 6
395
- }
396
- }), /*#__PURE__*/_jsx(Text, {
397
- style: styles.infoGridText,
398
- className: "text-muted-foreground",
399
- numberOfLines: 1,
400
- children: links[0].url
401
- }), links.length > 1 && /*#__PURE__*/_jsx(Text, {
402
- style: styles.linksMore,
403
- className: "text-muted-foreground",
404
- children: t('profile.more', {
405
- count: links.length - 1
406
- }) || `+ ${links.length - 1} more`
407
- })]
366
+ style: styles.statItem,
367
+ children: [isLoadingCounts ? /*#__PURE__*/_jsx(ActivityIndicator, {
368
+ size: "small",
369
+ color: bloomTheme.colors.text
370
+ }) : /*#__PURE__*/_jsx(Text, {
371
+ style: styles.statAmount,
372
+ className: "text-text",
373
+ children: followerCount !== null ? followerCount : '--'
374
+ }), /*#__PURE__*/_jsx(Text, {
375
+ style: styles.statLabel,
376
+ className: "text-text-secondary",
377
+ children: t('profile.followers') || 'Followers'
408
378
  })]
409
- }), /*#__PURE__*/_jsx(View, {
410
- style: styles.divider,
411
- className: "bg-border"
412
379
  }), /*#__PURE__*/_jsxs(View, {
413
- style: styles.statsRow,
414
- children: [/*#__PURE__*/_jsxs(View, {
415
- style: styles.statItem,
416
- children: [/*#__PURE__*/_jsx(Text, {
417
- style: styles.statAmount,
418
- className: "text-primary",
419
- children: reputationTotal !== null && reputationTotal !== undefined ? reputationTotal : '--'
420
- }), /*#__PURE__*/_jsx(Text, {
421
- style: styles.statLabel,
422
- className: "text-muted-foreground",
423
- children: t('profile.reputation') || 'Reputation'
424
- })]
425
- }), /*#__PURE__*/_jsxs(View, {
426
- style: styles.statItem,
427
- children: [isLoadingCounts ? /*#__PURE__*/_jsx(ActivityIndicator, {
428
- size: "small",
429
- color: bloomTheme.colors.text
430
- }) : /*#__PURE__*/_jsx(Text, {
431
- style: styles.statAmount,
432
- className: "text-foreground",
433
- children: followerCount !== null ? followerCount : '--'
434
- }), /*#__PURE__*/_jsx(Text, {
435
- style: styles.statLabel,
436
- className: "text-muted-foreground",
437
- children: t('profile.followers') || 'Followers'
438
- })]
439
- }), /*#__PURE__*/_jsxs(View, {
440
- style: styles.statItem,
441
- children: [isLoadingCounts ? /*#__PURE__*/_jsx(ActivityIndicator, {
442
- size: "small",
443
- color: bloomTheme.colors.text
444
- }) : /*#__PURE__*/_jsx(Text, {
445
- style: styles.statAmount,
446
- className: "text-foreground",
447
- children: followingCount !== null ? followingCount : '--'
448
- }), /*#__PURE__*/_jsx(Text, {
449
- style: styles.statLabel,
450
- className: "text-muted-foreground",
451
- children: t('profile.following') || 'Following'
452
- })]
380
+ style: styles.statItem,
381
+ children: [isLoadingCounts ? /*#__PURE__*/_jsx(ActivityIndicator, {
382
+ size: "small",
383
+ color: bloomTheme.colors.text
384
+ }) : /*#__PURE__*/_jsx(Text, {
385
+ style: styles.statAmount,
386
+ className: "text-text",
387
+ children: followingCount !== null ? followingCount : '--'
388
+ }), /*#__PURE__*/_jsx(Text, {
389
+ style: styles.statLabel,
390
+ className: "text-text-secondary",
391
+ children: t('profile.following') || 'Following'
453
392
  })]
454
393
  })]
455
394
  })]
456
395
  })
457
396
  });
458
397
  };
459
- const createStyles = () => StyleSheet.create({
398
+
399
+ // Layout-only styles: flex, dimensions, and the measured banner/avatar overlap
400
+ // that no token class can express. Colors, spacing, radius, and typography roles
401
+ // live on Bloom components + NativeWind token classes.
402
+ const styles = StyleSheet.create({
460
403
  container: {
461
404
  flex: 1
462
405
  },
406
+ flex: {
407
+ flex: 1
408
+ },
409
+ centerContainer: {
410
+ flex: 1,
411
+ justifyContent: 'center',
412
+ alignItems: 'center'
413
+ },
463
414
  scrollContainer: {
464
415
  alignItems: 'stretch',
465
416
  paddingBottom: 40
466
417
  },
467
418
  bannerContainer: {
468
- height: 160,
419
+ height: BANNER_HEIGHT,
469
420
  position: 'relative',
470
421
  overflow: 'hidden'
471
422
  },
472
- bannerImage: {
473
- flex: 1
474
- },
475
423
  avatarRow: {
476
424
  flexDirection: 'row',
477
425
  alignItems: 'flex-end',
478
- marginTop: -56,
479
- paddingHorizontal: 20,
426
+ marginTop: AVATAR_OVERLAP,
480
427
  justifyContent: 'space-between',
481
428
  zIndex: 2
482
429
  },
483
430
  avatarWrapper: {
484
431
  borderWidth: 5,
485
- borderRadius: 64,
486
432
  overflow: 'hidden'
487
433
  },
488
434
  actionButtonWrapper: {
489
435
  flex: 1,
490
436
  alignItems: 'flex-end',
491
- justifyContent: 'flex-end'
492
- },
493
- actionButton: {
494
- borderWidth: 1,
495
- borderRadius: 24,
496
- paddingVertical: 7,
497
- paddingHorizontal: 22,
498
- marginBottom: 8,
499
- elevation: 2,
500
- shadowOffset: {
501
- width: 0,
502
- height: 1
503
- },
504
- shadowOpacity: 0.08,
505
- shadowRadius: 2
506
- },
507
- actionButtonText: {
508
- fontWeight: 'bold',
509
- fontSize: 16
437
+ justifyContent: 'flex-end',
438
+ paddingBottom: 8
510
439
  },
511
440
  header: {
512
441
  alignItems: 'flex-start',
513
442
  width: '100%',
514
- paddingHorizontal: 20
443
+ marginTop: 10
515
444
  },
516
445
  displayName: {
517
446
  fontSize: 24,
518
- fontWeight: 'bold',
519
- marginTop: 10,
520
447
  marginBottom: 2,
521
448
  letterSpacing: 0.1
522
449
  },
@@ -527,40 +454,13 @@ const createStyles = () => StyleSheet.create({
527
454
  bio: {
528
455
  fontSize: 16,
529
456
  marginTop: 10,
530
- marginBottom: 10,
531
457
  lineHeight: 22
532
458
  },
533
- infoGrid: {
534
- flexDirection: 'row',
535
- alignItems: 'center',
536
- marginBottom: 10,
537
- flexWrap: 'wrap'
538
- },
539
- infoGridItem: {
540
- flexDirection: 'row',
541
- alignItems: 'center',
542
- marginRight: 24,
543
- marginBottom: 4
544
- },
545
- infoGridText: {
546
- fontSize: 15
547
- },
548
- divider: {
549
- height: 1,
550
- width: '100%',
551
- marginVertical: 14
552
- },
553
- linksMore: {
554
- fontSize: 15,
555
- marginLeft: 4
556
- },
557
459
  statsRow: {
558
460
  width: '100%',
559
- flex: 1,
560
461
  flexDirection: 'row',
561
462
  alignItems: 'center',
562
- marginTop: 6,
563
- marginBottom: 2,
463
+ marginTop: 14,
564
464
  justifyContent: 'space-between'
565
465
  },
566
466
  statItem: {
@@ -580,41 +480,28 @@ const createStyles = () => StyleSheet.create({
580
480
  textAlign: 'center',
581
481
  letterSpacing: 0.2
582
482
  },
583
- // Error handling styles
483
+ // Error state layout
584
484
  errorHeader: {
585
485
  flexDirection: 'row',
586
486
  alignItems: 'center',
587
- paddingHorizontal: 16,
588
- paddingVertical: 12,
589
- borderBottomWidth: 1
590
- },
591
- backButton: {
592
- padding: 8,
593
- marginRight: 16
487
+ gap: 16
594
488
  },
595
489
  errorTitle: {
596
- fontSize: 20,
597
- fontWeight: 'bold'
490
+ fontSize: 20
598
491
  },
599
492
  errorContent: {
600
493
  flex: 1,
601
494
  justifyContent: 'center',
602
- alignItems: 'center',
603
- paddingHorizontal: 32
604
- },
605
- errorIcon: {
606
- marginBottom: 16
495
+ alignItems: 'center'
607
496
  },
608
497
  errorText: {
609
498
  fontSize: 18,
610
499
  fontWeight: '600',
611
- textAlign: 'center',
612
- marginBottom: 8
500
+ textAlign: 'center'
613
501
  },
614
502
  errorSubtext: {
615
503
  fontSize: 14,
616
- textAlign: 'center',
617
- opacity: 0.7
504
+ textAlign: 'center'
618
505
  }
619
506
  });
620
507
  export default ProfileScreen;