@oxyhq/services 13.0.2 → 13.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 (403) hide show
  1. package/lib/commonjs/index.js +18 -11
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/components/AccountMenuButton.js +8 -10
  4. package/lib/commonjs/ui/components/AccountMenuButton.js.map +1 -1
  5. package/lib/commonjs/ui/components/AccountSwitcher.js +65 -35
  6. package/lib/commonjs/ui/components/AccountSwitcher.js.map +1 -1
  7. package/lib/commonjs/ui/components/ProfileButton.js +233 -0
  8. package/lib/commonjs/ui/components/ProfileButton.js.map +1 -0
  9. package/lib/commonjs/ui/components/ProfileMenu.js +374 -0
  10. package/lib/commonjs/ui/components/ProfileMenu.js.map +1 -0
  11. package/lib/commonjs/ui/context/OxyContext.js +213 -101
  12. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  13. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +28 -1
  14. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  15. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +2 -2
  16. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  17. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js +12 -12
  18. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  19. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +8 -7
  20. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  21. package/lib/commonjs/ui/index.js +14 -0
  22. package/lib/commonjs/ui/index.js.map +1 -1
  23. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +11 -6
  24. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  25. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +3 -3
  26. package/lib/commonjs/ui/screens/CreateAccountScreen.js +6 -4
  27. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  28. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +8 -7
  29. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  30. package/lib/commonjs/ui/screens/FileManagementScreen.js +13 -13
  31. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  32. package/lib/commonjs/ui/screens/HistoryViewScreen.js +7 -7
  33. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  34. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +5 -5
  35. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  36. package/lib/commonjs/ui/screens/ManageAccountScreen.js +17 -18
  37. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  38. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +3 -3
  39. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  40. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +9 -9
  41. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  42. package/lib/commonjs/ui/screens/ProfileScreen.js +1 -1
  43. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  44. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +4 -4
  45. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  46. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +6 -6
  47. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  48. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +6 -6
  49. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  50. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +4 -4
  51. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  52. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +4 -4
  53. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  54. package/lib/commonjs/ui/utils/activeAuthuser.js +76 -8
  55. package/lib/commonjs/ui/utils/activeAuthuser.js.map +1 -1
  56. package/lib/module/index.js +5 -5
  57. package/lib/module/index.js.map +1 -1
  58. package/lib/module/ui/components/AccountMenuButton.js +8 -10
  59. package/lib/module/ui/components/AccountMenuButton.js.map +1 -1
  60. package/lib/module/ui/components/AccountSwitcher.js +65 -35
  61. package/lib/module/ui/components/AccountSwitcher.js.map +1 -1
  62. package/lib/module/ui/components/ProfileButton.js +228 -0
  63. package/lib/module/ui/components/ProfileButton.js.map +1 -0
  64. package/lib/module/ui/components/ProfileMenu.js +370 -0
  65. package/lib/module/ui/components/ProfileMenu.js.map +1 -0
  66. package/lib/module/ui/context/OxyContext.js +214 -102
  67. package/lib/module/ui/context/OxyContext.js.map +1 -1
  68. package/lib/module/ui/context/hooks/useAuthOperations.js +29 -2
  69. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  70. package/lib/module/ui/hooks/queries/useAccountQueries.js +2 -2
  71. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  72. package/lib/module/ui/hooks/queries/usePaymentQueries.js +12 -12
  73. package/lib/module/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  74. package/lib/module/ui/hooks/queries/useServicesQueries.js +9 -7
  75. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  76. package/lib/module/ui/index.js +2 -0
  77. package/lib/module/ui/index.js.map +1 -1
  78. package/lib/module/ui/screens/AccountSettingsScreen.js +11 -6
  79. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  80. package/lib/module/ui/screens/AccountSwitcherScreen.js +3 -3
  81. package/lib/module/ui/screens/CreateAccountScreen.js +6 -4
  82. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  83. package/lib/module/ui/screens/EditProfileFieldScreen.js +8 -7
  84. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  85. package/lib/module/ui/screens/FileManagementScreen.js +13 -13
  86. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  87. package/lib/module/ui/screens/HistoryViewScreen.js +7 -7
  88. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  89. package/lib/module/ui/screens/LanguageSelectorScreen.js +5 -5
  90. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  91. package/lib/module/ui/screens/ManageAccountScreen.js +17 -18
  92. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  93. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +3 -3
  94. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  95. package/lib/module/ui/screens/PrivacySettingsScreen.js +9 -9
  96. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  97. package/lib/module/ui/screens/ProfileScreen.js +1 -1
  98. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  99. package/lib/module/ui/screens/SavesCollectionsScreen.js +4 -4
  100. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  101. package/lib/module/ui/screens/SearchSettingsScreen.js +6 -6
  102. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  103. package/lib/module/ui/screens/WelcomeNewUserScreen.js +6 -6
  104. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  105. package/lib/module/ui/screens/trust/TrustCenterScreen.js +4 -4
  106. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  107. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +4 -4
  108. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  109. package/lib/module/ui/utils/activeAuthuser.js +74 -9
  110. package/lib/module/ui/utils/activeAuthuser.js.map +1 -1
  111. package/lib/typescript/commonjs/index.d.ts +4 -1
  112. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/ui/components/AccountMenuButton.d.ts +5 -7
  114. package/lib/typescript/commonjs/ui/components/AccountMenuButton.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/ui/components/AccountSwitcher.d.ts.map +1 -1
  116. package/lib/typescript/commonjs/ui/components/ActivityIndicator.d.ts +1 -1
  117. package/lib/typescript/commonjs/ui/components/ActivityIndicator.d.ts.map +1 -1
  118. package/lib/typescript/commonjs/ui/components/CrossFadeIcon.d.ts +2 -1
  119. package/lib/typescript/commonjs/ui/components/CrossFadeIcon.d.ts.map +1 -1
  120. package/lib/typescript/commonjs/ui/components/FontLoader.d.ts +1 -1
  121. package/lib/typescript/commonjs/ui/components/FontLoader.d.ts.map +1 -1
  122. package/lib/typescript/commonjs/ui/components/HelperText.d.ts +1 -1
  123. package/lib/typescript/commonjs/ui/components/HelperText.d.ts.map +1 -1
  124. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +46 -0
  125. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -0
  126. package/lib/typescript/commonjs/ui/components/ProfileMenu.d.ts +39 -0
  127. package/lib/typescript/commonjs/ui/components/ProfileMenu.d.ts.map +1 -0
  128. package/lib/typescript/commonjs/ui/components/TextField/Addons/Outline.d.ts +2 -1
  129. package/lib/typescript/commonjs/ui/components/TextField/Addons/Outline.d.ts.map +1 -1
  130. package/lib/typescript/commonjs/ui/components/TextField/Addons/Underline.d.ts +2 -1
  131. package/lib/typescript/commonjs/ui/components/TextField/Addons/Underline.d.ts.map +1 -1
  132. package/lib/typescript/commonjs/ui/components/TextField/Adornment/TextFieldAffix.d.ts +1 -1
  133. package/lib/typescript/commonjs/ui/components/TextField/Adornment/TextFieldIcon.d.ts +1 -1
  134. package/lib/typescript/commonjs/ui/components/TextField/Label/InputLabel.d.ts +1 -1
  135. package/lib/typescript/commonjs/ui/components/TextField/Label/LabelBackground.d.ts +2 -1
  136. package/lib/typescript/commonjs/ui/components/TextField/Label/LabelBackground.d.ts.map +1 -1
  137. package/lib/typescript/commonjs/ui/components/TextField/TextFieldFlat.d.ts +2 -1
  138. package/lib/typescript/commonjs/ui/components/TextField/TextFieldFlat.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/ui/components/TextField/TextFieldOutlined.d.ts +2 -1
  140. package/lib/typescript/commonjs/ui/components/TextField/TextFieldOutlined.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +11 -26
  142. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/ui/context/ThemeContext.d.ts +1 -1
  144. package/lib/typescript/commonjs/ui/context/ThemeContext.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  146. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/ui/index.d.ts +2 -0
  148. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  150. package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts +3 -3
  151. package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  152. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  153. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  154. package/lib/typescript/commonjs/ui/utils/activeAuthuser.d.ts +24 -0
  155. package/lib/typescript/commonjs/ui/utils/activeAuthuser.d.ts.map +1 -1
  156. package/lib/typescript/module/index.d.ts +64 -61
  157. package/lib/typescript/module/index.d.ts.map +1 -1
  158. package/lib/typescript/module/ui/client.d.ts +26 -26
  159. package/lib/typescript/module/ui/client.d.ts.map +1 -1
  160. package/lib/typescript/module/ui/components/AccountMenuButton.d.ts +5 -7
  161. package/lib/typescript/module/ui/components/AccountMenuButton.d.ts.map +1 -1
  162. package/lib/typescript/module/ui/components/AccountSwitcher.d.ts +1 -1
  163. package/lib/typescript/module/ui/components/AccountSwitcher.d.ts.map +1 -1
  164. package/lib/typescript/module/ui/components/ActivityIndicator.d.ts +2 -2
  165. package/lib/typescript/module/ui/components/ActivityIndicator.d.ts.map +1 -1
  166. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts +1 -1
  167. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts.map +1 -1
  168. package/lib/typescript/module/ui/components/CrossFadeIcon.d.ts +4 -3
  169. package/lib/typescript/module/ui/components/CrossFadeIcon.d.ts.map +1 -1
  170. package/lib/typescript/module/ui/components/FontLoader.d.ts +1 -1
  171. package/lib/typescript/module/ui/components/FontLoader.d.ts.map +1 -1
  172. package/lib/typescript/module/ui/components/HelperText.d.ts +1 -1
  173. package/lib/typescript/module/ui/components/HelperText.d.ts.map +1 -1
  174. package/lib/typescript/module/ui/components/Icon.d.ts +1 -1
  175. package/lib/typescript/module/ui/components/Icon.d.ts.map +1 -1
  176. package/lib/typescript/module/ui/components/IconButton/IconButton.d.ts +3 -3
  177. package/lib/typescript/module/ui/components/IconButton/IconButton.d.ts.map +1 -1
  178. package/lib/typescript/module/ui/components/IconButton/utils.d.ts +1 -1
  179. package/lib/typescript/module/ui/components/IconButton/utils.d.ts.map +1 -1
  180. package/lib/typescript/module/ui/components/OxyPayButton.d.ts +1 -1
  181. package/lib/typescript/module/ui/components/OxyPayButton.d.ts.map +1 -1
  182. package/lib/typescript/module/ui/components/OxyProvider.d.ts +1 -1
  183. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  184. package/lib/typescript/module/ui/components/ProfileButton.d.ts +46 -0
  185. package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -0
  186. package/lib/typescript/module/ui/components/ProfileMenu.d.ts +39 -0
  187. package/lib/typescript/module/ui/components/ProfileMenu.d.ts.map +1 -0
  188. package/lib/typescript/module/ui/components/StepBasedScreen.d.ts +2 -2
  189. package/lib/typescript/module/ui/components/StepBasedScreen.d.ts.map +1 -1
  190. package/lib/typescript/module/ui/components/Surface.d.ts +2 -2
  191. package/lib/typescript/module/ui/components/Surface.d.ts.map +1 -1
  192. package/lib/typescript/module/ui/components/TextField/Addons/Outline.d.ts +3 -2
  193. package/lib/typescript/module/ui/components/TextField/Addons/Outline.d.ts.map +1 -1
  194. package/lib/typescript/module/ui/components/TextField/Addons/Underline.d.ts +3 -2
  195. package/lib/typescript/module/ui/components/TextField/Addons/Underline.d.ts.map +1 -1
  196. package/lib/typescript/module/ui/components/TextField/Adornment/TextFieldAdornment.d.ts +3 -3
  197. package/lib/typescript/module/ui/components/TextField/Adornment/TextFieldAdornment.d.ts.map +1 -1
  198. package/lib/typescript/module/ui/components/TextField/Adornment/TextFieldAffix.d.ts +3 -3
  199. package/lib/typescript/module/ui/components/TextField/Adornment/TextFieldAffix.d.ts.map +1 -1
  200. package/lib/typescript/module/ui/components/TextField/Adornment/TextFieldIcon.d.ts +4 -4
  201. package/lib/typescript/module/ui/components/TextField/Adornment/TextFieldIcon.d.ts.map +1 -1
  202. package/lib/typescript/module/ui/components/TextField/Adornment/types.d.ts +1 -1
  203. package/lib/typescript/module/ui/components/TextField/Adornment/types.d.ts.map +1 -1
  204. package/lib/typescript/module/ui/components/TextField/Adornment/utils.d.ts +1 -1
  205. package/lib/typescript/module/ui/components/TextField/Adornment/utils.d.ts.map +1 -1
  206. package/lib/typescript/module/ui/components/TextField/Label/InputLabel.d.ts +2 -2
  207. package/lib/typescript/module/ui/components/TextField/Label/InputLabel.d.ts.map +1 -1
  208. package/lib/typescript/module/ui/components/TextField/Label/LabelBackground.d.ts +3 -2
  209. package/lib/typescript/module/ui/components/TextField/Label/LabelBackground.d.ts.map +1 -1
  210. package/lib/typescript/module/ui/components/TextField/TextFieldFlat.d.ts +3 -2
  211. package/lib/typescript/module/ui/components/TextField/TextFieldFlat.d.ts.map +1 -1
  212. package/lib/typescript/module/ui/components/TextField/TextFieldOutlined.d.ts +3 -2
  213. package/lib/typescript/module/ui/components/TextField/TextFieldOutlined.d.ts.map +1 -1
  214. package/lib/typescript/module/ui/components/TextField/helpers.d.ts +3 -3
  215. package/lib/typescript/module/ui/components/TextField/helpers.d.ts.map +1 -1
  216. package/lib/typescript/module/ui/components/TextField/types.d.ts +1 -1
  217. package/lib/typescript/module/ui/components/TextField/types.d.ts.map +1 -1
  218. package/lib/typescript/module/ui/components/TextField.d.ts +4 -4
  219. package/lib/typescript/module/ui/components/TextField.d.ts.map +1 -1
  220. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.d.ts +3 -3
  221. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.d.ts.map +1 -1
  222. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.native.d.ts +3 -3
  223. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +1 -1
  224. package/lib/typescript/module/ui/components/TouchableRipple/utils.d.ts +1 -1
  225. package/lib/typescript/module/ui/components/TouchableRipple/utils.d.ts.map +1 -1
  226. package/lib/typescript/module/ui/components/Typography/AnimatedText.d.ts +3 -3
  227. package/lib/typescript/module/ui/components/Typography/AnimatedText.d.ts.map +1 -1
  228. package/lib/typescript/module/ui/components/accountMenuRows.d.ts +1 -1
  229. package/lib/typescript/module/ui/components/accountMenuRows.d.ts.map +1 -1
  230. package/lib/typescript/module/ui/components/feedback/ProgressIndicator.d.ts +1 -1
  231. package/lib/typescript/module/ui/components/feedback/ProgressIndicator.d.ts.map +1 -1
  232. package/lib/typescript/module/ui/components/feedback/constants.d.ts +1 -1
  233. package/lib/typescript/module/ui/components/feedback/constants.d.ts.map +1 -1
  234. package/lib/typescript/module/ui/components/feedback/useFeedbackForm.d.ts +1 -1
  235. package/lib/typescript/module/ui/components/feedback/useFeedbackForm.d.ts.map +1 -1
  236. package/lib/typescript/module/ui/components/payment/PaymentDetailsStep.d.ts +1 -1
  237. package/lib/typescript/module/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  238. package/lib/typescript/module/ui/components/payment/PaymentMethodStep.d.ts +1 -1
  239. package/lib/typescript/module/ui/components/payment/PaymentMethodStep.d.ts.map +1 -1
  240. package/lib/typescript/module/ui/components/payment/PaymentReviewStep.d.ts +1 -1
  241. package/lib/typescript/module/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
  242. package/lib/typescript/module/ui/components/payment/PaymentSuccessStep.d.ts +1 -1
  243. package/lib/typescript/module/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
  244. package/lib/typescript/module/ui/components/payment/PaymentSummaryStep.d.ts +1 -1
  245. package/lib/typescript/module/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
  246. package/lib/typescript/module/ui/components/payment/constants.d.ts +1 -1
  247. package/lib/typescript/module/ui/components/payment/constants.d.ts.map +1 -1
  248. package/lib/typescript/module/ui/components/payment/paymentStyles.d.ts +1 -1
  249. package/lib/typescript/module/ui/components/payment/paymentStyles.d.ts.map +1 -1
  250. package/lib/typescript/module/ui/components/theming.d.ts +1 -1
  251. package/lib/typescript/module/ui/components/theming.d.ts.map +1 -1
  252. package/lib/typescript/module/ui/context/OxyContext.d.ts +14 -29
  253. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  254. package/lib/typescript/module/ui/context/ThemeContext.d.ts +1 -1
  255. package/lib/typescript/module/ui/context/ThemeContext.d.ts.map +1 -1
  256. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +2 -2
  257. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  258. package/lib/typescript/module/ui/hooks/queries/usePaymentQueries.d.ts +1 -1
  259. package/lib/typescript/module/ui/hooks/queries/usePaymentQueries.d.ts.map +1 -1
  260. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  261. package/lib/typescript/module/ui/hooks/queryClient.d.ts +1 -1
  262. package/lib/typescript/module/ui/hooks/queryClient.d.ts.map +1 -1
  263. package/lib/typescript/module/ui/hooks/useAuth.d.ts +1 -1
  264. package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
  265. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +1 -1
  266. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  267. package/lib/typescript/module/ui/hooks/useLanguageManagement.d.ts +1 -1
  268. package/lib/typescript/module/ui/hooks/useLanguageManagement.d.ts.map +1 -1
  269. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts +1 -1
  270. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
  271. package/lib/typescript/module/ui/hooks/useStorage.d.ts +1 -1
  272. package/lib/typescript/module/ui/hooks/useStorage.d.ts.map +1 -1
  273. package/lib/typescript/module/ui/index.d.ts +30 -28
  274. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  275. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +1 -1
  276. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  277. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  278. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  279. package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts +1 -1
  280. package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  281. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts +1 -1
  282. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  283. package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts +4 -4
  284. package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  285. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts +1 -1
  286. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  287. package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts +1 -1
  288. package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
  289. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts +1 -1
  290. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  291. package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts +1 -1
  292. package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  293. package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts +1 -1
  294. package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  295. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts +1 -1
  296. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  297. package/lib/typescript/module/ui/screens/FAQScreen.d.ts +1 -1
  298. package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +1 -1
  299. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts +1 -1
  300. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  301. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts +1 -1
  302. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  303. package/lib/typescript/module/ui/screens/FollowersListScreen.d.ts +1 -1
  304. package/lib/typescript/module/ui/screens/FollowersListScreen.d.ts.map +1 -1
  305. package/lib/typescript/module/ui/screens/FollowingListScreen.d.ts +1 -1
  306. package/lib/typescript/module/ui/screens/FollowingListScreen.d.ts.map +1 -1
  307. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts +1 -1
  308. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  309. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts +1 -1
  310. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  311. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts +1 -1
  312. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  313. package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts +1 -1
  314. package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  315. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts +1 -1
  316. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  317. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts +1 -1
  318. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  319. package/lib/typescript/module/ui/screens/NotificationsScreen.d.ts +1 -1
  320. package/lib/typescript/module/ui/screens/NotificationsScreen.d.ts.map +1 -1
  321. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts +1 -1
  322. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  323. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts +2 -2
  324. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  325. package/lib/typescript/module/ui/screens/PreferencesScreen.d.ts +1 -1
  326. package/lib/typescript/module/ui/screens/PreferencesScreen.d.ts.map +1 -1
  327. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts +1 -1
  328. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  329. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts +1 -1
  330. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  331. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts +1 -1
  332. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  333. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts +1 -1
  334. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  335. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts +1 -1
  336. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  337. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts +1 -1
  338. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  339. package/lib/typescript/module/ui/screens/UserListScreen.d.ts +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 +1 -1
  342. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  343. package/lib/typescript/module/ui/screens/trust/TrustAboutScreen.d.ts +1 -1
  344. package/lib/typescript/module/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  345. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts +1 -1
  346. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  347. package/lib/typescript/module/ui/screens/trust/TrustFAQScreen.d.ts +1 -1
  348. package/lib/typescript/module/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  349. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts +1 -1
  350. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  351. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts +1 -1
  352. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  353. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts +1 -1
  354. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  355. package/lib/typescript/module/ui/server.d.ts +2 -2
  356. package/lib/typescript/module/ui/server.d.ts.map +1 -1
  357. package/lib/typescript/module/ui/types/fileManagement.d.ts +1 -1
  358. package/lib/typescript/module/ui/types/fileManagement.d.ts.map +1 -1
  359. package/lib/typescript/module/ui/types/navigation.d.ts +1 -1
  360. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  361. package/lib/typescript/module/ui/utils/activeAuthuser.d.ts +24 -0
  362. package/lib/typescript/module/ui/utils/activeAuthuser.d.ts.map +1 -1
  363. package/lib/typescript/module/ui/utils/fileManagement.d.ts +1 -1
  364. package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
  365. package/package.json +21 -20
  366. package/src/index.ts +8 -5
  367. package/src/ui/components/AccountMenuButton.tsx +9 -11
  368. package/src/ui/components/AccountSwitcher.tsx +71 -37
  369. package/src/ui/components/ProfileButton.tsx +270 -0
  370. package/src/ui/components/ProfileMenu.tsx +416 -0
  371. package/src/ui/context/OxyContext.tsx +217 -130
  372. package/src/ui/context/hooks/useAuthOperations.ts +35 -2
  373. package/src/ui/hooks/queries/useAccountQueries.ts +2 -2
  374. package/src/ui/hooks/queries/usePaymentQueries.ts +12 -12
  375. package/src/ui/hooks/queries/useServicesQueries.ts +9 -6
  376. package/src/ui/index.ts +2 -0
  377. package/src/ui/screens/AccountSettingsScreen.tsx +9 -5
  378. package/src/ui/screens/AccountSwitcherScreen.tsx +3 -3
  379. package/src/ui/screens/CreateAccountScreen.tsx +6 -4
  380. package/src/ui/screens/EditProfileFieldScreen.tsx +8 -7
  381. package/src/ui/screens/FileManagementScreen.tsx +13 -13
  382. package/src/ui/screens/HistoryViewScreen.tsx +7 -7
  383. package/src/ui/screens/LanguageSelectorScreen.tsx +5 -5
  384. package/src/ui/screens/ManageAccountScreen.tsx +17 -18
  385. package/src/ui/screens/PremiumSubscriptionScreen.tsx +3 -3
  386. package/src/ui/screens/PrivacySettingsScreen.tsx +9 -9
  387. package/src/ui/screens/ProfileScreen.tsx +1 -1
  388. package/src/ui/screens/SavesCollectionsScreen.tsx +5 -5
  389. package/src/ui/screens/SearchSettingsScreen.tsx +6 -6
  390. package/src/ui/screens/WelcomeNewUserScreen.tsx +6 -6
  391. package/src/ui/screens/trust/TrustCenterScreen.tsx +5 -5
  392. package/src/ui/screens/trust/TrustRewardsScreen.tsx +4 -4
  393. package/src/ui/utils/__tests__/activeAuthuser.test.ts +75 -0
  394. package/src/ui/utils/activeAuthuser.ts +74 -8
  395. package/lib/commonjs/ui/components/ActiveAccountBanner.js +0 -144
  396. package/lib/commonjs/ui/components/ActiveAccountBanner.js.map +0 -1
  397. package/lib/module/ui/components/ActiveAccountBanner.js +0 -141
  398. package/lib/module/ui/components/ActiveAccountBanner.js.map +0 -1
  399. package/lib/typescript/commonjs/ui/components/ActiveAccountBanner.d.ts +0 -4
  400. package/lib/typescript/commonjs/ui/components/ActiveAccountBanner.d.ts.map +0 -1
  401. package/lib/typescript/module/ui/components/ActiveAccountBanner.d.ts +0 -4
  402. package/lib/typescript/module/ui/components/ActiveAccountBanner.d.ts.map +0 -1
  403. package/src/ui/components/ActiveAccountBanner.tsx +0 -130
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _vectorIcons = require("@expo/vector-icons");
10
+ var _avatar = require("@oxyhq/bloom/avatar");
11
+ var _typography = require("@oxyhq/bloom/typography");
12
+ var _theme = require("@oxyhq/bloom/theme");
13
+ var _core = require("@oxyhq/core");
14
+ var _useAuth = require("../hooks/useAuth.js");
15
+ var _useI18n = require("../hooks/useI18n.js");
16
+ var _ProfileMenu = _interopRequireDefault(require("./ProfileMenu.js"));
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
+ const isWeb = _reactNative.Platform.OS === 'web';
20
+
21
+ /**
22
+ * Fixed popover width used by {@link ProfileMenu} on web. `ProfileButton`
23
+ * mirrors this constant when computing the trigger-relative anchor so the
24
+ * left-edge clamp keeps the panel fully on-screen. Keep the two in sync.
25
+ */
26
+ const MENU_WIDTH = 300;
27
+
28
+ /** Gutter, in px, kept between the popover and the viewport edges on web. */
29
+ const VIEWPORT_GUTTER = 8;
30
+ /**
31
+ * Self-contained sidebar account trigger, modeled on Bluesky's ProfileCard and
32
+ * the Oxy inbox's `MailboxDrawer` footer. Owns its own open state + anchor
33
+ * measurement, and renders {@link ProfileMenu} (the device-account switcher).
34
+ *
35
+ * Three auth states from {@link useAuth}:
36
+ * - **Undetermined** (`!isAuthResolved || isPrivateApiPending`): a neutral
37
+ * avatar-sized skeleton circle, no press.
38
+ * - **Signed in**: a pressable row — Bloom `Avatar` + display name + `@handle`
39
+ * + an `unfold-more-horizontal` chevron. Press opens the menu upward (web)
40
+ * against the measured trigger, or as a bottom sheet (native).
41
+ * - **Signed out**: a "Sign in" row that calls `useAuth().signIn()`.
42
+ *
43
+ * All display strings resolve through `@oxyhq/core`'s
44
+ * `getAccountDisplayName` / `getAccountFallbackHandle` — no hand-rolled name
45
+ * fallbacks. Avatars pass the bare file id as `source` + `variant="thumb"`, so
46
+ * the app's registered `ImageResolver` builds the thumbnail URL.
47
+ */
48
+ const ProfileButton = ({
49
+ expanded = true,
50
+ avatarSize,
51
+ onNavigateManage,
52
+ onAddAccount,
53
+ onNavigateProfile,
54
+ onBeforeSessionChange,
55
+ className,
56
+ style
57
+ }) => {
58
+ const {
59
+ user,
60
+ isAuthenticated,
61
+ isAuthResolved,
62
+ isPrivateApiPending,
63
+ signIn
64
+ } = (0, _useAuth.useAuth)();
65
+ const {
66
+ colors
67
+ } = (0, _theme.useTheme)();
68
+ const {
69
+ t,
70
+ locale
71
+ } = (0, _useI18n.useI18n)();
72
+ const [menuOpen, setMenuOpen] = (0, _react.useState)(false);
73
+ const [anchor, setAnchor] = (0, _react.useState)(null);
74
+
75
+ // Trigger ref for the web anchor measurement. RN-Web exposes `measure()` on
76
+ // host views, so we anchor the popover to the button rect and open upward.
77
+ const triggerRef = (0, _react.useRef)(null);
78
+ const resolvedAvatarSize = avatarSize ?? (expanded ? 40 : 32);
79
+ const openMenu = (0, _react.useCallback)(() => {
80
+ if (!isWeb) {
81
+ setAnchor(null);
82
+ setMenuOpen(true);
83
+ return;
84
+ }
85
+ const node = triggerRef.current;
86
+ if (!node || typeof node.measure !== 'function' || typeof window === 'undefined') {
87
+ setAnchor(null);
88
+ setMenuOpen(true);
89
+ return;
90
+ }
91
+ node.measure((_x, _y, _w, _h, pageX, pageY) => {
92
+ if (typeof pageX !== 'number' || typeof pageY !== 'number') {
93
+ setAnchor(null);
94
+ } else {
95
+ // Clamp the panel's left edge inside the viewport gutter.
96
+ const maxLeft = Math.max(VIEWPORT_GUTTER, window.innerWidth - MENU_WIDTH - VIEWPORT_GUTTER);
97
+ const left = Math.min(Math.max(VIEWPORT_GUTTER, pageX), maxLeft);
98
+ // Anchor the panel's BOTTOM edge just above the trigger top so
99
+ // the menu opens upward from this footer button.
100
+ const bottom = Math.max(VIEWPORT_GUTTER, window.innerHeight - pageY + VIEWPORT_GUTTER);
101
+ setAnchor({
102
+ left,
103
+ bottom
104
+ });
105
+ }
106
+ setMenuOpen(true);
107
+ });
108
+ }, []);
109
+ const handleClose = (0, _react.useCallback)(() => {
110
+ setMenuOpen(false);
111
+ }, []);
112
+
113
+ // ── Undetermined: skeleton circle, no interaction. ──────────────────────
114
+ if (!isAuthResolved || isPrivateApiPending) {
115
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
116
+ className: className,
117
+ style: style,
118
+ accessibilityElementsHidden: true,
119
+ importantForAccessibility: "no-hide-descendants",
120
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
121
+ className: "rounded-full bg-secondary",
122
+ style: {
123
+ width: resolvedAvatarSize,
124
+ height: resolvedAvatarSize
125
+ }
126
+ })
127
+ });
128
+ }
129
+
130
+ // ── Signed out: "Sign in" row. ──────────────────────────────────────────
131
+ if (!isAuthenticated || !user) {
132
+ const signInLabel = t('common.actions.signIn') || 'Sign in';
133
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
134
+ className: `flex-row items-center gap-3 rounded-full px-2 py-2 ${className ?? ''}`,
135
+ style: style,
136
+ onPress: () => {
137
+ void signIn();
138
+ },
139
+ accessibilityRole: "button",
140
+ accessibilityLabel: signInLabel,
141
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
142
+ className: "items-center justify-center rounded-full bg-secondary",
143
+ style: {
144
+ width: resolvedAvatarSize,
145
+ height: resolvedAvatarSize
146
+ },
147
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.MaterialCommunityIcons, {
148
+ name: "login",
149
+ size: Math.round(resolvedAvatarSize * 0.5),
150
+ color: colors.icon
151
+ })
152
+ }), expanded ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
153
+ className: "flex-1 font-semibold text-foreground",
154
+ numberOfLines: 1,
155
+ children: signInLabel
156
+ }) : null]
157
+ });
158
+ }
159
+
160
+ // ── Signed in: avatar + identity + chevron. ─────────────────────────────
161
+ const displayName = (0, _core.getAccountDisplayName)(user, locale);
162
+ const handle = (0, _core.getAccountFallbackHandle)(user);
163
+ const handleLine = handle ? `@${handle}` : null;
164
+ const avatarNode = /*#__PURE__*/(0, _jsxRuntime.jsx)(_avatar.Avatar, {
165
+ source: user.avatar ?? undefined,
166
+ variant: "thumb",
167
+ name: displayName,
168
+ size: resolvedAvatarSize
169
+ });
170
+ if (!expanded) {
171
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
172
+ className: className,
173
+ style: style,
174
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
175
+ ref: triggerRef,
176
+ className: "rounded-full",
177
+ onPress: openMenu,
178
+ accessibilityRole: "button",
179
+ accessibilityLabel: t('accountSwitcher.switchWhileSignedInAs', {
180
+ name: displayName
181
+ }) || `Switch account, signed in as ${displayName}`,
182
+ children: avatarNode
183
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ProfileMenu.default, {
184
+ open: menuOpen,
185
+ onClose: handleClose,
186
+ anchor: anchor,
187
+ onNavigateManage: onNavigateManage,
188
+ onAddAccount: onAddAccount,
189
+ onNavigateProfile: onNavigateProfile,
190
+ onBeforeSessionChange: onBeforeSessionChange
191
+ })]
192
+ });
193
+ }
194
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
195
+ className: className,
196
+ style: style,
197
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
198
+ ref: triggerRef,
199
+ className: "flex-row items-center gap-3 rounded-full px-2 py-2",
200
+ onPress: openMenu,
201
+ accessibilityRole: "button",
202
+ accessibilityLabel: t('accountSwitcher.switchWhileSignedInAs', {
203
+ name: displayName
204
+ }) || `Switch account, signed in as ${displayName}`,
205
+ children: [avatarNode, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
206
+ className: "min-w-0 flex-1",
207
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
208
+ className: "font-bold text-foreground",
209
+ numberOfLines: 1,
210
+ children: displayName
211
+ }), handleLine ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
212
+ className: "text-xs text-muted-foreground",
213
+ numberOfLines: 1,
214
+ children: handleLine
215
+ }) : null]
216
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.MaterialCommunityIcons, {
217
+ name: "unfold-more-horizontal",
218
+ size: 18,
219
+ color: colors.textSecondary
220
+ })]
221
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ProfileMenu.default, {
222
+ open: menuOpen,
223
+ onClose: handleClose,
224
+ anchor: anchor,
225
+ onNavigateManage: onNavigateManage,
226
+ onAddAccount: onAddAccount,
227
+ onNavigateProfile: onNavigateProfile,
228
+ onBeforeSessionChange: onBeforeSessionChange
229
+ })]
230
+ });
231
+ };
232
+ var _default = exports.default = ProfileButton;
233
+ //# sourceMappingURL=ProfileButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_vectorIcons","_avatar","_typography","_theme","_core","_useAuth","_useI18n","_ProfileMenu","_interopRequireDefault","_jsxRuntime","e","__esModule","default","isWeb","Platform","OS","MENU_WIDTH","VIEWPORT_GUTTER","ProfileButton","expanded","avatarSize","onNavigateManage","onAddAccount","onNavigateProfile","onBeforeSessionChange","className","style","user","isAuthenticated","isAuthResolved","isPrivateApiPending","signIn","useAuth","colors","useTheme","t","locale","useI18n","menuOpen","setMenuOpen","useState","anchor","setAnchor","triggerRef","useRef","resolvedAvatarSize","openMenu","useCallback","node","current","measure","window","_x","_y","_w","_h","pageX","pageY","maxLeft","Math","max","innerWidth","left","min","bottom","innerHeight","handleClose","jsx","View","accessibilityElementsHidden","importantForAccessibility","children","width","height","signInLabel","jsxs","Pressable","onPress","accessibilityRole","accessibilityLabel","MaterialCommunityIcons","name","size","round","color","icon","Text","numberOfLines","displayName","getAccountDisplayName","handle","getAccountFallbackHandle","handleLine","avatarNode","Avatar","source","avatar","undefined","variant","ref","open","onClose","textSecondary","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/components/ProfileButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,374 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _vectorIcons = require("@expo/vector-icons");
10
+ var _avatar = require("@oxyhq/bloom/avatar");
11
+ var _typography = require("@oxyhq/bloom/typography");
12
+ var _theme = require("@oxyhq/bloom/theme");
13
+ var _bloom = require("@oxyhq/bloom");
14
+ var _divider = require("@oxyhq/bloom/divider");
15
+ var _core = require("@oxyhq/core");
16
+ var _OxyContext = require("../context/OxyContext.js");
17
+ var _useI18n = require("../hooks/useI18n.js");
18
+ var _useDeviceAccounts = require("../hooks/useDeviceAccounts.js");
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ const isWeb = _reactNative.Platform.OS === 'web';
21
+
22
+ /** Fixed popover width on web. `ProfileButton` mirrors this when anchoring. */
23
+ const MENU_WIDTH = 300;
24
+
25
+ /**
26
+ * Web-only anchor. `ProfileButton` measures its trigger and anchors the panel's
27
+ * BOTTOM-LEFT corner so the menu opens UPWARD from the sidebar footer. Native
28
+ * ignores the anchor and docks the panel to the bottom as a sheet.
29
+ */
30
+
31
+ /**
32
+ * Clean device-account switcher, modeled on the inbox `AccountMenu` but written
33
+ * fresh with NativeWind classNames + Bloom primitives. Lists every account
34
+ * signed in on this device (from {@link useDeviceAccounts}); tapping a row
35
+ * switches, and each inactive row carries a sign-out icon. Below the list:
36
+ * Add account, Manage account, optional View profile, and Sign out of all.
37
+ *
38
+ * Renders as an upward-opening popover anchored to the trigger on web, and a
39
+ * bottom-sheet style modal on native.
40
+ */
41
+ const ProfileMenu = ({
42
+ open,
43
+ onClose,
44
+ anchor,
45
+ onNavigateManage,
46
+ onAddAccount,
47
+ onNavigateProfile,
48
+ onBeforeSessionChange
49
+ }) => {
50
+ const {
51
+ activeSessionId,
52
+ switchSession,
53
+ logoutAll,
54
+ removeSession
55
+ } = (0, _OxyContext.useOxy)();
56
+ const {
57
+ t
58
+ } = (0, _useI18n.useI18n)();
59
+ const {
60
+ colors
61
+ } = (0, _theme.useTheme)();
62
+ const {
63
+ accounts
64
+ } = (0, _useDeviceAccounts.useDeviceAccounts)();
65
+ const [busySessionId, setBusySessionId] = (0, _react.useState)(null);
66
+ const [removingSessionId, setRemovingSessionId] = (0, _react.useState)(null);
67
+ const [signingOutAll, setSigningOutAll] = (0, _react.useState)(false);
68
+ const signOutAllDialog = (0, _bloom.useDialogControl)();
69
+ const isSwitching = busySessionId !== null;
70
+ const actionDisabled = isSwitching || removingSessionId !== null || signingOutAll;
71
+
72
+ // Switch to a non-active account through the SDK's canonical switch path.
73
+ const handleSwitch = (0, _react.useCallback)(async sessionId => {
74
+ if (sessionId === activeSessionId || busySessionId) {
75
+ return;
76
+ }
77
+ setBusySessionId(sessionId);
78
+ try {
79
+ await onBeforeSessionChange?.();
80
+ await switchSession(sessionId);
81
+ _bloom.toast.success(t('accountSwitcher.toasts.switchSuccess') || 'Switched account');
82
+ onClose();
83
+ } catch (error) {
84
+ if (!(0, _core.isDev)()) {
85
+ _core.logger.warn('Switch account failed', {
86
+ component: 'ProfileMenu'
87
+ }, error);
88
+ }
89
+ _bloom.toast.error(t('accountSwitcher.toasts.switchFailed') || 'Failed to switch account');
90
+ } finally {
91
+ setBusySessionId(null);
92
+ }
93
+ }, [activeSessionId, busySessionId, switchSession, t, onClose, onBeforeSessionChange]);
94
+
95
+ // Sign out a specific inactive account without switching/clearing the active
96
+ // one. The menu stays open so the user can keep managing accounts.
97
+ const handleRemove = (0, _react.useCallback)(async sessionId => {
98
+ if (sessionId === activeSessionId || removingSessionId) {
99
+ return;
100
+ }
101
+ setRemovingSessionId(sessionId);
102
+ try {
103
+ await removeSession(sessionId);
104
+ _bloom.toast.success(t('common.actions.signedOut') || 'Signed out');
105
+ } catch (error) {
106
+ _core.logger.warn('Remove account failed', {
107
+ component: 'ProfileMenu'
108
+ }, error);
109
+ _bloom.toast.error(t('common.errors.signOutFailed') || 'Failed to sign out');
110
+ } finally {
111
+ setRemovingSessionId(null);
112
+ }
113
+ }, [activeSessionId, removingSessionId, removeSession, t]);
114
+ const performSignOutAll = (0, _react.useCallback)(async () => {
115
+ if (signingOutAll) {
116
+ return;
117
+ }
118
+ setSigningOutAll(true);
119
+ try {
120
+ await onBeforeSessionChange?.();
121
+ await logoutAll();
122
+ _bloom.toast.success(t('accountSwitcher.toasts.signOutAllSuccess') || 'Signed out of all accounts');
123
+ onClose();
124
+ } catch (error) {
125
+ _core.logger.warn('Sign out all failed', {
126
+ component: 'ProfileMenu'
127
+ }, error);
128
+ _bloom.toast.error(t('common.errors.signOutAllFailed') || 'Failed to sign out of all accounts');
129
+ } finally {
130
+ setSigningOutAll(false);
131
+ }
132
+ }, [signingOutAll, logoutAll, t, onClose, onBeforeSessionChange]);
133
+
134
+ // Escape-to-close (web only).
135
+ (0, _react.useEffect)(() => {
136
+ if (!open || !isWeb || typeof document === 'undefined') {
137
+ return undefined;
138
+ }
139
+ const onKey = event => {
140
+ if (event.key === 'Escape') {
141
+ event.stopPropagation();
142
+ onClose();
143
+ }
144
+ };
145
+ document.addEventListener('keydown', onKey, true);
146
+ return () => document.removeEventListener('keydown', onKey, true);
147
+ }, [open, onClose]);
148
+ if (!open) {
149
+ return null;
150
+ }
151
+
152
+ // Web: anchor the panel's bottom-left corner to the measured trigger, falling
153
+ // back to a bottom-left placement when no anchor was captured. Native ignores
154
+ // this (the panel docks to the bottom via the overlay's flex-end).
155
+ const panelAnchorStyle = isWeb ? {
156
+ position: 'absolute',
157
+ width: MENU_WIDTH,
158
+ left: anchor?.left ?? 8,
159
+ bottom: anchor?.bottom ?? 8
160
+ } : undefined;
161
+ const content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable
162
+ // Swallow taps inside the panel so they never reach the overlay's
163
+ // outside-tap-to-close handler.
164
+ , {
165
+ onPress: () => undefined,
166
+ className: isWeb ? 'overflow-hidden rounded-2xl border border-border bg-background' : 'overflow-hidden rounded-t-3xl bg-background pb-3',
167
+ style: [panelAnchorStyle, !isWeb ? {
168
+ maxHeight: '85%'
169
+ } : {
170
+ maxHeight: '85%'
171
+ }, styles.shadow],
172
+ accessibilityRole: "menu",
173
+ accessibilityLabel: t('accountMenu.label') || 'Account menu',
174
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
175
+ className: "grow-0",
176
+ contentContainerClassName: "py-1",
177
+ showsVerticalScrollIndicator: false,
178
+ children: [accounts.map(account => {
179
+ const isActive = account.isCurrent;
180
+ const isBusy = busySessionId === account.sessionId;
181
+ const isRemoving = removingSessionId === account.sessionId;
182
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
183
+ accessibilityRole: "menuitem",
184
+ accessibilityLabel: account.displayName,
185
+ accessibilityState: {
186
+ selected: isActive
187
+ },
188
+ onPress: () => handleSwitch(account.sessionId),
189
+ disabled: isActive || isBusy || isSwitching,
190
+ className: `flex-row items-center gap-3 px-4 py-2.5 ${isActive ? 'bg-secondary' : ''} ${isSwitching && !isActive ? 'opacity-40' : ''}`,
191
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_avatar.Avatar, {
192
+ source: account.user.avatar ?? undefined,
193
+ uri: account.avatarUrl,
194
+ variant: "thumb",
195
+ name: account.displayName,
196
+ size: isActive ? 40 : 32
197
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
198
+ className: "min-w-0 flex-1",
199
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
200
+ className: `text-foreground ${isActive ? 'font-semibold' : 'font-medium'}`,
201
+ numberOfLines: 1,
202
+ children: account.displayName
203
+ }), account.email ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
204
+ className: "text-xs text-muted-foreground",
205
+ numberOfLines: 1,
206
+ children: account.email
207
+ }) : null]
208
+ }), isBusy ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
209
+ color: colors.primary,
210
+ size: "small"
211
+ }) : isActive ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.MaterialCommunityIcons, {
212
+ name: "check",
213
+ size: 20,
214
+ color: colors.primary
215
+ }) : isRemoving ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
216
+ color: colors.textSecondary,
217
+ size: "small"
218
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
219
+ accessibilityRole: "button",
220
+ accessibilityLabel: t('accountMenu.signOutAccount', {
221
+ name: account.displayName
222
+ }) || `Sign out ${account.displayName}`,
223
+ onPress: () => handleRemove(account.sessionId),
224
+ disabled: actionDisabled,
225
+ hitSlop: {
226
+ top: 8,
227
+ bottom: 8,
228
+ left: 8,
229
+ right: 8
230
+ },
231
+ className: "h-7 w-7 items-center justify-center rounded-full opacity-60",
232
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.MaterialCommunityIcons, {
233
+ name: "logout",
234
+ size: 18,
235
+ color: colors.textSecondary
236
+ })
237
+ })]
238
+ }, `account-${account.sessionId}`);
239
+ }), isSwitching ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
240
+ className: "flex-row items-center justify-center gap-2 py-2",
241
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
242
+ color: colors.textSecondary,
243
+ size: "small"
244
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
245
+ className: "text-xs font-medium text-muted-foreground",
246
+ children: t('accountMenu.switching') || 'Switching account…'
247
+ })]
248
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_divider.Divider, {
249
+ color: colors.border,
250
+ spacing: 4
251
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionRow, {
252
+ icon: "account-plus-outline",
253
+ iconColor: colors.icon,
254
+ label: t('accountMenu.addAnother') || 'Add another account',
255
+ disabled: actionDisabled,
256
+ onPress: () => {
257
+ onClose();
258
+ onAddAccount();
259
+ }
260
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionRow, {
261
+ icon: "cog-outline",
262
+ iconColor: colors.icon,
263
+ label: t('accountMenu.manage') || 'Manage your Oxy Account',
264
+ disabled: actionDisabled,
265
+ onPress: () => {
266
+ onClose();
267
+ onNavigateManage();
268
+ }
269
+ }), onNavigateProfile ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionRow, {
270
+ icon: "account-outline",
271
+ iconColor: colors.icon,
272
+ label: t('accountMenu.viewProfile') || 'View profile',
273
+ disabled: actionDisabled,
274
+ onPress: () => {
275
+ onClose();
276
+ onNavigateProfile();
277
+ }
278
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_divider.Divider, {
279
+ color: colors.border,
280
+ spacing: 4
281
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
282
+ accessibilityRole: "menuitem",
283
+ accessibilityLabel: t('accountMenu.signOutAll') || 'Sign out of all accounts',
284
+ onPress: () => signOutAllDialog.open(),
285
+ disabled: actionDisabled,
286
+ className: `flex-row items-center gap-3 px-4 py-3 ${actionDisabled ? 'opacity-40' : ''}`,
287
+ children: [signingOutAll ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
288
+ color: colors.error,
289
+ size: "small"
290
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.MaterialCommunityIcons, {
291
+ name: "logout",
292
+ size: 18,
293
+ color: colors.error
294
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
295
+ className: "font-medium",
296
+ style: {
297
+ color: colors.error
298
+ },
299
+ children: t('accountMenu.signOutAll') || 'Sign out of all accounts'
300
+ })]
301
+ })]
302
+ })
303
+ });
304
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Modal, {
305
+ visible: open,
306
+ transparent: true,
307
+ animationType: isWeb ? 'fade' : 'slide',
308
+ onRequestClose: onClose,
309
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
310
+ accessibilityRole: "button",
311
+ accessibilityLabel: t('common.actions.close') || 'Close',
312
+ onPress: onClose,
313
+ className: isWeb ? 'flex-1 relative' : 'flex-1 justify-end',
314
+ style: !isWeb ? styles.nativeScrim : undefined,
315
+ children: content
316
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_bloom.Dialog, {
317
+ control: signOutAllDialog,
318
+ title: t('accountMenu.signOutAll') || 'Sign out of all accounts',
319
+ description: t('common.confirms.signOutAll') || 'Are you sure you want to sign out of all accounts?',
320
+ actions: [{
321
+ label: t('accountMenu.signOutAll') || 'Sign out of all accounts',
322
+ color: 'destructive',
323
+ onPress: performSignOutAll
324
+ }, {
325
+ label: t('common.cancel') || 'Cancel',
326
+ color: 'cancel'
327
+ }]
328
+ })]
329
+ });
330
+ };
331
+
332
+ /** Bottom-section action row (Add account / Manage / View profile). */
333
+ const ActionRow = ({
334
+ icon,
335
+ iconColor,
336
+ label,
337
+ disabled,
338
+ onPress
339
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
340
+ accessibilityRole: "menuitem",
341
+ accessibilityLabel: label,
342
+ onPress: onPress,
343
+ disabled: disabled,
344
+ className: `flex-row items-center gap-3 px-4 py-3 ${disabled ? 'opacity-40' : ''}`,
345
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.MaterialCommunityIcons, {
346
+ name: icon,
347
+ size: 20,
348
+ color: iconColor
349
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
350
+ className: "font-medium text-foreground",
351
+ children: label
352
+ })]
353
+ });
354
+
355
+ // The panel's drop shadow and the native scrim are the only values with no
356
+ // NativeWind class equivalent in this package (dynamic elevation + rgba scrim),
357
+ // so they stay as small inline objects rather than raw class-replaceable styles.
358
+ const styles = {
359
+ shadow: {
360
+ shadowColor: '#000',
361
+ shadowOpacity: 0.18,
362
+ shadowRadius: 24,
363
+ shadowOffset: {
364
+ width: 0,
365
+ height: 8
366
+ },
367
+ elevation: 12
368
+ },
369
+ nativeScrim: {
370
+ backgroundColor: 'rgba(0,0,0,0.32)'
371
+ }
372
+ };
373
+ var _default = exports.default = ProfileMenu;
374
+ //# sourceMappingURL=ProfileMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_vectorIcons","_avatar","_typography","_theme","_bloom","_divider","_core","_OxyContext","_useI18n","_useDeviceAccounts","_jsxRuntime","isWeb","Platform","OS","MENU_WIDTH","ProfileMenu","open","onClose","anchor","onNavigateManage","onAddAccount","onNavigateProfile","onBeforeSessionChange","activeSessionId","switchSession","logoutAll","removeSession","useOxy","t","useI18n","colors","useTheme","accounts","useDeviceAccounts","busySessionId","setBusySessionId","useState","removingSessionId","setRemovingSessionId","signingOutAll","setSigningOutAll","signOutAllDialog","useDialogControl","isSwitching","actionDisabled","handleSwitch","useCallback","sessionId","toast","success","error","isDev","loggerUtil","warn","component","handleRemove","performSignOutAll","useEffect","document","undefined","onKey","event","key","stopPropagation","addEventListener","removeEventListener","panelAnchorStyle","position","width","left","bottom","content","jsx","Pressable","onPress","className","style","maxHeight","styles","shadow","accessibilityRole","accessibilityLabel","children","jsxs","ScrollView","contentContainerClassName","showsVerticalScrollIndicator","map","account","isActive","isCurrent","isBusy","isRemoving","displayName","accessibilityState","selected","disabled","Avatar","source","user","avatar","uri","avatarUrl","variant","name","size","View","Text","numberOfLines","email","ActivityIndicator","color","primary","MaterialCommunityIcons","textSecondary","hitSlop","top","right","Divider","border","spacing","ActionRow","icon","iconColor","label","Modal","visible","transparent","animationType","onRequestClose","nativeScrim","Dialog","control","title","description","actions","shadowColor","shadowOpacity","shadowRadius","shadowOffset","height","elevation","backgroundColor","_default","exports","default"],"sourceRoot":"../../../../src","sources":["ui/components/ProfileMenu.tsx"],"mappings":"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","ignoreList":[]}