@oxyhq/services 5.7.5 → 5.8.2

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 (303) hide show
  1. package/README.md +76 -76
  2. package/lib/commonjs/core/index.js +177 -102
  3. package/lib/commonjs/core/index.js.map +1 -1
  4. package/lib/commonjs/index.js +69 -28
  5. package/lib/commonjs/index.js.map +1 -1
  6. package/lib/commonjs/ui/components/Avatar.js +15 -6
  7. package/lib/commonjs/ui/components/Avatar.js.map +1 -1
  8. package/lib/commonjs/ui/components/FollowButton.js +100 -12
  9. package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
  10. package/lib/commonjs/ui/components/GroupedItem.js +58 -13
  11. package/lib/commonjs/ui/components/GroupedItem.js.map +1 -1
  12. package/lib/commonjs/ui/components/GroupedSection.js +7 -1
  13. package/lib/commonjs/ui/components/GroupedSection.js.map +1 -1
  14. package/lib/commonjs/ui/components/Header.js +356 -0
  15. package/lib/commonjs/ui/components/Header.js.map +1 -0
  16. package/lib/commonjs/ui/components/OxyProvider.js +28 -7
  17. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  18. package/lib/commonjs/ui/components/index.js +7 -0
  19. package/lib/commonjs/ui/components/index.js.map +1 -1
  20. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js +1 -1
  21. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js.map +1 -1
  22. package/lib/commonjs/ui/components/internal/TextField.js +606 -546
  23. package/lib/commonjs/ui/components/internal/TextField.js.map +1 -1
  24. package/lib/commonjs/ui/components/internal/TextField.md +436 -0
  25. package/lib/commonjs/ui/context/OxyContext.js +181 -199
  26. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  27. package/lib/commonjs/ui/hooks/index.js +6 -0
  28. package/lib/commonjs/ui/hooks/index.js.map +1 -1
  29. package/lib/commonjs/ui/hooks/useFollow.js +59 -2
  30. package/lib/commonjs/ui/hooks/useFollow.js.map +1 -1
  31. package/lib/commonjs/ui/hooks/useSessionSocket.js +5 -2
  32. package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
  33. package/lib/commonjs/ui/navigation/OxyRouter.js +11 -1
  34. package/lib/commonjs/ui/navigation/OxyRouter.js.map +1 -1
  35. package/lib/commonjs/ui/screens/AccountCenterScreen.js +6 -6
  36. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  37. package/lib/commonjs/ui/screens/AccountManagementDemo.js +3 -3
  38. package/lib/commonjs/ui/screens/AccountManagementDemo.js.map +1 -1
  39. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +241 -598
  40. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  41. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +1160 -406
  42. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  43. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +135 -237
  44. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  45. package/lib/commonjs/ui/screens/AppInfoScreen.js +246 -463
  46. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  47. package/lib/commonjs/ui/screens/FeedbackScreen.js +3 -3
  48. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  49. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +808 -650
  50. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  51. package/lib/commonjs/ui/screens/ProfileScreen.js +214 -37
  52. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  53. package/lib/commonjs/ui/screens/RecoverAccountScreen.js +51 -72
  54. package/lib/commonjs/ui/screens/RecoverAccountScreen.js.map +1 -1
  55. package/lib/commonjs/ui/screens/SessionManagementScreen.js +11 -29
  56. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  57. package/lib/commonjs/ui/screens/SignInScreen.js +30 -303
  58. package/lib/commonjs/ui/screens/SignInScreen.js.map +1 -1
  59. package/lib/commonjs/ui/screens/SignUpScreen.js +4 -4
  60. package/lib/commonjs/ui/screens/SignUpScreen.js.map +1 -1
  61. package/lib/commonjs/ui/screens/UserLinksScreen.js +90 -0
  62. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -0
  63. package/lib/commonjs/ui/screens/internal/SignInPasswordStep.js +19 -31
  64. package/lib/commonjs/ui/screens/internal/SignInPasswordStep.js.map +1 -1
  65. package/lib/commonjs/ui/screens/internal/SignInUsernameStep.js +7 -10
  66. package/lib/commonjs/ui/screens/internal/SignInUsernameStep.js.map +1 -1
  67. package/lib/commonjs/ui/screens/internal/SignUpIdentityStep.js +11 -5
  68. package/lib/commonjs/ui/screens/internal/SignUpIdentityStep.js.map +1 -1
  69. package/lib/commonjs/ui/screens/internal/SignUpSecurityStep.js +11 -4
  70. package/lib/commonjs/ui/screens/internal/SignUpSecurityStep.js.map +1 -1
  71. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +9 -6
  72. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  73. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +3 -30
  74. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  75. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +37 -46
  76. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  77. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +9 -12
  78. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  79. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +9 -12
  80. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  81. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +9 -12
  82. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  83. package/lib/commonjs/ui/stores/authStore.js +36 -6
  84. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  85. package/lib/commonjs/ui/stores/followStore.js +106 -1
  86. package/lib/commonjs/ui/stores/followStore.js.map +1 -1
  87. package/lib/commonjs/ui/styles/authStyles.js +337 -0
  88. package/lib/commonjs/ui/styles/authStyles.js.map +1 -0
  89. package/lib/commonjs/ui/styles/index.js +11 -0
  90. package/lib/commonjs/ui/styles/index.js.map +1 -1
  91. package/lib/module/core/index.js +177 -41
  92. package/lib/module/core/index.js.map +1 -1
  93. package/lib/module/index.js +24 -4
  94. package/lib/module/index.js.map +1 -1
  95. package/lib/module/ui/components/Avatar.js +15 -6
  96. package/lib/module/ui/components/Avatar.js.map +1 -1
  97. package/lib/module/ui/components/FollowButton.js +101 -13
  98. package/lib/module/ui/components/FollowButton.js.map +1 -1
  99. package/lib/module/ui/components/GroupedItem.js +59 -14
  100. package/lib/module/ui/components/GroupedItem.js.map +1 -1
  101. package/lib/module/ui/components/GroupedSection.js +7 -1
  102. package/lib/module/ui/components/GroupedSection.js.map +1 -1
  103. package/lib/module/ui/components/Header.js +351 -0
  104. package/lib/module/ui/components/Header.js.map +1 -0
  105. package/lib/module/ui/components/OxyProvider.js +30 -9
  106. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  107. package/lib/module/ui/components/index.js +1 -0
  108. package/lib/module/ui/components/index.js.map +1 -1
  109. package/lib/module/ui/components/internal/GroupedPillButtons.js +1 -1
  110. package/lib/module/ui/components/internal/GroupedPillButtons.js.map +1 -1
  111. package/lib/module/ui/components/internal/TextField.js +607 -547
  112. package/lib/module/ui/components/internal/TextField.js.map +1 -1
  113. package/lib/module/ui/components/internal/TextField.md +436 -0
  114. package/lib/module/ui/context/OxyContext.js +180 -198
  115. package/lib/module/ui/context/OxyContext.js.map +1 -1
  116. package/lib/module/ui/hooks/index.js +1 -1
  117. package/lib/module/ui/hooks/index.js.map +1 -1
  118. package/lib/module/ui/hooks/useFollow.js +57 -1
  119. package/lib/module/ui/hooks/useFollow.js.map +1 -1
  120. package/lib/module/ui/hooks/useSessionSocket.js +5 -2
  121. package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
  122. package/lib/module/ui/navigation/OxyRouter.js +11 -1
  123. package/lib/module/ui/navigation/OxyRouter.js.map +1 -1
  124. package/lib/module/ui/screens/AccountCenterScreen.js +6 -6
  125. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  126. package/lib/module/ui/screens/AccountManagementDemo.js +3 -3
  127. package/lib/module/ui/screens/AccountManagementDemo.js.map +1 -1
  128. package/lib/module/ui/screens/AccountOverviewScreen.js +242 -597
  129. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  130. package/lib/module/ui/screens/AccountSettingsScreen.js +1161 -407
  131. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  132. package/lib/module/ui/screens/AccountSwitcherScreen.js +135 -237
  133. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  134. package/lib/module/ui/screens/AppInfoScreen.js +248 -465
  135. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  136. package/lib/module/ui/screens/FeedbackScreen.js +3 -3
  137. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  138. package/lib/module/ui/screens/PaymentGatewayScreen.js +809 -651
  139. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  140. package/lib/module/ui/screens/ProfileScreen.js +214 -37
  141. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  142. package/lib/module/ui/screens/RecoverAccountScreen.js +53 -74
  143. package/lib/module/ui/screens/RecoverAccountScreen.js.map +1 -1
  144. package/lib/module/ui/screens/SessionManagementScreen.js +11 -29
  145. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  146. package/lib/module/ui/screens/SignInScreen.js +32 -305
  147. package/lib/module/ui/screens/SignInScreen.js.map +1 -1
  148. package/lib/module/ui/screens/SignUpScreen.js +5 -5
  149. package/lib/module/ui/screens/SignUpScreen.js.map +1 -1
  150. package/lib/module/ui/screens/UserLinksScreen.js +85 -0
  151. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -0
  152. package/lib/module/ui/screens/internal/SignInPasswordStep.js +19 -31
  153. package/lib/module/ui/screens/internal/SignInPasswordStep.js.map +1 -1
  154. package/lib/module/ui/screens/internal/SignInUsernameStep.js +7 -10
  155. package/lib/module/ui/screens/internal/SignInUsernameStep.js.map +1 -1
  156. package/lib/module/ui/screens/internal/SignUpIdentityStep.js +11 -5
  157. package/lib/module/ui/screens/internal/SignUpIdentityStep.js.map +1 -1
  158. package/lib/module/ui/screens/internal/SignUpSecurityStep.js +11 -4
  159. package/lib/module/ui/screens/internal/SignUpSecurityStep.js.map +1 -1
  160. package/lib/module/ui/screens/karma/KarmaAboutScreen.js +9 -6
  161. package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  162. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +3 -30
  163. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  164. package/lib/module/ui/screens/karma/KarmaFAQScreen.js +37 -46
  165. package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  166. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +9 -12
  167. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  168. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +9 -12
  169. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  170. package/lib/module/ui/screens/karma/KarmaRulesScreen.js +9 -12
  171. package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  172. package/lib/module/ui/stores/authStore.js +36 -6
  173. package/lib/module/ui/stores/authStore.js.map +1 -1
  174. package/lib/module/ui/stores/followStore.js +106 -1
  175. package/lib/module/ui/stores/followStore.js.map +1 -1
  176. package/lib/module/ui/styles/authStyles.js +332 -0
  177. package/lib/module/ui/styles/authStyles.js.map +1 -0
  178. package/lib/module/ui/styles/index.js +1 -0
  179. package/lib/module/ui/styles/index.js.map +1 -1
  180. package/lib/typescript/core/index.d.ts +68 -24
  181. package/lib/typescript/core/index.d.ts.map +1 -1
  182. package/lib/typescript/index.d.ts +13 -3
  183. package/lib/typescript/index.d.ts.map +1 -1
  184. package/lib/typescript/ui/components/Avatar.d.ts.map +1 -1
  185. package/lib/typescript/ui/components/FollowButton.d.ts +1 -0
  186. package/lib/typescript/ui/components/FollowButton.d.ts.map +1 -1
  187. package/lib/typescript/ui/components/GroupedItem.d.ts +6 -0
  188. package/lib/typescript/ui/components/GroupedItem.d.ts.map +1 -1
  189. package/lib/typescript/ui/components/GroupedSection.d.ts +6 -0
  190. package/lib/typescript/ui/components/GroupedSection.d.ts.map +1 -1
  191. package/lib/typescript/ui/components/Header.d.ts +24 -0
  192. package/lib/typescript/ui/components/Header.d.ts.map +1 -0
  193. package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
  194. package/lib/typescript/ui/components/index.d.ts +1 -0
  195. package/lib/typescript/ui/components/index.d.ts.map +1 -1
  196. package/lib/typescript/ui/components/internal/TextField.d.ts +31 -16
  197. package/lib/typescript/ui/components/internal/TextField.d.ts.map +1 -1
  198. package/lib/typescript/ui/context/OxyContext.d.ts +5 -2
  199. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  200. package/lib/typescript/ui/hooks/index.d.ts +1 -1
  201. package/lib/typescript/ui/hooks/index.d.ts.map +1 -1
  202. package/lib/typescript/ui/hooks/useFollow.d.ts +20 -0
  203. package/lib/typescript/ui/hooks/useFollow.d.ts.map +1 -1
  204. package/lib/typescript/ui/hooks/useSessionSocket.d.ts.map +1 -1
  205. package/lib/typescript/ui/navigation/OxyRouter.d.ts.map +1 -1
  206. package/lib/typescript/ui/navigation/types.d.ts +9 -2
  207. package/lib/typescript/ui/navigation/types.d.ts.map +1 -1
  208. package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  209. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  210. package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  211. package/lib/typescript/ui/screens/AppInfoScreen.d.ts.map +1 -1
  212. package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  213. package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -1
  214. package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts +5 -1
  215. package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts.map +1 -1
  216. package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  217. package/lib/typescript/ui/screens/SignInScreen.d.ts.map +1 -1
  218. package/lib/typescript/ui/screens/UserLinksScreen.d.ts +15 -0
  219. package/lib/typescript/ui/screens/UserLinksScreen.d.ts.map +1 -0
  220. package/lib/typescript/ui/screens/internal/SignInPasswordStep.d.ts +1 -1
  221. package/lib/typescript/ui/screens/internal/SignInPasswordStep.d.ts.map +1 -1
  222. package/lib/typescript/ui/screens/internal/SignInUsernameStep.d.ts +0 -1
  223. package/lib/typescript/ui/screens/internal/SignInUsernameStep.d.ts.map +1 -1
  224. package/lib/typescript/ui/screens/internal/SignUpIdentityStep.d.ts.map +1 -1
  225. package/lib/typescript/ui/screens/internal/SignUpSecurityStep.d.ts.map +1 -1
  226. package/lib/typescript/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
  227. package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
  228. package/lib/typescript/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
  229. package/lib/typescript/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -1
  230. package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -1
  231. package/lib/typescript/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -1
  232. package/lib/typescript/ui/stores/authStore.d.ts +3 -1
  233. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
  234. package/lib/typescript/ui/stores/followStore.d.ts +10 -0
  235. package/lib/typescript/ui/stores/followStore.d.ts.map +1 -1
  236. package/lib/typescript/ui/styles/authStyles.d.ts +326 -0
  237. package/lib/typescript/ui/styles/authStyles.d.ts.map +1 -0
  238. package/lib/typescript/ui/styles/index.d.ts +1 -0
  239. package/lib/typescript/ui/styles/index.d.ts.map +1 -1
  240. package/package.json +1 -4
  241. package/src/core/index.ts +195 -41
  242. package/src/index.ts +64 -4
  243. package/src/ui/components/Avatar.tsx +11 -5
  244. package/src/ui/components/FollowButton.tsx +95 -11
  245. package/src/ui/components/GroupedItem.tsx +57 -9
  246. package/src/ui/components/GroupedSection.tsx +12 -0
  247. package/src/ui/components/Header.tsx +405 -0
  248. package/src/ui/components/OxyProvider.tsx +37 -15
  249. package/src/ui/components/index.ts +1 -0
  250. package/src/ui/components/internal/GroupedPillButtons.tsx +1 -1
  251. package/src/ui/components/internal/TextField.md +436 -0
  252. package/src/ui/components/internal/TextField.tsx +720 -620
  253. package/src/ui/context/OxyContext.tsx +211 -195
  254. package/src/ui/hooks/index.ts +1 -1
  255. package/src/ui/hooks/useFollow.ts +63 -0
  256. package/src/ui/hooks/useSessionSocket.ts +5 -2
  257. package/src/ui/navigation/OxyRouter.tsx +11 -1
  258. package/src/ui/navigation/types.ts +10 -2
  259. package/src/ui/screens/AccountCenterScreen.tsx +5 -5
  260. package/src/ui/screens/AccountManagementDemo.tsx +9 -9
  261. package/src/ui/screens/AccountOverviewScreen.tsx +265 -414
  262. package/src/ui/screens/AccountSettingsScreen.tsx +1173 -403
  263. package/src/ui/screens/AccountSwitcherScreen.tsx +158 -202
  264. package/src/ui/screens/AppInfoScreen.tsx +270 -497
  265. package/src/ui/screens/FeedbackScreen.tsx +3 -3
  266. package/src/ui/screens/PaymentGatewayScreen.tsx +668 -365
  267. package/src/ui/screens/ProfileScreen.tsx +196 -33
  268. package/src/ui/screens/RecoverAccountScreen.tsx +46 -74
  269. package/src/ui/screens/SessionManagementScreen.tsx +14 -22
  270. package/src/ui/screens/SignInScreen.tsx +27 -294
  271. package/src/ui/screens/SignUpScreen.tsx +5 -5
  272. package/src/ui/screens/UserLinksScreen.tsx +96 -0
  273. package/src/ui/screens/internal/SignInPasswordStep.tsx +11 -22
  274. package/src/ui/screens/internal/SignInUsernameStep.tsx +3 -10
  275. package/src/ui/screens/internal/SignUpIdentityStep.tsx +2 -5
  276. package/src/ui/screens/internal/SignUpSecurityStep.tsx +3 -4
  277. package/src/ui/screens/karma/KarmaAboutScreen.tsx +9 -2
  278. package/src/ui/screens/karma/KarmaCenterScreen.tsx +1 -20
  279. package/src/ui/screens/karma/KarmaFAQScreen.tsx +40 -24
  280. package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +9 -3
  281. package/src/ui/screens/karma/KarmaRewardsScreen.tsx +9 -3
  282. package/src/ui/screens/karma/KarmaRulesScreen.tsx +9 -3
  283. package/src/ui/stores/authStore.ts +34 -7
  284. package/src/ui/stores/followStore.ts +102 -1
  285. package/src/ui/styles/authStyles.ts +352 -0
  286. package/src/ui/styles/index.ts +1 -0
  287. package/lib/commonjs/core/auth-manager.js +0 -440
  288. package/lib/commonjs/core/auth-manager.js.map +0 -1
  289. package/lib/commonjs/core/use-auth.js +0 -244
  290. package/lib/commonjs/core/use-auth.js.map +0 -1
  291. package/lib/module/core/auth-manager.js +0 -432
  292. package/lib/module/core/auth-manager.js.map +0 -1
  293. package/lib/module/core/use-auth.js +0 -235
  294. package/lib/module/core/use-auth.js.map +0 -1
  295. package/lib/typescript/core/auth-manager.d.ts +0 -136
  296. package/lib/typescript/core/auth-manager.d.ts.map +0 -1
  297. package/lib/typescript/core/use-auth.d.ts +0 -79
  298. package/lib/typescript/core/use-auth.d.ts.map +0 -1
  299. package/src/__tests__/middleware.test.ts +0 -105
  300. package/src/__tests__/setup.ts +0 -10
  301. package/src/__tests__/zero-config-auth.test.ts +0 -607
  302. package/src/core/auth-manager.ts +0 -500
  303. package/src/core/use-auth.tsx +0 -245
@@ -7,7 +7,8 @@ import Avatar from '../components/Avatar';
7
7
  import OxyIcon from '../components/icon/OxyIcon';
8
8
  import { toast } from '../../lib/sonner';
9
9
  import { confirmAction } from '../utils/confirmAction';
10
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
10
+ import { Header, Section, GroupedSection, GroupedItem } from '../components';
11
+
11
12
  /**
12
13
  * AccountOverviewScreen - Optimized for performance
13
14
  *
@@ -16,7 +17,9 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
16
17
  * - useMemo for additional accounts filtering (only recalculates when dependencies change)
17
18
  * - useCallback for event handlers to prevent unnecessary re-renders
18
19
  * - React.memo wrapper to prevent re-renders when props haven't changed
20
+ * - GroupedSection components for better organization and cleaner code
19
21
  */
22
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
20
23
  const AccountOverviewScreen = ({
21
24
  onClose,
22
25
  theme,
@@ -153,545 +156,259 @@ const AccountOverviewScreen = ({
153
156
  style: [styles.container, {
154
157
  backgroundColor: '#f2f2f2'
155
158
  }],
156
- children: [/*#__PURE__*/_jsxs(View, {
157
- style: styles.header,
158
- children: [/*#__PURE__*/_jsx(Text, {
159
- style: styles.headerTitle,
160
- children: "Account"
161
- }), onClose && /*#__PURE__*/_jsx(TouchableOpacity, {
162
- style: styles.closeButton,
163
- onPress: onClose,
164
- children: /*#__PURE__*/_jsx(Text, {
165
- style: styles.closeButtonText,
166
- children: "\xD7"
167
- })
168
- })]
159
+ children: [/*#__PURE__*/_jsx(Header, {
160
+ title: "Account",
161
+ theme: theme,
162
+ onBack: onClose,
163
+ variant: "minimal",
164
+ elevation: "subtle"
169
165
  }), /*#__PURE__*/_jsxs(ScrollView, {
170
166
  style: styles.content,
171
- children: [/*#__PURE__*/_jsxs(View, {
172
- style: styles.section,
173
- children: [/*#__PURE__*/_jsx(Text, {
174
- style: styles.sectionTitle,
175
- children: "Profile"
176
- }), /*#__PURE__*/_jsxs(View, {
177
- style: [styles.settingItem, styles.firstSettingItem, styles.lastSettingItem],
178
- children: [/*#__PURE__*/_jsx(View, {
179
- style: styles.userIcon,
180
- children: /*#__PURE__*/_jsx(Avatar, {
181
- uri: user?.avatar?.url,
182
- name: user?.name?.full,
183
- size: 40,
184
- theme: theme
185
- })
186
- }), /*#__PURE__*/_jsx(View, {
187
- style: styles.settingInfo,
188
- children: /*#__PURE__*/_jsxs(View, {
189
- children: [/*#__PURE__*/_jsx(Text, {
190
- style: styles.settingLabel,
191
- children: user ? typeof user.name === 'string' ? user.name : user.name?.full || user.name?.first || user.username : 'Loading...'
192
- }), /*#__PURE__*/_jsx(Text, {
193
- style: styles.settingDescription,
194
- children: user ? user.email || user.username : 'Loading...'
167
+ children: [/*#__PURE__*/_jsx(Section, {
168
+ title: "Profile",
169
+ theme: theme,
170
+ isFirst: true,
171
+ children: /*#__PURE__*/_jsx(GroupedSection, {
172
+ items: [{
173
+ id: 'profile-info',
174
+ icon: 'person',
175
+ iconColor: '#007AFF',
176
+ title: user ? typeof user.name === 'string' ? user.name : user.name?.full || user.name?.first || user.username : 'Loading...',
177
+ subtitle: user ? user.email || user.username : 'Loading...',
178
+ onPress: () => toast.info('Manage your Oxy Account feature coming soon!'),
179
+ customContent: /*#__PURE__*/_jsxs(_Fragment, {
180
+ children: [/*#__PURE__*/_jsx(View, {
181
+ style: styles.userIcon,
182
+ children: /*#__PURE__*/_jsx(Avatar, {
183
+ uri: user?.avatar?.url,
184
+ name: user?.name?.full,
185
+ size: 40,
186
+ theme: theme
187
+ })
188
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
189
+ style: styles.manageButton,
190
+ onPress: () => toast.info('Manage your Oxy Account feature coming soon!'),
191
+ children: /*#__PURE__*/_jsx(Text, {
192
+ style: styles.manageButtonText,
193
+ children: "Manage"
194
+ })
195
195
  })]
196
196
  })
197
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
198
- style: styles.manageButton,
199
- onPress: () => toast.info('Manage your Oxy Account feature coming soon!'),
200
- children: /*#__PURE__*/_jsx(Text, {
201
- style: styles.manageButtonText,
202
- children: "Manage"
197
+ }],
198
+ theme: theme
199
+ })
200
+ }), /*#__PURE__*/_jsx(Section, {
201
+ title: "Account Settings",
202
+ theme: theme,
203
+ children: /*#__PURE__*/_jsx(GroupedSection, {
204
+ items: [{
205
+ id: 'edit-profile',
206
+ icon: 'person-circle',
207
+ iconColor: '#007AFF',
208
+ title: 'Edit Profile',
209
+ subtitle: 'Update your personal information',
210
+ onPress: () => navigate?.('EditProfile', {
211
+ activeTab: 'profile'
203
212
  })
204
- })]
205
- })]
206
- }), /*#__PURE__*/_jsxs(View, {
207
- style: styles.section,
208
- children: [/*#__PURE__*/_jsx(Text, {
209
- style: styles.sectionTitle,
210
- children: "Account Settings"
211
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
212
- style: [styles.settingItem, styles.firstSettingItem],
213
- onPress: () => navigate?.('AccountSettings', {
214
- activeTab: 'profile'
215
- }),
216
- children: [/*#__PURE__*/_jsxs(View, {
217
- style: styles.settingInfo,
218
- children: [/*#__PURE__*/_jsx(OxyIcon, {
219
- name: "person-circle",
220
- size: 20,
221
- color: "#007AFF",
222
- style: styles.settingIcon
223
- }), /*#__PURE__*/_jsxs(View, {
224
- children: [/*#__PURE__*/_jsx(Text, {
225
- style: styles.settingLabel,
226
- children: "Edit Profile"
227
- }), /*#__PURE__*/_jsx(Text, {
228
- style: styles.settingDescription,
229
- children: "Update your personal information"
230
- })]
231
- })]
232
- }), /*#__PURE__*/_jsx(OxyIcon, {
233
- name: "chevron-forward",
234
- size: 16,
235
- color: "#ccc"
236
- })]
237
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
238
- style: styles.settingItem,
239
- onPress: () => navigate?.('AccountSettings', {
240
- activeTab: 'password'
241
- }),
242
- children: [/*#__PURE__*/_jsxs(View, {
243
- style: styles.settingInfo,
244
- children: [/*#__PURE__*/_jsx(OxyIcon, {
245
- name: "shield-checkmark",
246
- size: 20,
247
- color: "#30D158",
248
- style: styles.settingIcon
249
- }), /*#__PURE__*/_jsxs(View, {
250
- children: [/*#__PURE__*/_jsx(Text, {
251
- style: styles.settingLabel,
252
- children: "Security & Privacy"
253
- }), /*#__PURE__*/_jsx(Text, {
254
- style: styles.settingDescription,
255
- children: "Password, 2FA, and privacy settings"
256
- })]
257
- })]
258
- }), /*#__PURE__*/_jsx(OxyIcon, {
259
- name: "chevron-forward",
260
- size: 16,
261
- color: "#ccc"
262
- })]
263
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
264
- style: styles.settingItem,
265
- onPress: () => navigate?.('AccountSettings', {
266
- activeTab: 'notifications'
267
- }),
268
- children: [/*#__PURE__*/_jsxs(View, {
269
- style: styles.settingInfo,
270
- children: [/*#__PURE__*/_jsx(OxyIcon, {
271
- name: "notifications",
272
- size: 20,
273
- color: "#FF9500",
274
- style: styles.settingIcon
275
- }), /*#__PURE__*/_jsxs(View, {
276
- children: [/*#__PURE__*/_jsx(Text, {
277
- style: styles.settingLabel,
278
- children: "Notifications"
279
- }), /*#__PURE__*/_jsx(Text, {
280
- style: styles.settingDescription,
281
- children: "Manage your notification preferences"
282
- })]
283
- })]
284
- }), /*#__PURE__*/_jsx(OxyIcon, {
285
- name: "chevron-forward",
286
- size: 16,
287
- color: "#ccc"
288
- })]
289
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
290
- style: [styles.settingItem],
291
- onPress: () => navigate?.('PremiumSubscription'),
292
- children: [/*#__PURE__*/_jsxs(View, {
293
- style: styles.settingInfo,
294
- children: [/*#__PURE__*/_jsx(OxyIcon, {
295
- name: "star",
296
- size: 20,
297
- color: "#FFD700",
298
- style: styles.settingIcon
299
- }), /*#__PURE__*/_jsxs(View, {
300
- children: [/*#__PURE__*/_jsx(Text, {
301
- style: styles.settingLabel,
302
- children: "Oxy+ Subscriptions"
303
- }), /*#__PURE__*/_jsx(Text, {
304
- style: styles.settingDescription,
305
- children: user?.isPremium ? 'Manage your premium plan' : 'Upgrade to premium features'
306
- })]
307
- })]
308
- }), /*#__PURE__*/_jsx(OxyIcon, {
309
- name: "chevron-forward",
310
- size: 16,
311
- color: "#ccc"
312
- })]
313
- }), user?.isPremium && /*#__PURE__*/_jsxs(TouchableOpacity, {
314
- style: [styles.settingItem, styles.lastSettingItem],
315
- children: [/*#__PURE__*/_jsxs(View, {
316
- style: styles.settingInfo,
317
- children: [/*#__PURE__*/_jsx(OxyIcon, {
318
- name: "card",
319
- size: 20,
320
- color: "#34C759",
321
- style: styles.settingIcon
322
- }), /*#__PURE__*/_jsxs(View, {
323
- children: [/*#__PURE__*/_jsx(Text, {
324
- style: styles.settingLabel,
325
- children: "Billing Management"
213
+ }, {
214
+ id: 'security-privacy',
215
+ icon: 'shield-checkmark',
216
+ iconColor: '#30D158',
217
+ title: 'Security & Privacy',
218
+ subtitle: 'Password, 2FA, and privacy settings',
219
+ onPress: () => navigate?.('EditProfile', {
220
+ activeTab: 'password'
221
+ })
222
+ }, {
223
+ id: 'notifications',
224
+ icon: 'notifications',
225
+ iconColor: '#FF9500',
226
+ title: 'Notifications',
227
+ subtitle: 'Manage your notification preferences',
228
+ onPress: () => navigate?.('EditProfile', {
229
+ activeTab: 'notifications'
230
+ })
231
+ }, {
232
+ id: 'premium-subscription',
233
+ icon: 'star',
234
+ iconColor: '#FFD700',
235
+ title: 'Oxy+ Subscriptions',
236
+ subtitle: user?.isPremium ? 'Manage your premium plan' : 'Upgrade to premium features',
237
+ onPress: () => navigate?.('PremiumSubscription')
238
+ }, ...(user?.isPremium ? [{
239
+ id: 'billing-management',
240
+ icon: 'card',
241
+ iconColor: '#34C759',
242
+ title: 'Billing Management',
243
+ subtitle: 'Payment methods and invoices',
244
+ onPress: () => toast.info('Billing management feature coming soon!')
245
+ }] : [])],
246
+ theme: theme
247
+ })
248
+ }), showMoreAccounts && /*#__PURE__*/_jsx(Section, {
249
+ title: `Additional Accounts${additionalAccountsData.length > 0 ? ` (${additionalAccountsData.length})` : ''}`,
250
+ theme: theme,
251
+ children: loadingAdditionalAccounts ? /*#__PURE__*/_jsx(GroupedSection, {
252
+ items: [{
253
+ id: 'loading-accounts',
254
+ icon: 'sync',
255
+ iconColor: '#007AFF',
256
+ title: 'Loading accounts...',
257
+ subtitle: 'Please wait while we load your additional accounts',
258
+ customContent: /*#__PURE__*/_jsxs(View, {
259
+ style: styles.loadingContainer,
260
+ children: [/*#__PURE__*/_jsx(ActivityIndicator, {
261
+ size: "small",
262
+ color: "#007AFF"
326
263
  }), /*#__PURE__*/_jsx(Text, {
327
- style: styles.settingDescription,
328
- children: "Payment methods and invoices"
264
+ style: styles.loadingText,
265
+ children: "Loading accounts..."
329
266
  })]
330
- })]
331
- }), /*#__PURE__*/_jsx(OxyIcon, {
332
- name: "chevron-forward",
333
- size: 16,
334
- color: "#ccc"
335
- })]
336
- })]
337
- }), showMoreAccounts && /*#__PURE__*/_jsxs(View, {
338
- style: styles.section,
339
- children: [/*#__PURE__*/_jsxs(Text, {
340
- style: styles.sectionTitle,
341
- children: ["Additional Accounts", additionalAccountsData.length > 0 ? ` (${additionalAccountsData.length})` : '']
342
- }), loadingAdditionalAccounts ? /*#__PURE__*/_jsx(View, {
343
- style: [styles.settingItem, styles.firstSettingItem, styles.lastSettingItem],
344
- children: /*#__PURE__*/_jsxs(View, {
345
- style: styles.loadingContainer,
346
- children: [/*#__PURE__*/_jsx(ActivityIndicator, {
347
- size: "small",
348
- color: "#007AFF"
349
- }), /*#__PURE__*/_jsx(Text, {
350
- style: styles.loadingText,
351
- children: "Loading accounts..."
352
- })]
353
- })
354
- }) : additionalAccountsData.length > 0 ? /*#__PURE__*/_jsx(_Fragment, {
355
- children: additionalAccountsData.map((account, index) => /*#__PURE__*/_jsxs(TouchableOpacity, {
356
- style: [styles.settingItem, index === 0 && styles.firstSettingItem, index === additionalAccountsData.length - 1 && styles.lastSettingItem],
267
+ })
268
+ }],
269
+ theme: theme
270
+ }) : additionalAccountsData.length > 0 ? /*#__PURE__*/_jsx(GroupedSection, {
271
+ items: additionalAccountsData.map((account, index) => ({
272
+ id: `account-${account.id}`,
273
+ icon: 'person',
274
+ iconColor: '#5856D6',
275
+ title: typeof account.name === 'object' ? account.name?.full || account.name?.first || account.username : account.name || account.username,
276
+ subtitle: account.email || account.username,
357
277
  onPress: () => {
358
278
  toast.info(`Switch to ${account.username}?`);
359
279
  // TODO: Implement account switching logic
360
280
  // switchSession(account.sessionId);
361
281
  },
362
- children: [/*#__PURE__*/_jsx(View, {
363
- style: styles.userIcon,
364
- children: account.avatar?.url ? /*#__PURE__*/_jsx(Image, {
365
- source: {
366
- uri: account.avatar.url
367
- },
368
- style: styles.accountAvatarImage
369
- }) : /*#__PURE__*/_jsx(View, {
370
- style: styles.accountAvatarFallback,
371
- children: /*#__PURE__*/_jsx(Text, {
372
- style: styles.accountAvatarText,
373
- children: account.username?.charAt(0).toUpperCase() || '?'
282
+ customContent: /*#__PURE__*/_jsxs(_Fragment, {
283
+ children: [/*#__PURE__*/_jsx(View, {
284
+ style: styles.userIcon,
285
+ children: account.avatar?.url ? /*#__PURE__*/_jsx(Image, {
286
+ source: {
287
+ uri: account.avatar.url
288
+ },
289
+ style: styles.accountAvatarImage
290
+ }) : /*#__PURE__*/_jsx(View, {
291
+ style: styles.accountAvatarFallback,
292
+ children: /*#__PURE__*/_jsx(Text, {
293
+ style: styles.accountAvatarText,
294
+ children: account.username?.charAt(0).toUpperCase() || '?'
295
+ })
374
296
  })
375
- })
376
- }), /*#__PURE__*/_jsx(View, {
377
- style: styles.settingInfo,
378
- children: /*#__PURE__*/_jsxs(View, {
379
- children: [/*#__PURE__*/_jsx(Text, {
380
- style: styles.settingLabel,
381
- children: typeof account.name === 'object' ? account.name?.full || account.name?.first || account.username : account.name || account.username
382
- }), /*#__PURE__*/_jsx(Text, {
383
- style: styles.settingDescription,
384
- children: account.email || account.username
385
- })]
386
- })
387
- }), /*#__PURE__*/_jsx(OxyIcon, {
388
- name: "chevron-forward",
389
- size: 16,
390
- color: "#ccc"
391
- })]
392
- }, account.id))
393
- }) : /*#__PURE__*/_jsx(View, {
394
- style: [styles.settingItem, styles.firstSettingItem, styles.lastSettingItem],
395
- children: /*#__PURE__*/_jsxs(View, {
396
- style: styles.settingInfo,
397
- children: [/*#__PURE__*/_jsx(OxyIcon, {
398
- name: "person-outline",
399
- size: 20,
400
- color: "#ccc",
401
- style: styles.settingIcon
402
- }), /*#__PURE__*/_jsxs(View, {
403
- children: [/*#__PURE__*/_jsx(Text, {
404
- style: styles.settingLabel,
405
- children: "No other accounts"
406
- }), /*#__PURE__*/_jsx(Text, {
407
- style: styles.settingDescription,
408
- children: "Add another account to switch between them"
409
- })]
410
- })]
411
- })
412
- })]
413
- }), showMoreAccounts && /*#__PURE__*/_jsxs(View, {
414
- style: styles.section,
415
- children: [/*#__PURE__*/_jsx(Text, {
416
- style: styles.sectionTitle,
417
- children: "Account Management"
418
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
419
- style: [styles.settingItem, styles.firstSettingItem],
420
- onPress: handleAddAccount,
421
- children: [/*#__PURE__*/_jsxs(View, {
422
- style: styles.settingInfo,
423
- children: [/*#__PURE__*/_jsx(OxyIcon, {
424
- name: "add",
425
- size: 20,
426
- color: "#007AFF",
427
- style: styles.settingIcon
428
- }), /*#__PURE__*/_jsxs(View, {
429
- children: [/*#__PURE__*/_jsx(Text, {
430
- style: styles.settingLabel,
431
- children: "Add another account"
432
- }), /*#__PURE__*/_jsx(Text, {
433
- style: styles.settingDescription,
434
- children: "Sign in with a different account"
435
- })]
436
- })]
437
- }), /*#__PURE__*/_jsx(OxyIcon, {
438
- name: "chevron-forward",
439
- size: 16,
440
- color: "#ccc"
441
- })]
442
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
443
- style: [styles.settingItem, styles.lastSettingItem],
444
- onPress: handleSignOutAll,
445
- children: [/*#__PURE__*/_jsxs(View, {
446
- style: styles.settingInfo,
447
- children: [/*#__PURE__*/_jsx(OxyIcon, {
448
- name: "log-out",
449
- size: 20,
450
- color: "#FF3B30",
451
- style: styles.settingIcon
452
- }), /*#__PURE__*/_jsxs(View, {
453
- children: [/*#__PURE__*/_jsx(Text, {
454
- style: styles.settingLabel,
455
- children: "Sign out of all accounts"
456
- }), /*#__PURE__*/_jsx(Text, {
457
- style: styles.settingDescription,
458
- children: "Remove all accounts from this device"
459
- })]
460
- })]
461
- }), /*#__PURE__*/_jsx(OxyIcon, {
462
- name: "chevron-forward",
463
- size: 16,
464
- color: "#ccc"
465
- })]
466
- })]
467
- }), /*#__PURE__*/_jsxs(View, {
468
- style: styles.section,
469
- children: [/*#__PURE__*/_jsx(Text, {
470
- style: styles.sectionTitle,
471
- children: "Quick Actions"
472
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
473
- style: [styles.settingItem, styles.firstSettingItem],
474
- onPress: () => setShowMoreAccounts(!showMoreAccounts),
475
- children: [/*#__PURE__*/_jsxs(View, {
476
- style: styles.settingInfo,
477
- children: [/*#__PURE__*/_jsx(OxyIcon, {
478
- name: "people",
479
- size: 20,
480
- color: "#5856D6",
481
- style: styles.settingIcon
482
- }), /*#__PURE__*/_jsxs(View, {
483
- children: [/*#__PURE__*/_jsxs(Text, {
484
- style: styles.settingLabel,
485
- children: [showMoreAccounts ? 'Hide' : 'Show', " Account Switcher"]
486
- }), /*#__PURE__*/_jsx(Text, {
487
- style: styles.settingDescription,
488
- children: showMoreAccounts ? 'Hide account switcher' : additionalAccountsData.length > 0 ? `Switch between ${additionalAccountsData.length + 1} accounts` : loadingAdditionalAccounts ? 'Loading additional accounts...' : 'Manage multiple accounts'
489
- })]
490
- })]
491
- }), /*#__PURE__*/_jsx(OxyIcon, {
492
- name: "chevron-forward",
493
- size: 16,
494
- color: "#ccc"
495
- })]
496
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
497
- style: styles.settingItem,
498
- onPress: () => toast.info('Download account data feature coming soon!'),
499
- children: [/*#__PURE__*/_jsxs(View, {
500
- style: styles.settingInfo,
501
- children: [/*#__PURE__*/_jsx(OxyIcon, {
502
- name: "download",
503
- size: 20,
504
- color: "#34C759",
505
- style: styles.settingIcon
506
- }), /*#__PURE__*/_jsxs(View, {
507
- children: [/*#__PURE__*/_jsx(Text, {
508
- style: styles.settingLabel,
509
- children: "Download My Data"
510
- }), /*#__PURE__*/_jsx(Text, {
511
- style: styles.settingDescription,
512
- children: "Export your account information"
513
- })]
514
- })]
515
- }), /*#__PURE__*/_jsx(OxyIcon, {
516
- name: "chevron-forward",
517
- size: 16,
518
- color: "#ccc"
519
- })]
520
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
521
- style: [styles.settingItem, styles.lastSettingItem],
522
- onPress: () => toast.info('Delete account feature coming soon!'),
523
- children: [/*#__PURE__*/_jsxs(View, {
524
- style: styles.settingInfo,
525
- children: [/*#__PURE__*/_jsx(OxyIcon, {
526
- name: "trash",
527
- size: 20,
528
- color: "#FF3B30",
529
- style: styles.settingIcon
530
- }), /*#__PURE__*/_jsxs(View, {
531
- children: [/*#__PURE__*/_jsx(Text, {
532
- style: styles.settingLabel,
533
- children: "Delete Account"
534
- }), /*#__PURE__*/_jsx(Text, {
535
- style: styles.settingDescription,
536
- children: "Permanently delete your account"
537
- })]
538
- })]
539
- }), /*#__PURE__*/_jsx(OxyIcon, {
540
- name: "chevron-forward",
541
- size: 16,
542
- color: "#ccc"
543
- })]
544
- })]
545
- }), /*#__PURE__*/_jsxs(View, {
546
- style: styles.section,
547
- children: [/*#__PURE__*/_jsx(Text, {
548
- style: styles.sectionTitle,
549
- children: "Support & Settings"
550
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
551
- style: [styles.settingItem, styles.firstSettingItem],
552
- onPress: () => toast.info('Account preferences coming soon!'),
553
- children: [/*#__PURE__*/_jsxs(View, {
554
- style: styles.settingInfo,
555
- children: [/*#__PURE__*/_jsx(OxyIcon, {
556
- name: "settings",
557
- size: 20,
558
- color: "#8E8E93",
559
- style: styles.settingIcon
560
- }), /*#__PURE__*/_jsxs(View, {
561
- children: [/*#__PURE__*/_jsx(Text, {
562
- style: styles.settingLabel,
563
- children: "Account Preferences"
564
- }), /*#__PURE__*/_jsx(Text, {
565
- style: styles.settingDescription,
566
- children: "Customize your account experience"
567
- })]
568
- })]
569
- }), /*#__PURE__*/_jsx(OxyIcon, {
570
- name: "chevron-forward",
571
- size: 16,
572
- color: "#ccc"
573
- })]
574
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
575
- style: styles.settingItem,
576
- onPress: () => toast.info('Help & support feature coming soon!'),
577
- children: [/*#__PURE__*/_jsxs(View, {
578
- style: styles.settingInfo,
579
- children: [/*#__PURE__*/_jsx(OxyIcon, {
580
- name: "help-circle",
581
- size: 20,
582
- color: "#007AFF",
583
- style: styles.settingIcon
584
- }), /*#__PURE__*/_jsxs(View, {
585
- children: [/*#__PURE__*/_jsx(Text, {
586
- style: styles.settingLabel,
587
- children: "Help & Support"
588
- }), /*#__PURE__*/_jsx(Text, {
589
- style: styles.settingDescription,
590
- children: "Get help with your account"
591
- })]
592
- })]
593
- }), /*#__PURE__*/_jsx(OxyIcon, {
594
- name: "chevron-forward",
595
- size: 16,
596
- color: "#ccc"
597
- })]
598
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
599
- style: styles.settingItem,
600
- onPress: () => toast.info('Connected apps feature coming soon!'),
601
- children: [/*#__PURE__*/_jsxs(View, {
602
- style: styles.settingInfo,
603
- children: [/*#__PURE__*/_jsx(OxyIcon, {
604
- name: "link",
605
- size: 20,
606
- color: "#32D74B",
607
- style: styles.settingIcon
608
- }), /*#__PURE__*/_jsxs(View, {
609
- children: [/*#__PURE__*/_jsx(Text, {
610
- style: styles.settingLabel,
611
- children: "Connected Apps"
612
- }), /*#__PURE__*/_jsx(Text, {
613
- style: styles.settingDescription,
614
- children: "Manage third-party app access"
615
- })]
616
- })]
617
- }), /*#__PURE__*/_jsx(OxyIcon, {
618
- name: "chevron-forward",
619
- size: 16,
620
- color: "#ccc"
621
- })]
622
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
623
- style: styles.settingItem,
624
- onPress: () => toast.info('Privacy Policy feature coming soon!'),
625
- children: [/*#__PURE__*/_jsxs(View, {
626
- style: styles.settingInfo,
627
- children: [/*#__PURE__*/_jsx(OxyIcon, {
628
- name: "document-lock",
629
- size: 20,
630
- color: "#FF9F0A",
631
- style: styles.settingIcon
632
- }), /*#__PURE__*/_jsxs(View, {
633
- children: [/*#__PURE__*/_jsx(Text, {
634
- style: styles.settingLabel,
635
- children: "Privacy Policy"
636
- }), /*#__PURE__*/_jsx(Text, {
637
- style: styles.settingDescription,
638
- children: "Learn about data protection"
297
+ }), /*#__PURE__*/_jsx(OxyIcon, {
298
+ name: "chevron-forward",
299
+ size: 16,
300
+ color: "#ccc"
639
301
  })]
640
- })]
641
- }), /*#__PURE__*/_jsx(OxyIcon, {
642
- name: "chevron-forward",
643
- size: 16,
644
- color: "#ccc"
645
- })]
646
- }), /*#__PURE__*/_jsxs(TouchableOpacity, {
647
- style: [styles.settingItem, styles.lastSettingItem],
648
- onPress: () => toast.info('Terms of Service feature coming soon!'),
649
- children: [/*#__PURE__*/_jsxs(View, {
650
- style: styles.settingInfo,
651
- children: [/*#__PURE__*/_jsx(OxyIcon, {
652
- name: "document-text",
653
- size: 20,
654
- color: "#5856D6",
655
- style: styles.settingIcon
656
- }), /*#__PURE__*/_jsxs(View, {
657
- children: [/*#__PURE__*/_jsx(Text, {
658
- style: styles.settingLabel,
659
- children: "Terms of Service"
660
- }), /*#__PURE__*/_jsx(Text, {
661
- style: styles.settingDescription,
662
- children: "Read our terms and conditions"
663
- })]
664
- })]
665
- }), /*#__PURE__*/_jsx(OxyIcon, {
666
- name: "chevron-forward",
667
- size: 16,
668
- color: "#ccc"
669
- })]
670
- })]
671
- }), /*#__PURE__*/_jsx(View, {
672
- style: styles.section,
673
- children: /*#__PURE__*/_jsx(TouchableOpacity, {
674
- style: [styles.settingItem, styles.firstSettingItem, styles.lastSettingItem, styles.signOutButton],
302
+ })
303
+ })),
304
+ theme: theme
305
+ }) : /*#__PURE__*/_jsx(GroupedSection, {
306
+ items: [{
307
+ id: 'no-accounts',
308
+ icon: 'person-outline',
309
+ iconColor: '#ccc',
310
+ title: 'No other accounts',
311
+ subtitle: 'Add another account to switch between them'
312
+ }],
313
+ theme: theme
314
+ })
315
+ }), showMoreAccounts && /*#__PURE__*/_jsx(Section, {
316
+ title: "Account Management",
317
+ theme: theme,
318
+ children: /*#__PURE__*/_jsx(GroupedSection, {
319
+ items: [{
320
+ id: 'add-account',
321
+ icon: 'add',
322
+ iconColor: '#007AFF',
323
+ title: 'Add another account',
324
+ subtitle: 'Sign in with a different account',
325
+ onPress: handleAddAccount
326
+ }, {
327
+ id: 'sign-out-all',
328
+ icon: 'log-out',
329
+ iconColor: '#FF3B30',
330
+ title: 'Sign out of all accounts',
331
+ subtitle: 'Remove all accounts from this device',
332
+ onPress: handleSignOutAll
333
+ }],
334
+ theme: theme
335
+ })
336
+ }), /*#__PURE__*/_jsx(Section, {
337
+ title: "Quick Actions",
338
+ theme: theme,
339
+ children: /*#__PURE__*/_jsx(GroupedSection, {
340
+ items: [{
341
+ id: 'account-switcher',
342
+ icon: 'people',
343
+ iconColor: '#5856D6',
344
+ title: `${showMoreAccounts ? 'Hide' : 'Show'} Account Switcher`,
345
+ subtitle: showMoreAccounts ? 'Hide account switcher' : additionalAccountsData.length > 0 ? `Switch between ${additionalAccountsData.length + 1} accounts` : loadingAdditionalAccounts ? 'Loading additional accounts...' : 'Manage multiple accounts',
346
+ onPress: () => setShowMoreAccounts(!showMoreAccounts)
347
+ }, {
348
+ id: 'download-data',
349
+ icon: 'download',
350
+ iconColor: '#34C759',
351
+ title: 'Download My Data',
352
+ subtitle: 'Export your account information',
353
+ onPress: () => toast.info('Download account data feature coming soon!')
354
+ }, {
355
+ id: 'delete-account',
356
+ icon: 'trash',
357
+ iconColor: '#FF3B30',
358
+ title: 'Delete Account',
359
+ subtitle: 'Permanently delete your account',
360
+ onPress: () => toast.info('Delete account feature coming soon!')
361
+ }],
362
+ theme: theme
363
+ })
364
+ }), /*#__PURE__*/_jsx(Section, {
365
+ title: "Support & Settings",
366
+ theme: theme,
367
+ children: /*#__PURE__*/_jsx(GroupedSection, {
368
+ items: [{
369
+ id: 'account-preferences',
370
+ icon: 'settings',
371
+ iconColor: '#8E8E93',
372
+ title: 'Account Preferences',
373
+ subtitle: 'Customize your account experience',
374
+ onPress: () => toast.info('Account preferences coming soon!')
375
+ }, {
376
+ id: 'help-support',
377
+ icon: 'help-circle',
378
+ iconColor: '#007AFF',
379
+ title: 'Help & Support',
380
+ subtitle: 'Get help with your account',
381
+ onPress: () => toast.info('Help & support feature coming soon!')
382
+ }, {
383
+ id: 'connected-apps',
384
+ icon: 'link',
385
+ iconColor: '#32D74B',
386
+ title: 'Connected Apps',
387
+ subtitle: 'Manage third-party app access',
388
+ onPress: () => toast.info('Connected apps feature coming soon!')
389
+ }, {
390
+ id: 'about',
391
+ icon: 'information-circle',
392
+ iconColor: '#8E8E93',
393
+ title: 'About',
394
+ subtitle: 'App version and information',
395
+ onPress: () => navigate?.('AppInfo')
396
+ }],
397
+ theme: theme
398
+ })
399
+ }), /*#__PURE__*/_jsx(Section, {
400
+ title: "Account Actions",
401
+ theme: theme,
402
+ children: /*#__PURE__*/_jsx(GroupedItem, {
403
+ icon: "log-out",
404
+ iconColor: "#FF3B30",
405
+ title: "Sign Out",
406
+ subtitle: "Sign out of your current account",
407
+ theme: theme,
675
408
  onPress: confirmLogout,
676
- children: /*#__PURE__*/_jsxs(View, {
677
- style: styles.settingInfo,
678
- children: [/*#__PURE__*/_jsx(OxyIcon, {
679
- name: "log-out",
680
- size: 20,
681
- color: "#ff4757",
682
- style: styles.settingIcon
683
- }), /*#__PURE__*/_jsxs(View, {
684
- children: [/*#__PURE__*/_jsx(Text, {
685
- style: [styles.settingLabel, {
686
- color: '#ff4757'
687
- }],
688
- children: "Sign Out"
689
- }), /*#__PURE__*/_jsx(Text, {
690
- style: styles.settingDescription,
691
- children: "Sign out of your account"
692
- })]
693
- })]
694
- })
409
+ isFirst: true,
410
+ isLast: true,
411
+ showChevron: false
695
412
  })
696
413
  })]
697
414
  })]
@@ -702,78 +419,10 @@ const styles = StyleSheet.create({
702
419
  flex: 1,
703
420
  backgroundColor: '#f2f2f2'
704
421
  },
705
- header: {
706
- paddingHorizontal: 20,
707
- paddingTop: 60,
708
- paddingBottom: 16,
709
- backgroundColor: '#fff',
710
- borderBottomWidth: 1,
711
- borderBottomColor: '#e0e0e0',
712
- flexDirection: 'row',
713
- justifyContent: 'space-between',
714
- alignItems: 'center'
715
- },
716
- headerTitle: {
717
- fontSize: 24,
718
- fontWeight: 'bold',
719
- color: '#000'
720
- },
721
- closeButton: {
722
- padding: 8
723
- },
724
- closeButtonText: {
725
- fontSize: 24,
726
- color: '#000',
727
- fontWeight: '300'
728
- },
729
422
  content: {
730
423
  flex: 1,
731
424
  padding: 16
732
425
  },
733
- section: {
734
- marginBottom: 24
735
- },
736
- sectionTitle: {
737
- fontSize: 16,
738
- fontWeight: '600',
739
- color: '#333',
740
- marginBottom: 12
741
- },
742
- settingItem: {
743
- backgroundColor: '#fff',
744
- padding: 16,
745
- flexDirection: 'row',
746
- alignItems: 'center',
747
- justifyContent: 'space-between',
748
- marginBottom: 2
749
- },
750
- firstSettingItem: {
751
- borderTopLeftRadius: 24,
752
- borderTopRightRadius: 24
753
- },
754
- lastSettingItem: {
755
- borderBottomLeftRadius: 24,
756
- borderBottomRightRadius: 24,
757
- marginBottom: 8
758
- },
759
- settingInfo: {
760
- flexDirection: 'row',
761
- alignItems: 'center',
762
- flex: 1
763
- },
764
- settingIcon: {
765
- marginRight: 12
766
- },
767
- settingLabel: {
768
- fontSize: 16,
769
- fontWeight: '500',
770
- color: '#333',
771
- marginBottom: 2
772
- },
773
- settingDescription: {
774
- fontSize: 14,
775
- color: '#666'
776
- },
777
426
  userIcon: {
778
427
  marginRight: 12
779
428
  },
@@ -806,10 +455,6 @@ const styles = StyleSheet.create({
806
455
  fontSize: 18,
807
456
  fontWeight: 'bold'
808
457
  },
809
- signOutButton: {
810
- borderWidth: 1,
811
- borderColor: '#ff4757'
812
- },
813
458
  message: {
814
459
  fontSize: 16,
815
460
  textAlign: 'center',