@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
@@ -1,14 +1,59 @@
1
1
  "use strict";
2
2
 
3
- import { useCallback, useState, useEffect, useMemo } from 'react';
3
+ import { useCallback, useState, useEffect, useMemo, useRef } from 'react';
4
4
  import { TouchableOpacity, Text, View, StyleSheet, Platform } from 'react-native';
5
+ import { logger, generatePkcePair, generateOAuthState, buildOAuthAuthorizeUrl } from '@oxyhq/core';
5
6
  import { useAuthStore } from "../stores/authStore.js";
6
7
  import { useShallow } from 'zustand/react/shallow';
7
8
  import { useTheme } from '@oxyhq/bloom/theme';
8
9
  import { useOxy } from "../context/OxyContext.js";
9
10
  import OxyLogo from "./OxyLogo.js";
10
- import { showSignInModal, subscribeToSignInModal } from "./SignInModal.js";
11
+ import { subscribeToSignInModal } from "../navigation/accountDialogManager.js";
12
+ import { redirectToAuthorize, openAuthorizeUrlNative } from "./oauthNavigation.js";
13
+
14
+ /**
15
+ * `sessionStorage` keys under which a third-party "Sign in with Oxy" OAuth flow
16
+ * persists its CSRF `state` and PKCE `code_verifier` across the authorize
17
+ * redirect. The Relying Party's redirect-URI callback reads them back to
18
+ * validate the returned `state` and replay the verifier on the token exchange.
19
+ *
20
+ * Web only: a browser RP navigates away to `auth.oxy.so` and back, so the
21
+ * handshake must survive a full-page redirect. Native completes the flow inside
22
+ * a single `WebBrowser` auth session and surfaces the handshake via
23
+ * {@link OxySignInButtonProps.onOAuthResult} instead.
24
+ */
11
25
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
26
+ export const OXY_OAUTH_STATE_STORAGE_KEY = 'oxy_oauth_state';
27
+ export const OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY = 'oxy_oauth_code_verifier';
28
+
29
+ /**
30
+ * The OAuth handshake surfaced to a NATIVE third-party RP via
31
+ * {@link OxySignInButtonProps.onOAuthResult} so it can finish the code exchange
32
+ * (`POST /auth/oauth/token`). Web RPs read the same `state` / `code_verifier`
33
+ * back from `sessionStorage` across the redirect and do not need this callback.
34
+ */
35
+
36
+ /**
37
+ * Persist the OAuth CSRF `state` + PKCE `code_verifier` for the RP callback.
38
+ * Returns `false` when the handshake could not be stored — no `sessionStorage`
39
+ * (SSR / non-browser host) or a write that threw (`SecurityError` /
40
+ * `QuotaExceededError`, e.g. Safari private mode) — so the caller aborts the
41
+ * flow cleanly rather than redirect to a callback that cannot validate `state`.
42
+ */
43
+ function persistOAuthHandshake(state, codeVerifier) {
44
+ const store = globalThis.sessionStorage;
45
+ try {
46
+ if (!store) throw new Error('sessionStorage is unavailable');
47
+ store.setItem(OXY_OAUTH_STATE_STORAGE_KEY, state);
48
+ store.setItem(OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY, codeVerifier);
49
+ return true;
50
+ } catch (error) {
51
+ logger.warn('OxySignInButton: could not persist the OAuth handshake to sessionStorage; aborting third-party sign-in', {
52
+ component: 'OxySignInButton'
53
+ }, error);
54
+ return false;
55
+ }
56
+ }
12
57
  /**
13
58
  * A pre-styled button component for signing in with Oxy identity
14
59
  *
@@ -40,11 +85,15 @@ export const OxySignInButton = ({
40
85
  textStyle,
41
86
  text = 'Sign in with Oxy',
42
87
  disabled = false,
43
- showWhenAuthenticated = false
88
+ showWhenAuthenticated = false,
89
+ oauthRedirectUri,
90
+ onOAuthResult
44
91
  }) => {
45
92
  const theme = useTheme();
46
93
  const {
47
- showBottomSheet
94
+ openAccountDialog,
95
+ oxyServices,
96
+ clientId
48
97
  } = useOxy();
49
98
  const {
50
99
  isAuthenticated,
@@ -53,32 +102,142 @@ export const OxySignInButton = ({
53
102
  isAuthenticated: state.isAuthenticated,
54
103
  isLoading: state.isLoading
55
104
  })));
56
- // Tracks visibility of the web full-screen sign-in modal so we can show
57
- // "Signing in..." while it's open. On native we open a bottom sheet whose
58
- // visibility is owned by the sheet manager — no subscription needed.
105
+ // Tracks whether the unified account dialog is open so we can show
106
+ // "Signing in..." while it is. The manager reports visibility on every
107
+ // change regardless of platform or what opened/closed it.
59
108
  const [isModalOpen, setIsModalOpen] = useState(false);
109
+ useEffect(() => subscribeToSignInModal(setIsModalOpen), []);
60
110
 
61
- // Subscribe to web modal visibility only bottom sheet manages its own state.
62
- useEffect(() => {
63
- if (Platform.OS !== 'web') return;
64
- return subscribeToSignInModal(setIsModalOpen);
65
- }, []);
111
+ // The application's public identity is resolved lazily on first press and its
112
+ // promise cached, so rapid taps share one in-flight resolve. The cache is
113
+ // KEYED on the identity inputs (clientId + the oxyServices instance): if
114
+ // either changes the cache is invalidated and re-resolved — without a
115
+ // useEffect. A rejected resolve clears the cache so a later press can retry.
116
+ const appResolutionRef = useRef(null);
117
+ // Re-entrancy guard: a routing pass may await network + crypto before it
118
+ // redirects, so block a second concurrent press from racing the sessionStorage
119
+ // handshake against a different PKCE pair.
120
+ const routingRef = useRef(false);
121
+ const resolvePublicApplication = useCallback(() => {
122
+ if (!clientId) return null;
123
+ const cached = appResolutionRef.current;
124
+ if (cached && cached.clientId === clientId && cached.oxyServices === oxyServices) {
125
+ return cached.promise;
126
+ }
127
+ const promise = oxyServices.getPublicApplication(clientId).catch(error => {
128
+ // Only clear if this is still the live entry (a later resolve may have
129
+ // replaced it after a clientId/oxyServices change).
130
+ if (appResolutionRef.current?.promise === promise) {
131
+ appResolutionRef.current = null;
132
+ }
133
+ throw error;
134
+ });
135
+ appResolutionRef.current = {
136
+ clientId,
137
+ oxyServices,
138
+ promise
139
+ };
140
+ return promise;
141
+ }, [clientId, oxyServices]);
66
142
 
67
- // Handle button press
68
- // - Web: full-screen modal (dialog UX fits desktop / browser)
69
- // - Native: bottom sheet (sheet UX fits iOS/Android)
143
+ // Official / first-party surface: the in-app account + sign-in dialog.
144
+ const startOfficialSignIn = useCallback(() => {
145
+ openAccountDialog('signin');
146
+ }, [openAccountDialog]);
147
+
148
+ // Third-party surface: an OAuth 2.0 authorization-code + PKCE redirect to
149
+ // auth.oxy.so. No FedCM, no SSO bounce, no Oxy session cookies.
150
+ const startThirdPartyOAuth = useCallback(async app => {
151
+ if (!clientId) {
152
+ startOfficialSignIn();
153
+ return;
154
+ }
155
+ if (!oauthRedirectUri) {
156
+ logger.error('OxySignInButton: a third_party application requires the `oauthRedirectUri` prop to start the OAuth redirect; sign-in aborted', undefined, {
157
+ component: 'OxySignInButton',
158
+ clientId,
159
+ application: app.name
160
+ });
161
+ return;
162
+ }
163
+ const [pkce, state] = await Promise.all([generatePkcePair(), generateOAuthState()]);
164
+ const authorizeUrl = buildOAuthAuthorizeUrl({
165
+ clientId,
166
+ redirectUri: oauthRedirectUri,
167
+ state,
168
+ codeChallenge: pkce.codeChallenge
169
+ });
170
+ if (Platform.OS === 'web') {
171
+ // Persist the handshake for the RP callback, then hand the
172
+ // top-level document to the IdP. Without storage the callback
173
+ // cannot validate `state`, so abort cleanly rather than redirect.
174
+ if (!persistOAuthHandshake(state, pkce.codeVerifier)) {
175
+ return;
176
+ }
177
+ redirectToAuthorize(authorizeUrl);
178
+ return;
179
+ }
180
+
181
+ // Native: open the in-app auth session, then hand the handshake to the
182
+ // RP so it can complete the token exchange from its deep-link callback.
183
+ const {
184
+ redirectUrl
185
+ } = await openAuthorizeUrlNative(authorizeUrl, oauthRedirectUri);
186
+ if (onOAuthResult) {
187
+ onOAuthResult({
188
+ redirectUrl,
189
+ state,
190
+ codeVerifier: pkce.codeVerifier
191
+ });
192
+ return;
193
+ }
194
+ 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)', {
195
+ component: 'OxySignInButton',
196
+ application: app.name
197
+ });
198
+ }, [clientId, oauthRedirectUri, onOAuthResult, startOfficialSignIn]);
199
+
200
+ // Resolve the Application once, then route: third-party → OAuth redirect;
201
+ // first-party / official / unresolved → the in-app dialog. Resolution failure
202
+ // NEVER breaks an official app's sign-in — it falls back to the dialog.
203
+ const routeSignIn = useCallback(async () => {
204
+ if (routingRef.current) return;
205
+ routingRef.current = true;
206
+ try {
207
+ const resolving = resolvePublicApplication();
208
+ if (!resolving) {
209
+ startOfficialSignIn();
210
+ return;
211
+ }
212
+ let app;
213
+ try {
214
+ app = await resolving;
215
+ } catch (error) {
216
+ logger.warn('OxySignInButton: could not resolve the application; opening the sign-in dialog', {
217
+ component: 'OxySignInButton',
218
+ clientId
219
+ }, error);
220
+ startOfficialSignIn();
221
+ return;
222
+ }
223
+ if (app.type === 'third_party' && !app.isOfficial) {
224
+ await startThirdPartyOAuth(app);
225
+ return;
226
+ }
227
+ startOfficialSignIn();
228
+ } finally {
229
+ routingRef.current = false;
230
+ }
231
+ }, [resolvePublicApplication, startOfficialSignIn, startThirdPartyOAuth, clientId]);
232
+
233
+ // Defer to a caller-supplied handler, otherwise route by application type.
70
234
  const handlePress = useCallback(() => {
71
235
  if (onPress) {
72
236
  onPress();
73
237
  return;
74
238
  }
75
- if (Platform.OS === 'web') {
76
- setIsModalOpen(true);
77
- showSignInModal();
78
- } else {
79
- showBottomSheet?.('OxyAuth');
80
- }
81
- }, [onPress, showBottomSheet]);
239
+ void routeSignIn();
240
+ }, [onPress, routeSignIn]);
82
241
  const themedStyles = useMemo(() => StyleSheet.create({
83
242
  button: {
84
243
  padding: 14,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useState","useEffect","useMemo","TouchableOpacity","Text","View","StyleSheet","Platform","useAuthStore","useShallow","useTheme","useOxy","OxyLogo","showSignInModal","subscribeToSignInModal","jsx","_jsx","jsxs","_jsxs","OxySignInButton","variant","onPress","style","textStyle","text","disabled","showWhenAuthenticated","theme","showBottomSheet","isAuthenticated","isLoading","state","isModalOpen","setIsModalOpen","OS","handlePress","themedStyles","create","button","padding","borderRadius","alignItems","justifyContent","buttonDefault","backgroundColor","colors","card","borderWidth","borderColor","borderLight","select","web","boxShadow","default","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","children","size","fillColor","innerFillColor"],"sourceRoot":"../../../../src","sources":["ui/components/OxySignInButton.tsx"],"mappings":";;AACA,SAASA,WAAW,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AACjE,SAASC,gBAAgB,EAAEC,IAAI,EAAEC,IAAI,EAAEC,UAAU,EAAkDC,QAAQ,QAAQ,cAAc;AACjI,SAASC,YAAY,QAAQ,wBAAqB;AAClD,SAASC,UAAU,QAAQ,uBAAuB;AAClD,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,MAAM,QAAQ,0BAAuB;AAC9C,OAAOC,OAAO,MAAM,cAAW;AAC/B,SAASC,eAAe,EAAEC,sBAAsB,QAAQ,kBAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AA4CxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAA+C,GAAGA,CAAC;EAC5DC,OAAO,GAAG,SAAS;EACnBC,OAAO;EACPC,KAAK;EACLC,SAAS;EACTC,IAAI,GAAG,kBAAkB;EACzBC,QAAQ,GAAG,KAAK;EAChBC,qBAAqB,GAAG;AAC5B,CAAC,KAAK;EACF,MAAMC,KAAK,GAAGjB,QAAQ,CAAC,CAAC;EACxB,MAAM;IAAEkB;EAAgB,CAAC,GAAGjB,MAAM,CAAC,CAAC;EACpC,MAAM;IAAEkB,eAAe;IAAEC;EAAU,CAAC,GAAGtB,YAAY,CAC/CC,UAAU,CAAEsB,KAAK,KAAM;IAAEF,eAAe,EAAEE,KAAK,CAACF,eAAe;IAAEC,SAAS,EAAEC,KAAK,CAACD;EAAU,CAAC,CAAC,CAClG,CAAC;EACD;EACA;EACA;EACA,MAAM,CAACE,WAAW,EAAEC,cAAc,CAAC,GAAGjC,QAAQ,CAAC,KAAK,CAAC;;EAErD;EACAC,SAAS,CAAC,MAAM;IACZ,IAAIM,QAAQ,CAAC2B,EAAE,KAAK,KAAK,EAAE;IAC3B,OAAOpB,sBAAsB,CAACmB,cAAc,CAAC;EACjD,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA;EACA;EACA,MAAME,WAAW,GAAGpC,WAAW,CAAC,MAAM;IAClC,IAAIsB,OAAO,EAAE;MACTA,OAAO,CAAC,CAAC;MACT;IACJ;IAEA,IAAId,QAAQ,CAAC2B,EAAE,KAAK,KAAK,EAAE;MACvBD,cAAc,CAAC,IAAI,CAAC;MACpBpB,eAAe,CAAC,CAAC;IACrB,CAAC,MAAM;MACHe,eAAe,GAAG,SAAS,CAAC;IAChC;EACJ,CAAC,EAAE,CAACP,OAAO,EAAEO,eAAe,CAAC,CAAC;EAE9B,MAAMQ,YAAY,GAAGlC,OAAO,CAAC,MAAMI,UAAU,CAAC+B,MAAM,CAAC;IACjDC,MAAM,EAAE;MACJC,OAAO,EAAE,EAAE;MACXC,YAAY,EAAE,EAAE;MAChBC,UAAU,EAAE,QAAQ;MACpBC,cAAc,EAAE;IACpB,CAAC;IACDC,aAAa,EAAE;MACXC,eAAe,EAAEjB,KAAK,CAACkB,MAAM,CAACC,IAAI;MAClCC,WAAW,EAAE,CAAC;MACdC,WAAW,EAAErB,KAAK,CAACkB,MAAM,CAACI,WAAW;MACrC,GAAG1C,QAAQ,CAAC2C,MAAM,CAAC;QACfC,GAAG,EAAE;UACDC,SAAS,EAAE;QACf,CAAC;QACDC,OAAO,EAAE;UACLC,WAAW,EAAE,SAAS;UACtBC,YAAY,EAAE;YAAEC,KAAK,EAAE,CAAC;YAAEC,MAAM,EAAE;UAAE,CAAC;UACrCC,aAAa,EAAE,GAAG;UAClBC,YAAY,EAAE,CAAC;UACfC,SAAS,EAAE;QACf;MACJ,CAAC;IACL,CAAC;IACDC,aAAa,EAAE;MACXjB,eAAe,EAAE,aAAa;MAC9BG,WAAW,EAAE,CAAC;MACdC,WAAW,EAAErB,KAAK,CAACkB,MAAM,CAACiB;IAC9B,CAAC;IACDC,eAAe,EAAE;MACbnB,eAAe,EAAEjB,KAAK,CAACkB,MAAM,CAACiB;IAClC,CAAC;IACDE,cAAc,EAAE;MACZC,OAAO,EAAE;IACb,CAAC;IACDC,aAAa,EAAE;MACXC,aAAa,EAAE,KAAK;MACpB1B,UAAU,EAAE,QAAQ;MACpBC,cAAc,EAAE;IACpB,CAAC;IACDlB,IAAI,EAAE;MACF;MACA;MACA;MACA4C,UAAU,EAAE7D,QAAQ,CAAC2B,EAAE,KAAK,KAAK,GAAG,KAAK,GAAGmC,SAAS;MACrDC,QAAQ,EAAE,EAAE;MACZC,UAAU,EAAE;IAChB,CAAC;IACDC,WAAW,EAAE;MACTC,KAAK,EAAE9C,KAAK,CAACkB,MAAM,CAACrB;IACxB,CAAC;IACDkD,WAAW,EAAE;MACTD,KAAK,EAAE9C,KAAK,CAACkB,MAAM,CAACiB;IACxB,CAAC;IACDa,aAAa,EAAE;MACXF,KAAK,EAAE;IACX,CAAC;IACDG,YAAY,EAAE;MACVH,KAAK,EAAE9C,KAAK,CAACkB,MAAM,CAACgC;IACxB;EACJ,CAAC,CAAC,EAAE,CAAClD,KAAK,CAAC,CAAC;;EAEZ;EACA,IAAIE,eAAe,IAAI,CAACH,qBAAqB,EAAE,OAAO,IAAI;EAE1D,MAAMoD,gBAAgB,GAAGrD,QAAQ,IAAIK,SAAS,IAAIE,WAAW;;EAE7D;EACA,MAAM+C,cAAc,GAAGA,CAAA,KAAM;IACzB,QAAQ3D,OAAO;MACX,KAAK,SAAS;QACV,OAAO,CAACgB,YAAY,CAACyB,aAAa,EAAEvC,KAAK,CAAC;MAC9C,KAAK,WAAW;QACZ,OAAO,CAACc,YAAY,CAAC2B,eAAe,EAAEzC,KAAK,CAAC;MAChD;QACI,OAAO,CAACc,YAAY,CAACO,aAAa,EAAErB,KAAK,CAAC;IAClD;EACJ,CAAC;;EAED;EACA,MAAM0D,YAAY,GAAGA,CAAA,KAAM;IACvB,QAAQ5D,OAAO;MACX,KAAK,SAAS;QACV,OAAO,CAACgB,YAAY,CAACsC,WAAW,EAAEnD,SAAS,CAAC;MAChD,KAAK,WAAW;QACZ,OAAO,CAACa,YAAY,CAACuC,aAAa,EAAEpD,SAAS,CAAC;MAClD;QACI,OAAO,CAACa,YAAY,CAACoC,WAAW,EAAEjD,SAAS,CAAC;IACpD;EACJ,CAAC;EAED,oBACIP,IAAA,CAACb,gBAAgB;IACbmB,KAAK,EAAE,CAACc,YAAY,CAACE,MAAM,EAAEyC,cAAc,CAAC,CAAC,EAAED,gBAAgB,IAAI1C,YAAY,CAAC4B,cAAc,CAAE;IAChG3C,OAAO,EAAEc,WAAY;IACrBV,QAAQ,EAAEqD,gBAAiB;IAAAG,QAAA,eAE3B/D,KAAA,CAACb,IAAI;MAACiB,KAAK,EAAEc,YAAY,CAAC8B,aAAc;MAAAe,QAAA,gBACpCjE,IAAA,CAACJ,OAAO;QACJQ,OAAO,EAAC,MAAM;QACd8D,IAAI,EAAE,EAAG;QACTC,SAAS,EAAE/D,OAAO,KAAK,WAAW,GAAG,OAAO,GAAGO,KAAK,CAACkB,MAAM,CAACiB,OAAQ;QACpEsB,cAAc,EAAEhE,OAAO,KAAK,WAAW,GAAGO,KAAK,CAACkB,MAAM,CAACiB,OAAO,GAAGO,SAAU;QAC3E/C,KAAK,EAAEwD,gBAAgB,GAAG;UAAEb,OAAO,EAAE;QAAI,CAAC,GAAGI;MAAU,CAC1D,CAAC,eACFrD,IAAA,CAACZ,IAAI;QAACkB,KAAK,EAAE,CAACc,YAAY,CAACZ,IAAI,EAAEwD,YAAY,CAAC,CAAC,EAAEF,gBAAgB,IAAI1C,YAAY,CAACwC,YAAY,CAAE;QAAAK,QAAA,EAC3FnD,SAAS,IAAIE,WAAW,GAAG,eAAe,GAAGR;MAAI,CAChD,CAAC;IAAA,CACL;EAAC,CACO,CAAC;AAE3B,CAAC;AAED,eAAeL,eAAe","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useState","useEffect","useMemo","useRef","TouchableOpacity","Text","View","StyleSheet","Platform","logger","generatePkcePair","generateOAuthState","buildOAuthAuthorizeUrl","useAuthStore","useShallow","useTheme","useOxy","OxyLogo","subscribeToSignInModal","redirectToAuthorize","openAuthorizeUrlNative","jsx","_jsx","jsxs","_jsxs","OXY_OAUTH_STATE_STORAGE_KEY","OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY","persistOAuthHandshake","state","codeVerifier","store","globalThis","sessionStorage","Error","setItem","error","warn","component","OxySignInButton","variant","onPress","style","textStyle","text","disabled","showWhenAuthenticated","oauthRedirectUri","onOAuthResult","theme","openAccountDialog","oxyServices","clientId","isAuthenticated","isLoading","isModalOpen","setIsModalOpen","appResolutionRef","routingRef","resolvePublicApplication","cached","current","promise","getPublicApplication","catch","startOfficialSignIn","startThirdPartyOAuth","app","undefined","application","name","pkce","Promise","all","authorizeUrl","redirectUri","codeChallenge","OS","redirectUrl","routeSignIn","resolving","type","isOfficial","handlePress","themedStyles","create","button","padding","borderRadius","alignItems","justifyContent","buttonDefault","backgroundColor","colors","card","borderWidth","borderColor","borderLight","select","web","boxShadow","default","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","children","size","fillColor","innerFillColor"],"sourceRoot":"../../../../src","sources":["ui/components/OxySignInButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { useCallback, useRef, useState } from 'react';
3
+ import { useCallback, useState } from 'react';
4
4
  import { View, Pressable, StyleSheet, Platform } from 'react-native';
5
5
  import { MaterialCommunityIcons } from '@expo/vector-icons';
6
6
  import { Avatar } from '@oxyhq/bloom/avatar';
@@ -8,21 +8,11 @@ import { Text } from '@oxyhq/bloom/typography';
8
8
  import { useTheme } from '@oxyhq/bloom/theme';
9
9
  import { getAccountDisplayName, getAccountFallbackHandle } from '@oxyhq/core';
10
10
  import { useAuth } from "../hooks/useAuth.js";
11
+ import { useOxy } from "../context/OxyContext.js";
11
12
  import { useI18n } from "../hooks/useI18n.js";
12
- import ProfileMenu from "./ProfileMenu.js";
13
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
14
  const isWeb = Platform.OS === 'web';
15
15
 
16
- /**
17
- * Fixed popover width used by {@link ProfileMenu} on web. `ProfileButton`
18
- * mirrors this constant when computing the trigger-relative anchor so the
19
- * left-edge clamp keeps the panel fully on-screen. Keep the two in sync.
20
- */
21
- const MENU_WIDTH = 300;
22
-
23
- /** Gutter, in px, kept between the popover and the viewport edges on web. */
24
- const VIEWPORT_GUTTER = 8;
25
-
26
16
  /**
27
17
  * Web-only Bluesky-style hover animation timings, mirrored from
28
18
  * `social-app/src/view/shell/desktop/LeftNav.tsx`. The row background and the
@@ -51,36 +41,27 @@ const prefersReducedMotion = () => {
51
41
  };
52
42
  /**
53
43
  * Self-contained sidebar account trigger, modeled on Bluesky's ProfileCard and
54
- * the Oxy inbox's `MailboxDrawer` footer. Owns its own open state + anchor
55
- * measurement, and renders {@link ProfileMenu} (the device-account switcher).
44
+ * the Oxy inbox's `MailboxDrawer` footer. Pressing it opens the unified
45
+ * {@link OxyAccountDialog} the single account switcher + sign-in surface — via
46
+ * `useOxy().openAccountDialog`.
56
47
  *
57
48
  * Three auth states from {@link useAuth}:
58
49
  * - **Undetermined** (`!isAuthResolved || isPrivateApiPending`): a neutral
59
50
  * avatar-sized skeleton circle, no press.
60
51
  * - **Signed in**: a pressable row — Bloom `Avatar` + display name + `@handle`
61
- * + an `unfold-more-horizontal` chevron. Press opens the menu upward (web)
62
- * against the measured trigger, or as a bottom sheet (native).
63
- * - **Signed out**: a "Sign in" row that calls `useAuth().signIn()`.
52
+ * + a chevron. Press opens the dialog on its `accounts` view.
53
+ * - **Signed out**: a "Sign in" row that calls `useAuth().signIn()` (which opens
54
+ * the dialog on its `signin` view).
64
55
  *
65
56
  * Styling uses react-native `StyleSheet` + the Bloom theme (via `useTheme`) so
66
57
  * the layout renders identically in EVERY consumer — including apps that do not
67
58
  * use NativeWind (e.g. the accounts app). Only the web hover animation keeps
68
59
  * dynamic inline `style` (the CSS transition/transform values), which is what
69
60
  * the `react-native-web-style.d.ts` augmentation exists for.
70
- *
71
- * All display strings resolve through `@oxyhq/core`'s
72
- * `getAccountDisplayName` / `getAccountFallbackHandle` — no hand-rolled name
73
- * fallbacks. Avatars pass the bare file id as `source` + `variant="thumb"`, so
74
- * the app's registered `ImageResolver` builds the thumbnail URL.
75
61
  */
76
62
  const ProfileButton = ({
77
63
  expanded = true,
78
64
  avatarSize,
79
- onNavigateManage,
80
- onAddAccount,
81
- onNavigateProfile,
82
- onBeforeSessionChange,
83
- placement = 'up',
84
65
  className,
85
66
  style
86
67
  }) => {
@@ -91,6 +72,9 @@ const ProfileButton = ({
91
72
  isPrivateApiPending,
92
73
  signIn
93
74
  } = useAuth();
75
+ const {
76
+ openAccountDialog
77
+ } = useOxy();
94
78
  const {
95
79
  colors
96
80
  } = useTheme();
@@ -98,67 +82,15 @@ const ProfileButton = ({
98
82
  t,
99
83
  locale
100
84
  } = useI18n();
101
- const [menuOpen, setMenuOpen] = useState(false);
102
- const [anchor, setAnchor] = useState(null);
103
85
 
104
86
  // Web-only hover/focus tracking for the Bluesky-style reveal animation.
105
87
  // Native has no hover, so these stay false and the row renders statically.
106
88
  const [hovered, setHovered] = useState(false);
107
89
  const [focused, setFocused] = useState(false);
108
-
109
- // Trigger ref for the web anchor measurement. RN-Web exposes `measure()` on
110
- // host views, so we anchor the popover to the button rect and open upward.
111
- const triggerRef = useRef(null);
112
90
  const resolvedAvatarSize = avatarSize ?? (expanded ? 40 : 32);
113
- const openMenu = useCallback(() => {
114
- if (!isWeb) {
115
- setAnchor(null);
116
- setMenuOpen(true);
117
- return;
118
- }
119
- const node = triggerRef.current;
120
- if (!node || typeof node.measure !== 'function' || typeof window === 'undefined') {
121
- setAnchor(null);
122
- setMenuOpen(true);
123
- return;
124
- }
125
- node.measure((_x, _y, _w, height, pageX, pageY) => {
126
- if (typeof pageX !== 'number' || typeof pageY !== 'number') {
127
- setAnchor(null);
128
- } else {
129
- // Clamp the panel's left edge inside the viewport gutter.
130
- const maxLeft = Math.max(VIEWPORT_GUTTER, window.innerWidth - MENU_WIDTH - VIEWPORT_GUTTER);
131
- const left = Math.min(Math.max(VIEWPORT_GUTTER, pageX), maxLeft);
132
- // Bottom edge of the trigger in page coordinates. `height` is a
133
- // number for host views; guard defensively for non-web shims.
134
- const triggerBottom = pageY + (typeof height === 'number' ? height : 0);
135
- // Resolve `'auto'` by comparing the room below the trigger with
136
- // the room above it; pick whichever direction has more space.
137
- const openDown = placement === 'down' || placement === 'auto' && window.innerHeight - triggerBottom > pageY;
138
- if (openDown) {
139
- // Anchor the panel's TOP edge just below the trigger bottom so
140
- // the menu opens downward from a top-of-sidebar trigger.
141
- const top = Math.max(VIEWPORT_GUTTER, triggerBottom + VIEWPORT_GUTTER);
142
- setAnchor({
143
- left,
144
- top
145
- });
146
- } else {
147
- // Anchor the panel's BOTTOM edge just above the trigger top so
148
- // the menu opens upward from this footer button.
149
- const bottom = Math.max(VIEWPORT_GUTTER, window.innerHeight - pageY + VIEWPORT_GUTTER);
150
- setAnchor({
151
- left,
152
- bottom
153
- });
154
- }
155
- }
156
- setMenuOpen(true);
157
- });
158
- }, [placement]);
159
- const handleClose = useCallback(() => {
160
- setMenuOpen(false);
161
- }, []);
91
+ const openDialog = useCallback(() => {
92
+ openAccountDialog('accounts');
93
+ }, [openAccountDialog]);
162
94
 
163
95
  // ── Undetermined: skeleton circle, no interaction. ──────────────────────
164
96
  if (!isAuthResolved || isPrivateApiPending) {
@@ -220,10 +152,10 @@ const ProfileButton = ({
220
152
  size: resolvedAvatarSize
221
153
  });
222
154
 
223
- // `active` combines hover, keyboard focus, and menu-open — exactly like
224
- // Bluesky's `state.hovered || state.focused || control.isOpen`. Only web
225
- // ever sets `hovered`/`focused`, so on native this reduces to `menuOpen`.
226
- const active = hovered || focused || menuOpen;
155
+ // `active` combines hover and keyboard focus — exactly like Bluesky's
156
+ // `state.hovered || state.focused`. Only web ever sets these, so on native
157
+ // the row renders statically.
158
+ const active = hovered || focused;
227
159
  const accountLabel = t('accountSwitcher.switchWhileSignedInAs', {
228
160
  name: displayName
229
161
  }) || `Switch account, signed in as ${displayName}`;
@@ -246,26 +178,17 @@ const ProfileButton = ({
246
178
  transitionDuration: `${BG_TRANSITION_MS}ms`,
247
179
  transitionDelay: active ? '0ms' : `${LEAVE_DELAY_MS}ms`
248
180
  } : undefined;
249
- return /*#__PURE__*/_jsxs(View, {
181
+ return /*#__PURE__*/_jsx(View, {
250
182
  className: className,
251
183
  style: style,
252
- children: [/*#__PURE__*/_jsx(Pressable, {
253
- ref: triggerRef,
184
+ children: /*#__PURE__*/_jsx(Pressable, {
254
185
  style: [styles.collapsedTrigger, collapsedBgStyle],
255
- onPress: openMenu,
186
+ onPress: openDialog,
256
187
  accessibilityRole: "button",
257
188
  accessibilityLabel: accountLabel,
258
189
  ...webInteractionProps,
259
190
  children: avatarNode
260
- }), /*#__PURE__*/_jsx(ProfileMenu, {
261
- open: menuOpen,
262
- onClose: handleClose,
263
- anchor: anchor,
264
- onNavigateManage: onNavigateManage,
265
- onAddAccount: onAddAccount,
266
- onNavigateProfile: onNavigateProfile,
267
- onBeforeSessionChange: onBeforeSessionChange
268
- })]
191
+ })
269
192
  });
270
193
  }
271
194
 
@@ -318,13 +241,12 @@ const ProfileButton = ({
318
241
  transitionDuration: `${OPACITY_TRANSITION_MS}ms`,
319
242
  transitionDelay: active ? '0ms' : `${LEAVE_DELAY_MS}ms`
320
243
  } : undefined;
321
- return /*#__PURE__*/_jsxs(View, {
244
+ return /*#__PURE__*/_jsx(View, {
322
245
  className: className,
323
246
  style: [styles.fullWidth, style],
324
- children: [/*#__PURE__*/_jsxs(Pressable, {
325
- ref: triggerRef,
247
+ children: /*#__PURE__*/_jsxs(Pressable, {
326
248
  style: [styles.row, styles.rowExpanded, rowStyle],
327
- onPress: openMenu,
249
+ onPress: openDialog,
328
250
  accessibilityRole: "button",
329
251
  accessibilityLabel: accountLabel,
330
252
  ...webInteractionProps,
@@ -354,15 +276,7 @@ const ProfileButton = ({
354
276
  color: colors.textSecondary
355
277
  })
356
278
  })]
357
- }), /*#__PURE__*/_jsx(ProfileMenu, {
358
- open: menuOpen,
359
- onClose: handleClose,
360
- anchor: anchor,
361
- onNavigateManage: onNavigateManage,
362
- onAddAccount: onAddAccount,
363
- onNavigateProfile: onNavigateProfile,
364
- onBeforeSessionChange: onBeforeSessionChange
365
- })]
279
+ })
366
280
  });
367
281
  };
368
282
  const styles = StyleSheet.create({
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useRef","useState","View","Pressable","StyleSheet","Platform","MaterialCommunityIcons","Avatar","Text","useTheme","getAccountDisplayName","getAccountFallbackHandle","useAuth","useI18n","ProfileMenu","jsx","_jsx","jsxs","_jsxs","isWeb","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","colors","t","locale","menuOpen","setMenuOpen","anchor","setAnchor","hovered","setHovered","focused","setFocused","triggerRef","resolvedAvatarSize","openMenu","node","current","measure","_x","_y","_w","height","pageX","pageY","maxLeft","Math","max","innerWidth","left","min","triggerBottom","openDown","innerHeight","top","bottom","handleClose","accessibilityElementsHidden","importantForAccessibility","children","styles","skeletonCircle","width","backgroundColor","backgroundSecondary","signInLabel","row","rowExpanded","onPress","accessibilityRole","accessibilityLabel","avatarBadge","name","size","round","color","icon","text","numberOfLines","displayName","handle","handleLine","avatarNode","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","create","borderRadius","flexDirection","alignItems","gap","paddingHorizontal","paddingVertical","justifyContent","flex","fontWeight","minWidth","fontSize"],"sourceRoot":"../../../../src","sources":["ui/components/ProfileButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useState","View","Pressable","StyleSheet","Platform","MaterialCommunityIcons","Avatar","Text","useTheme","getAccountDisplayName","getAccountFallbackHandle","useAuth","useOxy","useI18n","jsx","_jsx","jsxs","_jsxs","isWeb","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","openAccountDialog","colors","t","locale","hovered","setHovered","focused","setFocused","resolvedAvatarSize","openDialog","accessibilityElementsHidden","importantForAccessibility","children","styles","skeletonCircle","width","height","backgroundColor","backgroundSecondary","signInLabel","row","rowExpanded","onPress","accessibilityRole","accessibilityLabel","avatarBadge","name","size","Math","round","color","icon","text","numberOfLines","displayName","handle","handleLine","avatarNode","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","create","borderRadius","flexDirection","alignItems","gap","paddingHorizontal","paddingVertical","justifyContent","flex","fontWeight","minWidth","fontSize"],"sourceRoot":"../../../../src","sources":["ui/components/ProfileButton.tsx"],"mappings":"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","ignoreList":[]}