@oxyhq/services 16.0.0 → 18.0.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 (278) hide show
  1. package/README.md +77 -98
  2. package/lib/commonjs/index.js +40 -51
  3. package/lib/commonjs/index.js.map +1 -1
  4. package/lib/commonjs/ui/client.js +0 -14
  5. package/lib/commonjs/ui/client.js.map +1 -1
  6. package/lib/commonjs/ui/components/OxyAccountDialog.js +742 -0
  7. package/lib/commonjs/ui/components/OxyAccountDialog.js.map +1 -0
  8. package/lib/commonjs/ui/components/OxyConsentScreen.js +461 -0
  9. package/lib/commonjs/ui/components/OxyConsentScreen.js.map +1 -0
  10. package/lib/commonjs/ui/components/OxyProvider.js +13 -6
  11. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  12. package/lib/commonjs/ui/components/OxySignInButton.js +180 -22
  13. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  14. package/lib/commonjs/ui/components/ProfileButton.js +25 -112
  15. package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
  16. package/lib/commonjs/ui/components/RequireOxyAuth.js +299 -0
  17. package/lib/commonjs/ui/components/RequireOxyAuth.js.map +1 -0
  18. package/lib/commonjs/ui/components/oauthNavigation.js +73 -0
  19. package/lib/commonjs/ui/components/oauthNavigation.js.map +1 -0
  20. package/lib/commonjs/ui/context/OxyContext.js +122 -4
  21. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  22. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +1 -1
  23. package/lib/commonjs/ui/hooks/useAuth.js +19 -30
  24. package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
  25. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +37 -267
  26. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js.map +1 -1
  27. package/lib/commonjs/ui/index.js +5 -40
  28. package/lib/commonjs/ui/index.js.map +1 -1
  29. package/lib/commonjs/ui/navigation/accountDialogManager.js +91 -0
  30. package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -0
  31. package/lib/commonjs/ui/navigation/routes.js +0 -2
  32. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  33. package/lib/commonjs/ui/screens/ManageAccountScreen.js +4 -3
  34. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  35. package/lib/commonjs/ui/session/createSessionClient.js +10 -2
  36. package/lib/commonjs/ui/session/createSessionClient.js.map +1 -1
  37. package/lib/module/index.js +19 -16
  38. package/lib/module/index.js.map +1 -1
  39. package/lib/module/ui/client.js +1 -2
  40. package/lib/module/ui/client.js.map +1 -1
  41. package/lib/module/ui/components/OxyAccountDialog.js +739 -0
  42. package/lib/module/ui/components/OxyAccountDialog.js.map +1 -0
  43. package/lib/module/ui/components/OxyConsentScreen.js +454 -0
  44. package/lib/module/ui/components/OxyConsentScreen.js.map +1 -0
  45. package/lib/module/ui/components/OxyProvider.js +13 -6
  46. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  47. package/lib/module/ui/components/OxySignInButton.js +181 -22
  48. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  49. package/lib/module/ui/components/ProfileButton.js +26 -112
  50. package/lib/module/ui/components/ProfileButton.js.map +1 -1
  51. package/lib/module/ui/components/RequireOxyAuth.js +294 -0
  52. package/lib/module/ui/components/RequireOxyAuth.js.map +1 -0
  53. package/lib/module/ui/components/oauthNavigation.js +70 -0
  54. package/lib/module/ui/components/oauthNavigation.js.map +1 -0
  55. package/lib/module/ui/context/OxyContext.js +123 -5
  56. package/lib/module/ui/context/OxyContext.js.map +1 -1
  57. package/lib/module/ui/hooks/mutations/useAccountMutations.js +1 -1
  58. package/lib/module/ui/hooks/useAuth.js +19 -30
  59. package/lib/module/ui/hooks/useAuth.js.map +1 -1
  60. package/lib/module/ui/hooks/useSwitchableAccounts.js +38 -267
  61. package/lib/module/ui/hooks/useSwitchableAccounts.js.map +1 -1
  62. package/lib/module/ui/index.js +1 -5
  63. package/lib/module/ui/index.js.map +1 -1
  64. package/lib/module/ui/navigation/accountDialogManager.js +81 -0
  65. package/lib/module/ui/navigation/accountDialogManager.js.map +1 -0
  66. package/lib/module/ui/navigation/routes.js +0 -2
  67. package/lib/module/ui/navigation/routes.js.map +1 -1
  68. package/lib/module/ui/screens/ManageAccountScreen.js +4 -3
  69. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  70. package/lib/module/ui/session/createSessionClient.js +10 -2
  71. package/lib/module/ui/session/createSessionClient.js.map +1 -1
  72. package/lib/typescript/commonjs/index.d.ts +8 -12
  73. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  74. package/lib/typescript/commonjs/ui/client.d.ts +0 -4
  75. package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
  76. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts +51 -0
  77. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts.map +1 -0
  78. package/lib/typescript/commonjs/ui/components/OxyConsentScreen.d.ts +45 -0
  79. package/lib/typescript/commonjs/ui/components/OxyConsentScreen.d.ts.map +1 -0
  80. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts +2 -2
  81. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  82. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts +56 -0
  83. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  84. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +11 -23
  85. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
  86. package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts +55 -0
  87. package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts.map +1 -0
  88. package/lib/typescript/commonjs/ui/components/oauthNavigation.d.ts +36 -0
  89. package/lib/typescript/commonjs/ui/components/oauthNavigation.d.ts.map +1 -0
  90. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +27 -1
  91. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  92. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  93. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts +1 -1
  94. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
  96. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts +13 -152
  97. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts.map +1 -1
  98. package/lib/typescript/commonjs/ui/index.d.ts +2 -5
  99. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  100. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +49 -0
  101. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -0
  102. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  103. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  104. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts +1 -1
  105. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  106. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +9 -2
  107. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts.map +1 -1
  108. package/lib/typescript/commonjs/ui/types/navigation.d.ts +27 -0
  109. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  110. package/lib/typescript/module/index.d.ts +8 -12
  111. package/lib/typescript/module/index.d.ts.map +1 -1
  112. package/lib/typescript/module/ui/client.d.ts +0 -4
  113. package/lib/typescript/module/ui/client.d.ts.map +1 -1
  114. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts +51 -0
  115. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts.map +1 -0
  116. package/lib/typescript/module/ui/components/OxyConsentScreen.d.ts +45 -0
  117. package/lib/typescript/module/ui/components/OxyConsentScreen.d.ts.map +1 -0
  118. package/lib/typescript/module/ui/components/OxyProvider.d.ts +2 -2
  119. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  120. package/lib/typescript/module/ui/components/OxySignInButton.d.ts +56 -0
  121. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  122. package/lib/typescript/module/ui/components/ProfileButton.d.ts +11 -23
  123. package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
  124. package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts +55 -0
  125. package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts.map +1 -0
  126. package/lib/typescript/module/ui/components/oauthNavigation.d.ts +36 -0
  127. package/lib/typescript/module/ui/components/oauthNavigation.d.ts.map +1 -0
  128. package/lib/typescript/module/ui/context/OxyContext.d.ts +27 -1
  129. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  130. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  131. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts +1 -1
  132. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  133. package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
  134. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts +13 -152
  135. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts.map +1 -1
  136. package/lib/typescript/module/ui/index.d.ts +2 -5
  137. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  138. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +49 -0
  139. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -0
  140. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  141. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  142. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts +1 -1
  143. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  144. package/lib/typescript/module/ui/session/createSessionClient.d.ts +9 -2
  145. package/lib/typescript/module/ui/session/createSessionClient.d.ts.map +1 -1
  146. package/lib/typescript/module/ui/types/navigation.d.ts +27 -0
  147. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  148. package/package.json +4 -4
  149. package/src/index.ts +33 -27
  150. package/src/ui/client.ts +0 -4
  151. package/src/ui/components/OxyAccountDialog.tsx +735 -0
  152. package/src/ui/components/OxyConsentScreen.tsx +456 -0
  153. package/src/ui/components/OxyProvider.tsx +14 -6
  154. package/src/ui/components/OxySignInButton.tsx +227 -22
  155. package/src/ui/components/ProfileButton.tsx +23 -126
  156. package/src/ui/components/RequireOxyAuth.tsx +266 -0
  157. package/src/ui/components/__tests__/OxyConsentScreen.test.tsx +130 -0
  158. package/src/ui/components/oauthNavigation.ts +89 -0
  159. package/src/ui/context/OxyContext.tsx +176 -9
  160. package/src/ui/context/__tests__/OxyContext.coldBoot.test.tsx +165 -0
  161. package/src/ui/hooks/mutations/useAccountMutations.ts +1 -1
  162. package/src/ui/hooks/useAuth.ts +19 -31
  163. package/src/ui/hooks/useSwitchableAccounts.ts +42 -376
  164. package/src/ui/index.ts +2 -5
  165. package/src/ui/navigation/accountDialogManager.ts +84 -0
  166. package/src/ui/navigation/routes.ts +0 -4
  167. package/src/ui/screens/ManageAccountScreen.tsx +3 -2
  168. package/src/ui/session/createSessionClient.ts +9 -1
  169. package/src/ui/types/navigation.ts +27 -0
  170. package/lib/commonjs/ui/components/AccountMenu.js +0 -598
  171. package/lib/commonjs/ui/components/AccountMenu.js.map +0 -1
  172. package/lib/commonjs/ui/components/AccountMenuButton.js +0 -135
  173. package/lib/commonjs/ui/components/AccountMenuButton.js.map +0 -1
  174. package/lib/commonjs/ui/components/AccountSwitcher.js +0 -780
  175. package/lib/commonjs/ui/components/AccountSwitcher.js.map +0 -1
  176. package/lib/commonjs/ui/components/AnotherDeviceQR.js +0 -116
  177. package/lib/commonjs/ui/components/AnotherDeviceQR.js.map +0 -1
  178. package/lib/commonjs/ui/components/ProfileMenu.js +0 -518
  179. package/lib/commonjs/ui/components/ProfileMenu.js.map +0 -1
  180. package/lib/commonjs/ui/components/SignInAccountChooser.js +0 -189
  181. package/lib/commonjs/ui/components/SignInAccountChooser.js.map +0 -1
  182. package/lib/commonjs/ui/components/SignInModal.js +0 -600
  183. package/lib/commonjs/ui/components/SignInModal.js.map +0 -1
  184. package/lib/commonjs/ui/hooks/useOxyAuthSession.js +0 -501
  185. package/lib/commonjs/ui/hooks/useOxyAuthSession.js.map +0 -1
  186. package/lib/commonjs/ui/hooks/usePasswordSignIn.js +0 -170
  187. package/lib/commonjs/ui/hooks/usePasswordSignIn.js.map +0 -1
  188. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +0 -51
  189. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +0 -1
  190. package/lib/commonjs/ui/screens/OxyAuthScreen.js +0 -312
  191. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +0 -1
  192. package/lib/commonjs/utils/deviceFlowSignIn.js +0 -109
  193. package/lib/commonjs/utils/deviceFlowSignIn.js.map +0 -1
  194. package/lib/module/ui/components/AccountMenu.js +0 -593
  195. package/lib/module/ui/components/AccountMenu.js.map +0 -1
  196. package/lib/module/ui/components/AccountMenuButton.js +0 -130
  197. package/lib/module/ui/components/AccountMenuButton.js.map +0 -1
  198. package/lib/module/ui/components/AccountSwitcher.js +0 -774
  199. package/lib/module/ui/components/AccountSwitcher.js.map +0 -1
  200. package/lib/module/ui/components/AnotherDeviceQR.js +0 -110
  201. package/lib/module/ui/components/AnotherDeviceQR.js.map +0 -1
  202. package/lib/module/ui/components/ProfileMenu.js +0 -514
  203. package/lib/module/ui/components/ProfileMenu.js.map +0 -1
  204. package/lib/module/ui/components/SignInAccountChooser.js +0 -183
  205. package/lib/module/ui/components/SignInAccountChooser.js.map +0 -1
  206. package/lib/module/ui/components/SignInModal.js +0 -591
  207. package/lib/module/ui/components/SignInModal.js.map +0 -1
  208. package/lib/module/ui/hooks/useOxyAuthSession.js +0 -495
  209. package/lib/module/ui/hooks/useOxyAuthSession.js.map +0 -1
  210. package/lib/module/ui/hooks/usePasswordSignIn.js +0 -165
  211. package/lib/module/ui/hooks/usePasswordSignIn.js.map +0 -1
  212. package/lib/module/ui/screens/AccountSwitcherScreen.js +0 -48
  213. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +0 -1
  214. package/lib/module/ui/screens/OxyAuthScreen.js +0 -306
  215. package/lib/module/ui/screens/OxyAuthScreen.js.map +0 -1
  216. package/lib/module/utils/deviceFlowSignIn.js +0 -106
  217. package/lib/module/utils/deviceFlowSignIn.js.map +0 -1
  218. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts +0 -47
  219. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts.map +0 -1
  220. package/lib/typescript/commonjs/ui/components/AccountMenuButton.d.ts +0 -26
  221. package/lib/typescript/commonjs/ui/components/AccountMenuButton.d.ts.map +0 -1
  222. package/lib/typescript/commonjs/ui/components/AccountSwitcher.d.ts +0 -46
  223. package/lib/typescript/commonjs/ui/components/AccountSwitcher.d.ts.map +0 -1
  224. package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts +0 -34
  225. package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts.map +0 -1
  226. package/lib/typescript/commonjs/ui/components/ProfileMenu.d.ts +0 -49
  227. package/lib/typescript/commonjs/ui/components/ProfileMenu.d.ts.map +0 -1
  228. package/lib/typescript/commonjs/ui/components/SignInAccountChooser.d.ts +0 -29
  229. package/lib/typescript/commonjs/ui/components/SignInAccountChooser.d.ts.map +0 -1
  230. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts +0 -28
  231. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +0 -1
  232. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts +0 -105
  233. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts.map +0 -1
  234. package/lib/typescript/commonjs/ui/hooks/usePasswordSignIn.d.ts +0 -31
  235. package/lib/typescript/commonjs/ui/hooks/usePasswordSignIn.d.ts.map +0 -1
  236. package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts +0 -11
  237. package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts.map +0 -1
  238. package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts +0 -22
  239. package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +0 -1
  240. package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts +0 -97
  241. package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts.map +0 -1
  242. package/lib/typescript/module/ui/components/AccountMenu.d.ts +0 -47
  243. package/lib/typescript/module/ui/components/AccountMenu.d.ts.map +0 -1
  244. package/lib/typescript/module/ui/components/AccountMenuButton.d.ts +0 -26
  245. package/lib/typescript/module/ui/components/AccountMenuButton.d.ts.map +0 -1
  246. package/lib/typescript/module/ui/components/AccountSwitcher.d.ts +0 -46
  247. package/lib/typescript/module/ui/components/AccountSwitcher.d.ts.map +0 -1
  248. package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts +0 -34
  249. package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts.map +0 -1
  250. package/lib/typescript/module/ui/components/ProfileMenu.d.ts +0 -49
  251. package/lib/typescript/module/ui/components/ProfileMenu.d.ts.map +0 -1
  252. package/lib/typescript/module/ui/components/SignInAccountChooser.d.ts +0 -29
  253. package/lib/typescript/module/ui/components/SignInAccountChooser.d.ts.map +0 -1
  254. package/lib/typescript/module/ui/components/SignInModal.d.ts +0 -28
  255. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +0 -1
  256. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts +0 -105
  257. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts.map +0 -1
  258. package/lib/typescript/module/ui/hooks/usePasswordSignIn.d.ts +0 -31
  259. package/lib/typescript/module/ui/hooks/usePasswordSignIn.d.ts.map +0 -1
  260. package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts +0 -11
  261. package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts.map +0 -1
  262. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts +0 -22
  263. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +0 -1
  264. package/lib/typescript/module/utils/deviceFlowSignIn.d.ts +0 -97
  265. package/lib/typescript/module/utils/deviceFlowSignIn.d.ts.map +0 -1
  266. package/src/ui/components/AccountMenu.tsx +0 -645
  267. package/src/ui/components/AccountMenuButton.tsx +0 -126
  268. package/src/ui/components/AccountSwitcher.tsx +0 -751
  269. package/src/ui/components/AnotherDeviceQR.tsx +0 -119
  270. package/src/ui/components/ProfileMenu.tsx +0 -564
  271. package/src/ui/components/SignInAccountChooser.tsx +0 -162
  272. package/src/ui/components/SignInModal.tsx +0 -530
  273. package/src/ui/hooks/useOxyAuthSession.ts +0 -635
  274. package/src/ui/hooks/usePasswordSignIn.ts +0 -207
  275. package/src/ui/screens/AccountSwitcherScreen.tsx +0 -43
  276. package/src/ui/screens/OxyAuthScreen.tsx +0 -324
  277. package/src/utils/__tests__/deviceFlowSignIn.test.ts +0 -231
  278. package/src/utils/deviceFlowSignIn.ts +0 -152
@@ -3,17 +3,61 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.OxySignInButton = void 0;
6
+ exports.default = exports.OxySignInButton = exports.OXY_OAUTH_STATE_STORAGE_KEY = exports.OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY = void 0;
7
7
  var _react = require("react");
8
8
  var _reactNative = require("react-native");
9
+ var _core = require("@oxyhq/core");
9
10
  var _authStore = require("../stores/authStore.js");
10
11
  var _shallow = require("zustand/react/shallow");
11
12
  var _theme = require("@oxyhq/bloom/theme");
12
13
  var _OxyContext = require("../context/OxyContext.js");
13
14
  var _OxyLogo = _interopRequireDefault(require("./OxyLogo.js"));
14
- var _SignInModal = require("./SignInModal.js");
15
+ var _accountDialogManager = require("../navigation/accountDialogManager.js");
16
+ var _oauthNavigation = require("./oauthNavigation.js");
15
17
  var _jsxRuntime = require("react/jsx-runtime");
16
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
+ /**
20
+ * `sessionStorage` keys under which a third-party "Sign in with Oxy" OAuth flow
21
+ * persists its CSRF `state` and PKCE `code_verifier` across the authorize
22
+ * redirect. The Relying Party's redirect-URI callback reads them back to
23
+ * validate the returned `state` and replay the verifier on the token exchange.
24
+ *
25
+ * Web only: a browser RP navigates away to `auth.oxy.so` and back, so the
26
+ * handshake must survive a full-page redirect. Native completes the flow inside
27
+ * a single `WebBrowser` auth session and surfaces the handshake via
28
+ * {@link OxySignInButtonProps.onOAuthResult} instead.
29
+ */
30
+ const OXY_OAUTH_STATE_STORAGE_KEY = exports.OXY_OAUTH_STATE_STORAGE_KEY = 'oxy_oauth_state';
31
+ const OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY = exports.OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY = 'oxy_oauth_code_verifier';
32
+
33
+ /**
34
+ * The OAuth handshake surfaced to a NATIVE third-party RP via
35
+ * {@link OxySignInButtonProps.onOAuthResult} so it can finish the code exchange
36
+ * (`POST /auth/oauth/token`). Web RPs read the same `state` / `code_verifier`
37
+ * back from `sessionStorage` across the redirect and do not need this callback.
38
+ */
39
+
40
+ /**
41
+ * Persist the OAuth CSRF `state` + PKCE `code_verifier` for the RP callback.
42
+ * Returns `false` when the handshake could not be stored — no `sessionStorage`
43
+ * (SSR / non-browser host) or a write that threw (`SecurityError` /
44
+ * `QuotaExceededError`, e.g. Safari private mode) — so the caller aborts the
45
+ * flow cleanly rather than redirect to a callback that cannot validate `state`.
46
+ */
47
+ function persistOAuthHandshake(state, codeVerifier) {
48
+ const store = globalThis.sessionStorage;
49
+ try {
50
+ if (!store) throw new Error('sessionStorage is unavailable');
51
+ store.setItem(OXY_OAUTH_STATE_STORAGE_KEY, state);
52
+ store.setItem(OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY, codeVerifier);
53
+ return true;
54
+ } catch (error) {
55
+ _core.logger.warn('OxySignInButton: could not persist the OAuth handshake to sessionStorage; aborting third-party sign-in', {
56
+ component: 'OxySignInButton'
57
+ }, error);
58
+ return false;
59
+ }
60
+ }
17
61
  /**
18
62
  * A pre-styled button component for signing in with Oxy identity
19
63
  *
@@ -45,11 +89,15 @@ const OxySignInButton = ({
45
89
  textStyle,
46
90
  text = 'Sign in with Oxy',
47
91
  disabled = false,
48
- showWhenAuthenticated = false
92
+ showWhenAuthenticated = false,
93
+ oauthRedirectUri,
94
+ onOAuthResult
49
95
  }) => {
50
96
  const theme = (0, _theme.useTheme)();
51
97
  const {
52
- showBottomSheet
98
+ openAccountDialog,
99
+ oxyServices,
100
+ clientId
53
101
  } = (0, _OxyContext.useOxy)();
54
102
  const {
55
103
  isAuthenticated,
@@ -58,32 +106,142 @@ const OxySignInButton = ({
58
106
  isAuthenticated: state.isAuthenticated,
59
107
  isLoading: state.isLoading
60
108
  })));
61
- // Tracks visibility of the web full-screen sign-in modal so we can show
62
- // "Signing in..." while it's open. On native we open a bottom sheet whose
63
- // visibility is owned by the sheet manager — no subscription needed.
109
+ // Tracks whether the unified account dialog is open so we can show
110
+ // "Signing in..." while it is. The manager reports visibility on every
111
+ // change regardless of platform or what opened/closed it.
64
112
  const [isModalOpen, setIsModalOpen] = (0, _react.useState)(false);
113
+ (0, _react.useEffect)(() => (0, _accountDialogManager.subscribeToSignInModal)(setIsModalOpen), []);
114
+
115
+ // The application's public identity is resolved lazily on first press and its
116
+ // promise cached, so rapid taps share one in-flight resolve. The cache is
117
+ // KEYED on the identity inputs (clientId + the oxyServices instance): if
118
+ // either changes the cache is invalidated and re-resolved — without a
119
+ // useEffect. A rejected resolve clears the cache so a later press can retry.
120
+ const appResolutionRef = (0, _react.useRef)(null);
121
+ // Re-entrancy guard: a routing pass may await network + crypto before it
122
+ // redirects, so block a second concurrent press from racing the sessionStorage
123
+ // handshake against a different PKCE pair.
124
+ const routingRef = (0, _react.useRef)(false);
125
+ const resolvePublicApplication = (0, _react.useCallback)(() => {
126
+ if (!clientId) return null;
127
+ const cached = appResolutionRef.current;
128
+ if (cached && cached.clientId === clientId && cached.oxyServices === oxyServices) {
129
+ return cached.promise;
130
+ }
131
+ const promise = oxyServices.getPublicApplication(clientId).catch(error => {
132
+ // Only clear if this is still the live entry (a later resolve may have
133
+ // replaced it after a clientId/oxyServices change).
134
+ if (appResolutionRef.current?.promise === promise) {
135
+ appResolutionRef.current = null;
136
+ }
137
+ throw error;
138
+ });
139
+ appResolutionRef.current = {
140
+ clientId,
141
+ oxyServices,
142
+ promise
143
+ };
144
+ return promise;
145
+ }, [clientId, oxyServices]);
146
+
147
+ // Official / first-party surface: the in-app account + sign-in dialog.
148
+ const startOfficialSignIn = (0, _react.useCallback)(() => {
149
+ openAccountDialog('signin');
150
+ }, [openAccountDialog]);
151
+
152
+ // Third-party surface: an OAuth 2.0 authorization-code + PKCE redirect to
153
+ // auth.oxy.so. No FedCM, no SSO bounce, no Oxy session cookies.
154
+ const startThirdPartyOAuth = (0, _react.useCallback)(async app => {
155
+ if (!clientId) {
156
+ startOfficialSignIn();
157
+ return;
158
+ }
159
+ if (!oauthRedirectUri) {
160
+ _core.logger.error('OxySignInButton: a third_party application requires the `oauthRedirectUri` prop to start the OAuth redirect; sign-in aborted', undefined, {
161
+ component: 'OxySignInButton',
162
+ clientId,
163
+ application: app.name
164
+ });
165
+ return;
166
+ }
167
+ const [pkce, state] = await Promise.all([(0, _core.generatePkcePair)(), (0, _core.generateOAuthState)()]);
168
+ const authorizeUrl = (0, _core.buildOAuthAuthorizeUrl)({
169
+ clientId,
170
+ redirectUri: oauthRedirectUri,
171
+ state,
172
+ codeChallenge: pkce.codeChallenge
173
+ });
174
+ if (_reactNative.Platform.OS === 'web') {
175
+ // Persist the handshake for the RP callback, then hand the
176
+ // top-level document to the IdP. Without storage the callback
177
+ // cannot validate `state`, so abort cleanly rather than redirect.
178
+ if (!persistOAuthHandshake(state, pkce.codeVerifier)) {
179
+ return;
180
+ }
181
+ (0, _oauthNavigation.redirectToAuthorize)(authorizeUrl);
182
+ return;
183
+ }
65
184
 
66
- // Subscribe to web modal visibility only bottom sheet manages its own state.
67
- (0, _react.useEffect)(() => {
68
- if (_reactNative.Platform.OS !== 'web') return;
69
- return (0, _SignInModal.subscribeToSignInModal)(setIsModalOpen);
70
- }, []);
185
+ // Native: open the in-app auth session, then hand the handshake to the
186
+ // RP so it can complete the token exchange from its deep-link callback.
187
+ const {
188
+ redirectUrl
189
+ } = await (0, _oauthNavigation.openAuthorizeUrlNative)(authorizeUrl, oauthRedirectUri);
190
+ if (onOAuthResult) {
191
+ onOAuthResult({
192
+ redirectUrl,
193
+ state,
194
+ codeVerifier: pkce.codeVerifier
195
+ });
196
+ return;
197
+ }
198
+ _core.logger.warn('OxySignInButton: native third-party sign-in cannot complete without an `onOAuthResult` handler; the code exchange is the RP\'s responsibility (state + code_verifier were not surfaced)', {
199
+ component: 'OxySignInButton',
200
+ application: app.name
201
+ });
202
+ }, [clientId, oauthRedirectUri, onOAuthResult, startOfficialSignIn]);
203
+
204
+ // Resolve the Application once, then route: third-party → OAuth redirect;
205
+ // first-party / official / unresolved → the in-app dialog. Resolution failure
206
+ // NEVER breaks an official app's sign-in — it falls back to the dialog.
207
+ const routeSignIn = (0, _react.useCallback)(async () => {
208
+ if (routingRef.current) return;
209
+ routingRef.current = true;
210
+ try {
211
+ const resolving = resolvePublicApplication();
212
+ if (!resolving) {
213
+ startOfficialSignIn();
214
+ return;
215
+ }
216
+ let app;
217
+ try {
218
+ app = await resolving;
219
+ } catch (error) {
220
+ _core.logger.warn('OxySignInButton: could not resolve the application; opening the sign-in dialog', {
221
+ component: 'OxySignInButton',
222
+ clientId
223
+ }, error);
224
+ startOfficialSignIn();
225
+ return;
226
+ }
227
+ if (app.type === 'third_party' && !app.isOfficial) {
228
+ await startThirdPartyOAuth(app);
229
+ return;
230
+ }
231
+ startOfficialSignIn();
232
+ } finally {
233
+ routingRef.current = false;
234
+ }
235
+ }, [resolvePublicApplication, startOfficialSignIn, startThirdPartyOAuth, clientId]);
71
236
 
72
- // Handle button press
73
- // - Web: full-screen modal (dialog UX fits desktop / browser)
74
- // - Native: bottom sheet (sheet UX fits iOS/Android)
237
+ // Defer to a caller-supplied handler, otherwise route by application type.
75
238
  const handlePress = (0, _react.useCallback)(() => {
76
239
  if (onPress) {
77
240
  onPress();
78
241
  return;
79
242
  }
80
- if (_reactNative.Platform.OS === 'web') {
81
- setIsModalOpen(true);
82
- (0, _SignInModal.showSignInModal)();
83
- } else {
84
- showBottomSheet?.('OxyAuth');
85
- }
86
- }, [onPress, showBottomSheet]);
243
+ void routeSignIn();
244
+ }, [onPress, routeSignIn]);
87
245
  const themedStyles = (0, _react.useMemo)(() => _reactNative.StyleSheet.create({
88
246
  button: {
89
247
  padding: 14,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_authStore","_shallow","_theme","_OxyContext","_OxyLogo","_interopRequireDefault","_SignInModal","_jsxRuntime","e","__esModule","default","OxySignInButton","variant","onPress","style","textStyle","text","disabled","showWhenAuthenticated","theme","useTheme","showBottomSheet","useOxy","isAuthenticated","isLoading","useAuthStore","useShallow","state","isModalOpen","setIsModalOpen","useState","useEffect","Platform","OS","subscribeToSignInModal","handlePress","useCallback","showSignInModal","themedStyles","useMemo","StyleSheet","create","button","padding","borderRadius","alignItems","justifyContent","buttonDefault","backgroundColor","colors","card","borderWidth","borderColor","borderLight","select","web","boxShadow","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","buttonOutline","primary","buttonContained","buttonDisabled","opacity","buttonContent","flexDirection","fontWeight","undefined","fontSize","marginLeft","textDefault","color","textOutline","textContained","textDisabled","textTertiary","isButtonDisabled","getButtonStyle","getTextStyle","jsx","TouchableOpacity","children","jsxs","View","size","fillColor","innerFillColor","Text","exports","_default"],"sourceRoot":"../../../../src","sources":["ui/components/OxySignInButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_core","_authStore","_shallow","_theme","_OxyContext","_OxyLogo","_interopRequireDefault","_accountDialogManager","_oauthNavigation","_jsxRuntime","e","__esModule","default","OXY_OAUTH_STATE_STORAGE_KEY","exports","OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY","persistOAuthHandshake","state","codeVerifier","store","globalThis","sessionStorage","Error","setItem","error","logger","warn","component","OxySignInButton","variant","onPress","style","textStyle","text","disabled","showWhenAuthenticated","oauthRedirectUri","onOAuthResult","theme","useTheme","openAccountDialog","oxyServices","clientId","useOxy","isAuthenticated","isLoading","useAuthStore","useShallow","isModalOpen","setIsModalOpen","useState","useEffect","subscribeToSignInModal","appResolutionRef","useRef","routingRef","resolvePublicApplication","useCallback","cached","current","promise","getPublicApplication","catch","startOfficialSignIn","startThirdPartyOAuth","app","undefined","application","name","pkce","Promise","all","generatePkcePair","generateOAuthState","authorizeUrl","buildOAuthAuthorizeUrl","redirectUri","codeChallenge","Platform","OS","redirectToAuthorize","redirectUrl","openAuthorizeUrlNative","routeSignIn","resolving","type","isOfficial","handlePress","themedStyles","useMemo","StyleSheet","create","button","padding","borderRadius","alignItems","justifyContent","buttonDefault","backgroundColor","colors","card","borderWidth","borderColor","borderLight","select","web","boxShadow","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","buttonOutline","primary","buttonContained","buttonDisabled","opacity","buttonContent","flexDirection","fontWeight","fontSize","marginLeft","textDefault","color","textOutline","textContained","textDisabled","textTertiary","isButtonDisabled","getButtonStyle","getTextStyle","jsx","TouchableOpacity","children","jsxs","View","size","fillColor","innerFillColor","Text","_default"],"sourceRoot":"../../../../src","sources":["ui/components/OxySignInButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -12,22 +12,11 @@ var _typography = require("@oxyhq/bloom/typography");
12
12
  var _theme = require("@oxyhq/bloom/theme");
13
13
  var _core = require("@oxyhq/core");
14
14
  var _useAuth = require("../hooks/useAuth.js");
15
+ var _OxyContext = require("../context/OxyContext.js");
15
16
  var _useI18n = require("../hooks/useI18n.js");
16
- var _ProfileMenu = _interopRequireDefault(require("./ProfileMenu.js"));
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
18
  const isWeb = _reactNative.Platform.OS === 'web';
20
19
 
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
20
  /**
32
21
  * Web-only Bluesky-style hover animation timings, mirrored from
33
22
  * `social-app/src/view/shell/desktop/LeftNav.tsx`. The row background and the
@@ -56,36 +45,27 @@ const prefersReducedMotion = () => {
56
45
  };
57
46
  /**
58
47
  * Self-contained sidebar account trigger, modeled on Bluesky's ProfileCard and
59
- * the Oxy inbox's `MailboxDrawer` footer. Owns its own open state + anchor
60
- * measurement, and renders {@link ProfileMenu} (the device-account switcher).
48
+ * the Oxy inbox's `MailboxDrawer` footer. Pressing it opens the unified
49
+ * {@link OxyAccountDialog} the single account switcher + sign-in surface — via
50
+ * `useOxy().openAccountDialog`.
61
51
  *
62
52
  * Three auth states from {@link useAuth}:
63
53
  * - **Undetermined** (`!isAuthResolved || isPrivateApiPending`): a neutral
64
54
  * avatar-sized skeleton circle, no press.
65
55
  * - **Signed in**: a pressable row — Bloom `Avatar` + display name + `@handle`
66
- * + an `unfold-more-horizontal` chevron. Press opens the menu upward (web)
67
- * against the measured trigger, or as a bottom sheet (native).
68
- * - **Signed out**: a "Sign in" row that calls `useAuth().signIn()`.
56
+ * + a chevron. Press opens the dialog on its `accounts` view.
57
+ * - **Signed out**: a "Sign in" row that calls `useAuth().signIn()` (which opens
58
+ * the dialog on its `signin` view).
69
59
  *
70
60
  * Styling uses react-native `StyleSheet` + the Bloom theme (via `useTheme`) so
71
61
  * the layout renders identically in EVERY consumer — including apps that do not
72
62
  * use NativeWind (e.g. the accounts app). Only the web hover animation keeps
73
63
  * dynamic inline `style` (the CSS transition/transform values), which is what
74
64
  * the `react-native-web-style.d.ts` augmentation exists for.
75
- *
76
- * All display strings resolve through `@oxyhq/core`'s
77
- * `getAccountDisplayName` / `getAccountFallbackHandle` — no hand-rolled name
78
- * fallbacks. Avatars pass the bare file id as `source` + `variant="thumb"`, so
79
- * the app's registered `ImageResolver` builds the thumbnail URL.
80
65
  */
81
66
  const ProfileButton = ({
82
67
  expanded = true,
83
68
  avatarSize,
84
- onNavigateManage,
85
- onAddAccount,
86
- onNavigateProfile,
87
- onBeforeSessionChange,
88
- placement = 'up',
89
69
  className,
90
70
  style
91
71
  }) => {
@@ -96,6 +76,9 @@ const ProfileButton = ({
96
76
  isPrivateApiPending,
97
77
  signIn
98
78
  } = (0, _useAuth.useAuth)();
79
+ const {
80
+ openAccountDialog
81
+ } = (0, _OxyContext.useOxy)();
99
82
  const {
100
83
  colors
101
84
  } = (0, _theme.useTheme)();
@@ -103,67 +86,15 @@ const ProfileButton = ({
103
86
  t,
104
87
  locale
105
88
  } = (0, _useI18n.useI18n)();
106
- const [menuOpen, setMenuOpen] = (0, _react.useState)(false);
107
- const [anchor, setAnchor] = (0, _react.useState)(null);
108
89
 
109
90
  // Web-only hover/focus tracking for the Bluesky-style reveal animation.
110
91
  // Native has no hover, so these stay false and the row renders statically.
111
92
  const [hovered, setHovered] = (0, _react.useState)(false);
112
93
  const [focused, setFocused] = (0, _react.useState)(false);
113
-
114
- // Trigger ref for the web anchor measurement. RN-Web exposes `measure()` on
115
- // host views, so we anchor the popover to the button rect and open upward.
116
- const triggerRef = (0, _react.useRef)(null);
117
94
  const resolvedAvatarSize = avatarSize ?? (expanded ? 40 : 32);
118
- const openMenu = (0, _react.useCallback)(() => {
119
- if (!isWeb) {
120
- setAnchor(null);
121
- setMenuOpen(true);
122
- return;
123
- }
124
- const node = triggerRef.current;
125
- if (!node || typeof node.measure !== 'function' || typeof window === 'undefined') {
126
- setAnchor(null);
127
- setMenuOpen(true);
128
- return;
129
- }
130
- node.measure((_x, _y, _w, height, pageX, pageY) => {
131
- if (typeof pageX !== 'number' || typeof pageY !== 'number') {
132
- setAnchor(null);
133
- } else {
134
- // Clamp the panel's left edge inside the viewport gutter.
135
- const maxLeft = Math.max(VIEWPORT_GUTTER, window.innerWidth - MENU_WIDTH - VIEWPORT_GUTTER);
136
- const left = Math.min(Math.max(VIEWPORT_GUTTER, pageX), maxLeft);
137
- // Bottom edge of the trigger in page coordinates. `height` is a
138
- // number for host views; guard defensively for non-web shims.
139
- const triggerBottom = pageY + (typeof height === 'number' ? height : 0);
140
- // Resolve `'auto'` by comparing the room below the trigger with
141
- // the room above it; pick whichever direction has more space.
142
- const openDown = placement === 'down' || placement === 'auto' && window.innerHeight - triggerBottom > pageY;
143
- if (openDown) {
144
- // Anchor the panel's TOP edge just below the trigger bottom so
145
- // the menu opens downward from a top-of-sidebar trigger.
146
- const top = Math.max(VIEWPORT_GUTTER, triggerBottom + VIEWPORT_GUTTER);
147
- setAnchor({
148
- left,
149
- top
150
- });
151
- } else {
152
- // Anchor the panel's BOTTOM edge just above the trigger top so
153
- // the menu opens upward from this footer button.
154
- const bottom = Math.max(VIEWPORT_GUTTER, window.innerHeight - pageY + VIEWPORT_GUTTER);
155
- setAnchor({
156
- left,
157
- bottom
158
- });
159
- }
160
- }
161
- setMenuOpen(true);
162
- });
163
- }, [placement]);
164
- const handleClose = (0, _react.useCallback)(() => {
165
- setMenuOpen(false);
166
- }, []);
95
+ const openDialog = (0, _react.useCallback)(() => {
96
+ openAccountDialog('accounts');
97
+ }, [openAccountDialog]);
167
98
 
168
99
  // ── Undetermined: skeleton circle, no interaction. ──────────────────────
169
100
  if (!isAuthResolved || isPrivateApiPending) {
@@ -225,10 +156,10 @@ const ProfileButton = ({
225
156
  size: resolvedAvatarSize
226
157
  });
227
158
 
228
- // `active` combines hover, keyboard focus, and menu-open — exactly like
229
- // Bluesky's `state.hovered || state.focused || control.isOpen`. Only web
230
- // ever sets `hovered`/`focused`, so on native this reduces to `menuOpen`.
231
- const active = hovered || focused || menuOpen;
159
+ // `active` combines hover and keyboard focus — exactly like Bluesky's
160
+ // `state.hovered || state.focused`. Only web ever sets these, so on native
161
+ // the row renders statically.
162
+ const active = hovered || focused;
232
163
  const accountLabel = t('accountSwitcher.switchWhileSignedInAs', {
233
164
  name: displayName
234
165
  }) || `Switch account, signed in as ${displayName}`;
@@ -251,26 +182,17 @@ const ProfileButton = ({
251
182
  transitionDuration: `${BG_TRANSITION_MS}ms`,
252
183
  transitionDelay: active ? '0ms' : `${LEAVE_DELAY_MS}ms`
253
184
  } : undefined;
254
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
185
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
255
186
  className: className,
256
187
  style: style,
257
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
258
- ref: triggerRef,
188
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
259
189
  style: [styles.collapsedTrigger, collapsedBgStyle],
260
- onPress: openMenu,
190
+ onPress: openDialog,
261
191
  accessibilityRole: "button",
262
192
  accessibilityLabel: accountLabel,
263
193
  ...webInteractionProps,
264
194
  children: avatarNode
265
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ProfileMenu.default, {
266
- open: menuOpen,
267
- onClose: handleClose,
268
- anchor: anchor,
269
- onNavigateManage: onNavigateManage,
270
- onAddAccount: onAddAccount,
271
- onNavigateProfile: onNavigateProfile,
272
- onBeforeSessionChange: onBeforeSessionChange
273
- })]
195
+ })
274
196
  });
275
197
  }
276
198
 
@@ -323,13 +245,12 @@ const ProfileButton = ({
323
245
  transitionDuration: `${OPACITY_TRANSITION_MS}ms`,
324
246
  transitionDelay: active ? '0ms' : `${LEAVE_DELAY_MS}ms`
325
247
  } : undefined;
326
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
248
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
327
249
  className: className,
328
250
  style: [styles.fullWidth, style],
329
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
330
- ref: triggerRef,
251
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
331
252
  style: [styles.row, styles.rowExpanded, rowStyle],
332
- onPress: openMenu,
253
+ onPress: openDialog,
333
254
  accessibilityRole: "button",
334
255
  accessibilityLabel: accountLabel,
335
256
  ...webInteractionProps,
@@ -359,15 +280,7 @@ const ProfileButton = ({
359
280
  color: colors.textSecondary
360
281
  })
361
282
  })]
362
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ProfileMenu.default, {
363
- open: menuOpen,
364
- onClose: handleClose,
365
- anchor: anchor,
366
- onNavigateManage: onNavigateManage,
367
- onAddAccount: onAddAccount,
368
- onNavigateProfile: onNavigateProfile,
369
- onBeforeSessionChange: onBeforeSessionChange
370
- })]
283
+ })
371
284
  });
372
285
  };
373
286
  const styles = _reactNative.StyleSheet.create({
@@ -1 +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","BG_TRANSITION_MS","AVATAR_TRANSITION_MS","OPACITY_TRANSITION_MS","LEAVE_DELAY_MS","ACTIVE_AVATAR_SCALE","prefersReducedMotion","window","matchMedia","matches","ProfileButton","expanded","avatarSize","onNavigateManage","onAddAccount","onNavigateProfile","onBeforeSessionChange","placement","className","style","user","isAuthenticated","isAuthResolved","isPrivateApiPending","signIn","useAuth","colors","useTheme","t","locale","useI18n","menuOpen","setMenuOpen","useState","anchor","setAnchor","hovered","setHovered","focused","setFocused","triggerRef","useRef","resolvedAvatarSize","openMenu","useCallback","node","current","measure","_x","_y","_w","height","pageX","pageY","maxLeft","Math","max","innerWidth","left","min","triggerBottom","openDown","innerHeight","top","bottom","handleClose","jsx","View","accessibilityElementsHidden","importantForAccessibility","children","styles","skeletonCircle","width","backgroundColor","backgroundSecondary","signInLabel","jsxs","Pressable","row","rowExpanded","onPress","accessibilityRole","accessibilityLabel","avatarBadge","MaterialCommunityIcons","name","size","round","color","icon","Text","text","numberOfLines","displayName","getAccountDisplayName","handle","getAccountFallbackHandle","handleLine","avatarNode","Avatar","source","avatar","undefined","variant","active","accountLabel","webInteractionProps","onHoverIn","onHoverOut","onFocus","onBlur","collapsedBgStyle","transitionProperty","transitionDuration","transitionDelay","ref","collapsedTrigger","open","onClose","reducedMotion","activeAvatarTranslateX","rowStyle","avatarWrapperStyle","zIndex","transform","scale","translateX","identityStyle","marginLeft","opacity","chevronStyle","fullWidth","identity","textSecondary","StyleSheet","create","borderRadius","flexDirection","alignItems","gap","paddingHorizontal","paddingVertical","justifyContent","flex","fontWeight","minWidth","fontSize","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/components/ProfileButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_vectorIcons","_avatar","_typography","_theme","_core","_useAuth","_OxyContext","_useI18n","_jsxRuntime","isWeb","Platform","OS","BG_TRANSITION_MS","AVATAR_TRANSITION_MS","OPACITY_TRANSITION_MS","LEAVE_DELAY_MS","ACTIVE_AVATAR_SCALE","prefersReducedMotion","window","matchMedia","matches","ProfileButton","expanded","avatarSize","className","style","user","isAuthenticated","isAuthResolved","isPrivateApiPending","signIn","useAuth","openAccountDialog","useOxy","colors","useTheme","t","locale","useI18n","hovered","setHovered","useState","focused","setFocused","resolvedAvatarSize","openDialog","useCallback","jsx","View","accessibilityElementsHidden","importantForAccessibility","children","styles","skeletonCircle","width","height","backgroundColor","backgroundSecondary","signInLabel","jsxs","Pressable","row","rowExpanded","onPress","accessibilityRole","accessibilityLabel","avatarBadge","MaterialCommunityIcons","name","size","Math","round","color","icon","Text","text","numberOfLines","displayName","getAccountDisplayName","handle","getAccountFallbackHandle","handleLine","avatarNode","Avatar","source","avatar","undefined","variant","active","accountLabel","webInteractionProps","onHoverIn","onHoverOut","onFocus","onBlur","collapsedBgStyle","transitionProperty","transitionDuration","transitionDelay","collapsedTrigger","reducedMotion","activeAvatarTranslateX","rowStyle","avatarWrapperStyle","zIndex","transform","scale","translateX","identityStyle","marginLeft","opacity","chevronStyle","fullWidth","identity","textSecondary","StyleSheet","create","borderRadius","flexDirection","alignItems","gap","paddingHorizontal","paddingVertical","justifyContent","flex","fontWeight","minWidth","fontSize","_default","exports","default"],"sourceRoot":"../../../../src","sources":["ui/components/ProfileButton.tsx"],"mappings":"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","ignoreList":[]}