@oxyhq/services 16.0.0 → 17.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 (251) hide show
  1. package/lib/commonjs/index.js +21 -51
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/client.js +0 -14
  4. package/lib/commonjs/ui/client.js.map +1 -1
  5. package/lib/commonjs/ui/components/OxyAccountDialog.js +764 -0
  6. package/lib/commonjs/ui/components/OxyAccountDialog.js.map +1 -0
  7. package/lib/commonjs/ui/components/OxyProvider.js +11 -6
  8. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  9. package/lib/commonjs/ui/components/OxySignInButton.js +10 -21
  10. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  11. package/lib/commonjs/ui/components/ProfileButton.js +25 -112
  12. package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
  13. package/lib/commonjs/ui/components/RequireOxyAuth.js +299 -0
  14. package/lib/commonjs/ui/components/RequireOxyAuth.js.map +1 -0
  15. package/lib/commonjs/ui/context/OxyContext.js +106 -2
  16. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  17. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +1 -1
  18. package/lib/commonjs/ui/hooks/useAuth.js +19 -30
  19. package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
  20. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +37 -267
  21. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js.map +1 -1
  22. package/lib/commonjs/ui/index.js +5 -40
  23. package/lib/commonjs/ui/index.js.map +1 -1
  24. package/lib/commonjs/ui/navigation/accountDialogManager.js +91 -0
  25. package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -0
  26. package/lib/commonjs/ui/navigation/routes.js +0 -2
  27. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  28. package/lib/commonjs/ui/screens/ManageAccountScreen.js +4 -3
  29. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  30. package/lib/commonjs/ui/session/createSessionClient.js +10 -2
  31. package/lib/commonjs/ui/session/createSessionClient.js.map +1 -1
  32. package/lib/module/index.js +18 -15
  33. package/lib/module/index.js.map +1 -1
  34. package/lib/module/ui/client.js +1 -2
  35. package/lib/module/ui/client.js.map +1 -1
  36. package/lib/module/ui/components/OxyAccountDialog.js +761 -0
  37. package/lib/module/ui/components/OxyAccountDialog.js.map +1 -0
  38. package/lib/module/ui/components/OxyProvider.js +11 -6
  39. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  40. package/lib/module/ui/components/OxySignInButton.js +10 -21
  41. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  42. package/lib/module/ui/components/ProfileButton.js +26 -112
  43. package/lib/module/ui/components/ProfileButton.js.map +1 -1
  44. package/lib/module/ui/components/RequireOxyAuth.js +294 -0
  45. package/lib/module/ui/components/RequireOxyAuth.js.map +1 -0
  46. package/lib/module/ui/context/OxyContext.js +107 -3
  47. package/lib/module/ui/context/OxyContext.js.map +1 -1
  48. package/lib/module/ui/hooks/mutations/useAccountMutations.js +1 -1
  49. package/lib/module/ui/hooks/useAuth.js +19 -30
  50. package/lib/module/ui/hooks/useAuth.js.map +1 -1
  51. package/lib/module/ui/hooks/useSwitchableAccounts.js +38 -267
  52. package/lib/module/ui/hooks/useSwitchableAccounts.js.map +1 -1
  53. package/lib/module/ui/index.js +1 -5
  54. package/lib/module/ui/index.js.map +1 -1
  55. package/lib/module/ui/navigation/accountDialogManager.js +81 -0
  56. package/lib/module/ui/navigation/accountDialogManager.js.map +1 -0
  57. package/lib/module/ui/navigation/routes.js +0 -2
  58. package/lib/module/ui/navigation/routes.js.map +1 -1
  59. package/lib/module/ui/screens/ManageAccountScreen.js +4 -3
  60. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  61. package/lib/module/ui/session/createSessionClient.js +10 -2
  62. package/lib/module/ui/session/createSessionClient.js.map +1 -1
  63. package/lib/typescript/commonjs/index.d.ts +4 -11
  64. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/ui/client.d.ts +0 -4
  66. package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
  67. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts +35 -0
  68. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts.map +1 -0
  69. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts +2 -2
  70. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  72. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +11 -23
  73. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
  74. package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts +55 -0
  75. package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts.map +1 -0
  76. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +13 -1
  77. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  78. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  79. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
  80. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts +13 -152
  81. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts.map +1 -1
  82. package/lib/typescript/commonjs/ui/index.d.ts +2 -5
  83. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  84. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +49 -0
  85. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -0
  86. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  87. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  88. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts +1 -1
  89. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  90. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +9 -2
  91. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts.map +1 -1
  92. package/lib/typescript/commonjs/ui/types/navigation.d.ts +9 -0
  93. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  94. package/lib/typescript/module/index.d.ts +4 -11
  95. package/lib/typescript/module/index.d.ts.map +1 -1
  96. package/lib/typescript/module/ui/client.d.ts +0 -4
  97. package/lib/typescript/module/ui/client.d.ts.map +1 -1
  98. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts +35 -0
  99. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts.map +1 -0
  100. package/lib/typescript/module/ui/components/OxyProvider.d.ts +2 -2
  101. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  102. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  103. package/lib/typescript/module/ui/components/ProfileButton.d.ts +11 -23
  104. package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
  105. package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts +55 -0
  106. package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts.map +1 -0
  107. package/lib/typescript/module/ui/context/OxyContext.d.ts +13 -1
  108. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  109. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  110. package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
  111. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts +13 -152
  112. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts.map +1 -1
  113. package/lib/typescript/module/ui/index.d.ts +2 -5
  114. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  115. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +49 -0
  116. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -0
  117. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  118. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  119. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts +1 -1
  120. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  121. package/lib/typescript/module/ui/session/createSessionClient.d.ts +9 -2
  122. package/lib/typescript/module/ui/session/createSessionClient.d.ts.map +1 -1
  123. package/lib/typescript/module/ui/types/navigation.d.ts +9 -0
  124. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  125. package/package.json +2 -2
  126. package/src/index.ts +21 -26
  127. package/src/ui/client.ts +0 -4
  128. package/src/ui/components/OxyAccountDialog.tsx +760 -0
  129. package/src/ui/components/OxyProvider.tsx +12 -6
  130. package/src/ui/components/OxySignInButton.tsx +10 -21
  131. package/src/ui/components/ProfileButton.tsx +23 -126
  132. package/src/ui/components/RequireOxyAuth.tsx +266 -0
  133. package/src/ui/context/OxyContext.tsx +146 -7
  134. package/src/ui/hooks/mutations/useAccountMutations.ts +1 -1
  135. package/src/ui/hooks/useAuth.ts +19 -31
  136. package/src/ui/hooks/useSwitchableAccounts.ts +42 -376
  137. package/src/ui/index.ts +2 -5
  138. package/src/ui/navigation/accountDialogManager.ts +84 -0
  139. package/src/ui/navigation/routes.ts +0 -4
  140. package/src/ui/screens/ManageAccountScreen.tsx +3 -2
  141. package/src/ui/session/createSessionClient.ts +9 -1
  142. package/src/ui/types/navigation.ts +9 -0
  143. package/lib/commonjs/ui/components/AccountMenu.js +0 -598
  144. package/lib/commonjs/ui/components/AccountMenu.js.map +0 -1
  145. package/lib/commonjs/ui/components/AccountMenuButton.js +0 -135
  146. package/lib/commonjs/ui/components/AccountMenuButton.js.map +0 -1
  147. package/lib/commonjs/ui/components/AccountSwitcher.js +0 -780
  148. package/lib/commonjs/ui/components/AccountSwitcher.js.map +0 -1
  149. package/lib/commonjs/ui/components/AnotherDeviceQR.js +0 -116
  150. package/lib/commonjs/ui/components/AnotherDeviceQR.js.map +0 -1
  151. package/lib/commonjs/ui/components/ProfileMenu.js +0 -518
  152. package/lib/commonjs/ui/components/ProfileMenu.js.map +0 -1
  153. package/lib/commonjs/ui/components/SignInAccountChooser.js +0 -189
  154. package/lib/commonjs/ui/components/SignInAccountChooser.js.map +0 -1
  155. package/lib/commonjs/ui/components/SignInModal.js +0 -600
  156. package/lib/commonjs/ui/components/SignInModal.js.map +0 -1
  157. package/lib/commonjs/ui/hooks/useOxyAuthSession.js +0 -501
  158. package/lib/commonjs/ui/hooks/useOxyAuthSession.js.map +0 -1
  159. package/lib/commonjs/ui/hooks/usePasswordSignIn.js +0 -170
  160. package/lib/commonjs/ui/hooks/usePasswordSignIn.js.map +0 -1
  161. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +0 -51
  162. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +0 -1
  163. package/lib/commonjs/ui/screens/OxyAuthScreen.js +0 -312
  164. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +0 -1
  165. package/lib/commonjs/utils/deviceFlowSignIn.js +0 -109
  166. package/lib/commonjs/utils/deviceFlowSignIn.js.map +0 -1
  167. package/lib/module/ui/components/AccountMenu.js +0 -593
  168. package/lib/module/ui/components/AccountMenu.js.map +0 -1
  169. package/lib/module/ui/components/AccountMenuButton.js +0 -130
  170. package/lib/module/ui/components/AccountMenuButton.js.map +0 -1
  171. package/lib/module/ui/components/AccountSwitcher.js +0 -774
  172. package/lib/module/ui/components/AccountSwitcher.js.map +0 -1
  173. package/lib/module/ui/components/AnotherDeviceQR.js +0 -110
  174. package/lib/module/ui/components/AnotherDeviceQR.js.map +0 -1
  175. package/lib/module/ui/components/ProfileMenu.js +0 -514
  176. package/lib/module/ui/components/ProfileMenu.js.map +0 -1
  177. package/lib/module/ui/components/SignInAccountChooser.js +0 -183
  178. package/lib/module/ui/components/SignInAccountChooser.js.map +0 -1
  179. package/lib/module/ui/components/SignInModal.js +0 -591
  180. package/lib/module/ui/components/SignInModal.js.map +0 -1
  181. package/lib/module/ui/hooks/useOxyAuthSession.js +0 -495
  182. package/lib/module/ui/hooks/useOxyAuthSession.js.map +0 -1
  183. package/lib/module/ui/hooks/usePasswordSignIn.js +0 -165
  184. package/lib/module/ui/hooks/usePasswordSignIn.js.map +0 -1
  185. package/lib/module/ui/screens/AccountSwitcherScreen.js +0 -48
  186. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +0 -1
  187. package/lib/module/ui/screens/OxyAuthScreen.js +0 -306
  188. package/lib/module/ui/screens/OxyAuthScreen.js.map +0 -1
  189. package/lib/module/utils/deviceFlowSignIn.js +0 -106
  190. package/lib/module/utils/deviceFlowSignIn.js.map +0 -1
  191. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts +0 -47
  192. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts.map +0 -1
  193. package/lib/typescript/commonjs/ui/components/AccountMenuButton.d.ts +0 -26
  194. package/lib/typescript/commonjs/ui/components/AccountMenuButton.d.ts.map +0 -1
  195. package/lib/typescript/commonjs/ui/components/AccountSwitcher.d.ts +0 -46
  196. package/lib/typescript/commonjs/ui/components/AccountSwitcher.d.ts.map +0 -1
  197. package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts +0 -34
  198. package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts.map +0 -1
  199. package/lib/typescript/commonjs/ui/components/ProfileMenu.d.ts +0 -49
  200. package/lib/typescript/commonjs/ui/components/ProfileMenu.d.ts.map +0 -1
  201. package/lib/typescript/commonjs/ui/components/SignInAccountChooser.d.ts +0 -29
  202. package/lib/typescript/commonjs/ui/components/SignInAccountChooser.d.ts.map +0 -1
  203. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts +0 -28
  204. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +0 -1
  205. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts +0 -105
  206. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts.map +0 -1
  207. package/lib/typescript/commonjs/ui/hooks/usePasswordSignIn.d.ts +0 -31
  208. package/lib/typescript/commonjs/ui/hooks/usePasswordSignIn.d.ts.map +0 -1
  209. package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts +0 -11
  210. package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts.map +0 -1
  211. package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts +0 -22
  212. package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +0 -1
  213. package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts +0 -97
  214. package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts.map +0 -1
  215. package/lib/typescript/module/ui/components/AccountMenu.d.ts +0 -47
  216. package/lib/typescript/module/ui/components/AccountMenu.d.ts.map +0 -1
  217. package/lib/typescript/module/ui/components/AccountMenuButton.d.ts +0 -26
  218. package/lib/typescript/module/ui/components/AccountMenuButton.d.ts.map +0 -1
  219. package/lib/typescript/module/ui/components/AccountSwitcher.d.ts +0 -46
  220. package/lib/typescript/module/ui/components/AccountSwitcher.d.ts.map +0 -1
  221. package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts +0 -34
  222. package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts.map +0 -1
  223. package/lib/typescript/module/ui/components/ProfileMenu.d.ts +0 -49
  224. package/lib/typescript/module/ui/components/ProfileMenu.d.ts.map +0 -1
  225. package/lib/typescript/module/ui/components/SignInAccountChooser.d.ts +0 -29
  226. package/lib/typescript/module/ui/components/SignInAccountChooser.d.ts.map +0 -1
  227. package/lib/typescript/module/ui/components/SignInModal.d.ts +0 -28
  228. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +0 -1
  229. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts +0 -105
  230. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts.map +0 -1
  231. package/lib/typescript/module/ui/hooks/usePasswordSignIn.d.ts +0 -31
  232. package/lib/typescript/module/ui/hooks/usePasswordSignIn.d.ts.map +0 -1
  233. package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts +0 -11
  234. package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts.map +0 -1
  235. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts +0 -22
  236. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +0 -1
  237. package/lib/typescript/module/utils/deviceFlowSignIn.d.ts +0 -97
  238. package/lib/typescript/module/utils/deviceFlowSignIn.d.ts.map +0 -1
  239. package/src/ui/components/AccountMenu.tsx +0 -645
  240. package/src/ui/components/AccountMenuButton.tsx +0 -126
  241. package/src/ui/components/AccountSwitcher.tsx +0 -751
  242. package/src/ui/components/AnotherDeviceQR.tsx +0 -119
  243. package/src/ui/components/ProfileMenu.tsx +0 -564
  244. package/src/ui/components/SignInAccountChooser.tsx +0 -162
  245. package/src/ui/components/SignInModal.tsx +0 -530
  246. package/src/ui/hooks/useOxyAuthSession.ts +0 -635
  247. package/src/ui/hooks/usePasswordSignIn.ts +0 -207
  248. package/src/ui/screens/AccountSwitcherScreen.tsx +0 -43
  249. package/src/ui/screens/OxyAuthScreen.tsx +0 -324
  250. package/src/utils/__tests__/deviceFlowSignIn.test.ts +0 -231
  251. package/src/utils/deviceFlowSignIn.ts +0 -152
@@ -1,591 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * SignInModal — web-first centered sign-in modal.
5
- *
6
- * Two phases, Google-style:
7
- * 1. Account chooser (FRONT screen, shown when the device/user already has
8
- * accounts): pick an account to continue as — one tap switches through the
9
- * SAME `switchToAccount` path the account switcher uses — or "Use another
10
- * account" to reveal the sign-in options.
11
- * 2. Sign-in options: the first-party password flow (identifier → password →
12
- * optional 2FA, `usePasswordSignIn`) as the PRIMARY action, with the
13
- * cross-app device flow (same-device deep-link + "sign in on another device"
14
- * QR) as a SECONDARY option below an "or" divider.
15
- *
16
- * When there are no accounts the modal opens straight on the sign-in options.
17
- * The device-flow machinery lives in the shared `useOxyAuthSession` hook (the
18
- * native `OxyAuthScreen` consumes it too — neither container re-implements the
19
- * transport). Animates with a fade + scale; per-phase content cross-fades and
20
- * respects reduced motion.
21
- */
22
-
23
- import { useState, useEffect, useCallback } from 'react';
24
- import { View, Text, TextInput, TouchableOpacity, StyleSheet, Modal, Linking, AccessibilityInfo } from 'react-native';
25
- import Animated, { useSharedValue, useAnimatedStyle, withTiming, FadeIn } from 'react-native-reanimated';
26
- import { useSafeAreaInsets } from 'react-native-safe-area-context';
27
- import { useTheme } from '@oxyhq/bloom/theme';
28
- import { Button } from '@oxyhq/bloom/button';
29
- import { Loading } from '@oxyhq/bloom/loading';
30
- import { toast } from '@oxyhq/bloom';
31
- import { Ionicons } from '@expo/vector-icons';
32
- import { isDev, logger as loggerUtil } from '@oxyhq/core';
33
- import { useOxy } from "../context/OxyContext.js";
34
- import OxyLogo from "./OxyLogo.js";
35
- import AnotherDeviceQR from "./AnotherDeviceQR.js";
36
- import SignInAccountChooser from "./SignInAccountChooser.js";
37
- import { useSwitchableAccounts } from "../hooks/useSwitchableAccounts.js";
38
- import { useI18n } from "../hooks/useI18n.js";
39
- import { useOxyAuthSession, OXY_ACCOUNTS_WEB_URL } from "../hooks/useOxyAuthSession.js";
40
- import { usePasswordSignIn } from "../hooks/usePasswordSignIn.js";
41
-
42
- // Store for modal visibility with subscription support
43
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
44
- let modalVisible = false;
45
- let setModalVisibleCallback = null;
46
- const visibilityListeners = new Set();
47
- export const showSignInModal = () => {
48
- modalVisible = true;
49
- setModalVisibleCallback?.(true);
50
- for (const listener of visibilityListeners) listener(true);
51
- };
52
- export const hideSignInModal = () => {
53
- modalVisible = false;
54
- setModalVisibleCallback?.(false);
55
- for (const listener of visibilityListeners) listener(false);
56
- };
57
- export const isSignInModalVisible = () => modalVisible;
58
-
59
- /** Subscribe to modal visibility changes */
60
- export const subscribeToSignInModal = listener => {
61
- visibilityListeners.add(listener);
62
- return () => visibilityListeners.delete(listener);
63
- };
64
- const SignInModal = () => {
65
- const [visible, setVisible] = useState(false);
66
- const insets = useSafeAreaInsets();
67
- const theme = useTheme();
68
-
69
- // Register the imperative visibility callback.
70
- useEffect(() => {
71
- setModalVisibleCallback = setVisible;
72
- return () => {
73
- setModalVisibleCallback = null;
74
- };
75
- }, []);
76
- if (!visible) return null;
77
-
78
- // Mounting the content only while visible preserves the session-created-on-open
79
- // / cleaned-up-on-close behaviour and resets the phase state on every reopen.
80
- return /*#__PURE__*/_jsx(SignInModalContent, {
81
- theme: theme,
82
- insets: insets
83
- });
84
- };
85
- const SignInModalContent = ({
86
- theme,
87
- insets
88
- }) => {
89
- const {
90
- oxyServices,
91
- handleWebSession,
92
- clientId,
93
- switchToAccount
94
- } = useOxy();
95
- const {
96
- t
97
- } = useI18n();
98
- const {
99
- accounts
100
- } = useSwitchableAccounts();
101
-
102
- // Phase: the chooser is the front screen whenever accounts exist AND the user
103
- // has not tapped "Use another account" this session.
104
- const [useAnother, setUseAnother] = useState(false);
105
- const [switchingId, setSwitchingId] = useState(null);
106
- const showChooser = !useAnother && accounts.length > 0;
107
- const {
108
- qrData,
109
- qrPayload,
110
- isLoading,
111
- error,
112
- isWaiting,
113
- openSameDeviceApproval,
114
- retry
115
- } = useOxyAuthSession(oxyServices, clientId, handleWebSession, {
116
- onSignedIn: hideSignInModal
117
- });
118
-
119
- // First-party password sign-in — the PRIMARY option once past the chooser.
120
- const pw = usePasswordSignIn({
121
- onSignedIn: hideSignInModal
122
- });
123
-
124
- // Entrance animation (respects reduced motion).
125
- const opacity = useSharedValue(0);
126
- const scale = useSharedValue(0.96);
127
- // biome-ignore lint/correctness/useExhaustiveDependencies: opacity/scale are Reanimated SharedValues (stable refs), not deps; runs once on mount.
128
- useEffect(() => {
129
- let cancelled = false;
130
- AccessibilityInfo.isReduceMotionEnabled().then(reduced => {
131
- if (cancelled) return;
132
- const duration = reduced ? 0 : 250;
133
- opacity.value = withTiming(1, {
134
- duration
135
- });
136
- scale.value = withTiming(1, {
137
- duration
138
- });
139
- });
140
- return () => {
141
- cancelled = true;
142
- };
143
- }, []);
144
- const backdropStyle = useAnimatedStyle(() => ({
145
- opacity: opacity.value
146
- }));
147
- const contentStyle = useAnimatedStyle(() => ({
148
- opacity: opacity.value,
149
- transform: [{
150
- scale: scale.value
151
- }]
152
- }));
153
- const handleClose = useCallback(() => hideSignInModal(), []);
154
- const handleCreateAccount = useCallback(() => Linking.openURL(OXY_ACCOUNTS_WEB_URL), []);
155
- const handleSelectAccount = useCallback(async account => {
156
- // The active account is already signed in — selecting it just continues.
157
- if (account.isCurrent) {
158
- hideSignInModal();
159
- return;
160
- }
161
- if (switchingId) return;
162
- setSwitchingId(account.accountId);
163
- try {
164
- await switchToAccount(account.accountId);
165
- hideSignInModal();
166
- } catch (switchError) {
167
- if (isDev()) {
168
- loggerUtil.warn('SignInModal: switch account failed', {
169
- component: 'SignInModal'
170
- }, switchError);
171
- }
172
- toast.error(t('accountSwitcher.toasts.switchFailed') || 'Failed to switch account');
173
- } finally {
174
- setSwitchingId(null);
175
- }
176
- }, [switchingId, switchToAccount, t]);
177
- const title = showChooser ? t('signin.chooser.title') : 'Sign in to Oxy';
178
- const subtitle = showChooser ? t('signin.chooser.subtitle') : 'Continue with your Oxy identity to sign in securely.';
179
- return /*#__PURE__*/_jsx(Modal, {
180
- visible: true,
181
- transparent: true,
182
- animationType: "none",
183
- statusBarTranslucent: true,
184
- onRequestClose: handleClose,
185
- children: /*#__PURE__*/_jsxs(Animated.View, {
186
- style: [styles.backdrop, {
187
- backgroundColor: theme.colors.overlay
188
- }, backdropStyle],
189
- children: [/*#__PURE__*/_jsx(TouchableOpacity, {
190
- style: StyleSheet.absoluteFill,
191
- onPress: handleClose,
192
- activeOpacity: 1
193
- }), /*#__PURE__*/_jsxs(Animated.View, {
194
- style: [styles.card, {
195
- backgroundColor: theme.colors.card,
196
- paddingTop: insets.top + 28,
197
- paddingBottom: insets.bottom + 24
198
- }, contentStyle],
199
- children: [/*#__PURE__*/_jsx(TouchableOpacity, {
200
- style: [styles.closeButton, {
201
- backgroundColor: theme.colors.backgroundSecondary
202
- }],
203
- onPress: handleClose,
204
- accessibilityRole: "button",
205
- accessibilityLabel: "Close sign in",
206
- children: /*#__PURE__*/_jsx(Ionicons, {
207
- name: "close",
208
- size: 22,
209
- color: theme.colors.textSecondary
210
- })
211
- }), /*#__PURE__*/_jsxs(View, {
212
- style: styles.header,
213
- children: [/*#__PURE__*/_jsx(OxyLogo, {
214
- variant: "icon",
215
- size: 52
216
- }), /*#__PURE__*/_jsx(Text, {
217
- className: "text-foreground",
218
- style: styles.title,
219
- children: title
220
- }), /*#__PURE__*/_jsx(Text, {
221
- className: "text-muted-foreground",
222
- style: styles.subtitle,
223
- children: subtitle
224
- })]
225
- }), showChooser ? /*#__PURE__*/_jsx(Animated.View, {
226
- entering: FadeIn.duration(180),
227
- style: styles.phase,
228
- children: /*#__PURE__*/_jsx(SignInAccountChooser, {
229
- accounts: accounts,
230
- onSelectAccount: handleSelectAccount,
231
- onUseAnother: () => setUseAnother(true),
232
- pendingAccountId: switchingId,
233
- disabled: switchingId !== null
234
- })
235
- }, "chooser") : /*#__PURE__*/_jsxs(Animated.View, {
236
- entering: FadeIn.duration(180),
237
- style: styles.phase,
238
- children: [accounts.length > 0 && /*#__PURE__*/_jsxs(TouchableOpacity, {
239
- onPress: () => setUseAnother(false),
240
- accessibilityRole: "button",
241
- style: styles.backRow,
242
- children: [/*#__PURE__*/_jsx(Ionicons, {
243
- name: "chevron-back",
244
- size: 18,
245
- color: theme.colors.textSecondary
246
- }), /*#__PURE__*/_jsx(Text, {
247
- style: [styles.backText, {
248
- color: theme.colors.textSecondary
249
- }],
250
- children: t('signin.chooser.title')
251
- })]
252
- }), /*#__PURE__*/_jsxs(View, {
253
- style: styles.form,
254
- children: [pw.step === 'identifier' && /*#__PURE__*/_jsx(TextInput, {
255
- style: [styles.input, {
256
- borderColor: theme.colors.border,
257
- color: theme.colors.text,
258
- backgroundColor: theme.colors.backgroundSecondary
259
- }],
260
- value: pw.identifier,
261
- onChangeText: pw.setIdentifier,
262
- onSubmitEditing: pw.submitIdentifier,
263
- placeholder: "Username or email",
264
- placeholderTextColor: theme.colors.textSecondary,
265
- autoCapitalize: "none",
266
- autoCorrect: false,
267
- keyboardType: "email-address",
268
- returnKeyType: "next",
269
- accessibilityLabel: "Username or email"
270
- }), pw.step === 'password' && /*#__PURE__*/_jsxs(_Fragment, {
271
- children: [/*#__PURE__*/_jsx(Text, {
272
- style: [styles.contextText, {
273
- color: theme.colors.textSecondary
274
- }],
275
- children: pw.identifier
276
- }), /*#__PURE__*/_jsx(TextInput, {
277
- style: [styles.input, {
278
- borderColor: theme.colors.border,
279
- color: theme.colors.text,
280
- backgroundColor: theme.colors.backgroundSecondary
281
- }],
282
- value: pw.password,
283
- onChangeText: pw.setPassword,
284
- onSubmitEditing: pw.submitPassword,
285
- placeholder: "Password",
286
- placeholderTextColor: theme.colors.textSecondary,
287
- secureTextEntry: true,
288
- autoCapitalize: "none",
289
- autoCorrect: false,
290
- returnKeyType: "go",
291
- accessibilityLabel: "Password"
292
- })]
293
- }), pw.step === 'twoFactor' && /*#__PURE__*/_jsx(TextInput, {
294
- style: [styles.input, {
295
- borderColor: theme.colors.border,
296
- color: theme.colors.text,
297
- backgroundColor: theme.colors.backgroundSecondary
298
- }],
299
- value: pw.code,
300
- onChangeText: pw.setCode,
301
- onSubmitEditing: pw.submitTwoFactor,
302
- placeholder: pw.useBackupCode ? 'Backup code' : '6-digit code',
303
- placeholderTextColor: theme.colors.textSecondary,
304
- autoCapitalize: "none",
305
- autoCorrect: false,
306
- keyboardType: pw.useBackupCode ? 'default' : 'number-pad',
307
- returnKeyType: "go",
308
- accessibilityLabel: pw.useBackupCode ? 'Backup code' : 'Two-factor code'
309
- }), /*#__PURE__*/_jsx(Button, {
310
- variant: "primary",
311
- onPress: pw.step === 'identifier' ? pw.submitIdentifier : pw.step === 'password' ? pw.submitPassword : pw.submitTwoFactor,
312
- loading: pw.isSubmitting,
313
- disabled: pw.isSubmitting,
314
- style: styles.primaryButton,
315
- children: pw.step === 'identifier' ? 'Continue' : pw.step === 'password' ? 'Sign in' : 'Verify'
316
- }), pw.error && /*#__PURE__*/_jsx(Text, {
317
- className: "text-destructive",
318
- style: styles.formError,
319
- children: pw.error
320
- }), pw.step === 'twoFactor' && /*#__PURE__*/_jsx(TouchableOpacity, {
321
- onPress: () => pw.setUseBackupCode(!pw.useBackupCode),
322
- accessibilityRole: "button",
323
- style: styles.linkButton,
324
- children: /*#__PURE__*/_jsx(Text, {
325
- style: [styles.linkText, {
326
- color: theme.colors.primary
327
- }],
328
- children: pw.useBackupCode ? 'Use authenticator code' : 'Use a backup code'
329
- })
330
- }), pw.step !== 'identifier' && /*#__PURE__*/_jsx(TouchableOpacity, {
331
- onPress: pw.back,
332
- accessibilityRole: "button",
333
- style: styles.linkButton,
334
- children: /*#__PURE__*/_jsx(Text, {
335
- style: [styles.linkText, {
336
- color: theme.colors.textSecondary
337
- }],
338
- children: "Back"
339
- })
340
- })]
341
- }), /*#__PURE__*/_jsxs(View, {
342
- style: styles.dividerRow,
343
- children: [/*#__PURE__*/_jsx(View, {
344
- style: [styles.dividerLine, {
345
- backgroundColor: theme.colors.border
346
- }]
347
- }), /*#__PURE__*/_jsx(Text, {
348
- style: [styles.dividerText, {
349
- color: theme.colors.textSecondary
350
- }],
351
- children: "or"
352
- }), /*#__PURE__*/_jsx(View, {
353
- style: [styles.dividerLine, {
354
- backgroundColor: theme.colors.border
355
- }]
356
- })]
357
- }), isLoading ? /*#__PURE__*/_jsxs(View, {
358
- style: styles.deviceLoading,
359
- children: [/*#__PURE__*/_jsx(Loading, {
360
- size: "small",
361
- style: styles.statusSpinner
362
- }), /*#__PURE__*/_jsx(Text, {
363
- style: [styles.statusText, {
364
- color: theme.colors.textSecondary
365
- }],
366
- children: "Preparing sign in\u2026"
367
- })]
368
- }) : error ? /*#__PURE__*/_jsxs(View, {
369
- style: styles.errorContainer,
370
- children: [/*#__PURE__*/_jsx(Text, {
371
- className: "text-destructive",
372
- style: styles.errorText,
373
- children: error
374
- }), /*#__PURE__*/_jsx(Button, {
375
- variant: "secondary",
376
- onPress: retry,
377
- style: styles.secondaryButton,
378
- children: "Try Again"
379
- })]
380
- }) : /*#__PURE__*/_jsxs(_Fragment, {
381
- children: [qrPayload && /*#__PURE__*/_jsx(Button, {
382
- variant: "secondary",
383
- onPress: openSameDeviceApproval,
384
- icon: /*#__PURE__*/_jsx(OxyLogo, {
385
- variant: "icon",
386
- size: 20,
387
- fillColor: theme.colors.text,
388
- style: styles.buttonIcon
389
- }),
390
- style: styles.secondaryButton,
391
- children: "Sign in with the Oxy app"
392
- }), isWaiting && /*#__PURE__*/_jsxs(View, {
393
- style: styles.statusContainer,
394
- children: [/*#__PURE__*/_jsx(Loading, {
395
- size: "small",
396
- style: styles.statusSpinner
397
- }), /*#__PURE__*/_jsx(Text, {
398
- style: [styles.statusText, {
399
- color: theme.colors.textSecondary
400
- }],
401
- children: "Waiting for authorization\u2026"
402
- })]
403
- }), /*#__PURE__*/_jsx(View, {
404
- style: styles.qrSection,
405
- children: /*#__PURE__*/_jsx(AnotherDeviceQR, {
406
- qrData: qrData,
407
- qrPayload: qrPayload
408
- })
409
- })]
410
- })]
411
- }, "signIn"), /*#__PURE__*/_jsxs(View, {
412
- style: styles.footer,
413
- children: [/*#__PURE__*/_jsxs(Text, {
414
- style: styles.footerText,
415
- className: "text-muted-foreground",
416
- children: ["Don't have an Oxy account?", ' ']
417
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
418
- onPress: handleCreateAccount,
419
- accessibilityRole: "link",
420
- children: /*#__PURE__*/_jsx(Text, {
421
- style: styles.footerLink,
422
- className: "text-primary",
423
- children: "Create one"
424
- })
425
- })]
426
- })]
427
- })]
428
- })
429
- });
430
- };
431
- const styles = StyleSheet.create({
432
- backdrop: {
433
- flex: 1,
434
- justifyContent: 'center',
435
- alignItems: 'center'
436
- },
437
- card: {
438
- width: '100%',
439
- maxWidth: 420,
440
- alignItems: 'center',
441
- paddingHorizontal: 24,
442
- borderRadius: 28
443
- },
444
- closeButton: {
445
- position: 'absolute',
446
- top: 16,
447
- right: 16,
448
- width: 36,
449
- height: 36,
450
- borderRadius: 18,
451
- justifyContent: 'center',
452
- alignItems: 'center',
453
- zIndex: 10
454
- },
455
- header: {
456
- alignItems: 'center',
457
- marginBottom: 24
458
- },
459
- title: {
460
- fontSize: 26,
461
- fontWeight: '800',
462
- letterSpacing: -0.5,
463
- marginTop: 16,
464
- textAlign: 'center'
465
- },
466
- subtitle: {
467
- fontSize: 15,
468
- lineHeight: 21,
469
- marginTop: 8,
470
- textAlign: 'center'
471
- },
472
- phase: {
473
- width: '100%'
474
- },
475
- backRow: {
476
- flexDirection: 'row',
477
- alignItems: 'center',
478
- gap: 4,
479
- alignSelf: 'flex-start',
480
- paddingVertical: 6,
481
- marginBottom: 8
482
- },
483
- backText: {
484
- fontSize: 14,
485
- fontWeight: '600'
486
- },
487
- primaryButton: {
488
- width: '100%',
489
- borderRadius: 12
490
- },
491
- secondaryButton: {
492
- width: '100%',
493
- borderRadius: 12,
494
- marginTop: 12
495
- },
496
- buttonIcon: {
497
- marginRight: 10
498
- },
499
- form: {
500
- width: '100%'
501
- },
502
- input: {
503
- width: '100%',
504
- borderWidth: 1,
505
- borderRadius: 12,
506
- paddingHorizontal: 16,
507
- paddingVertical: 13,
508
- fontSize: 15,
509
- marginBottom: 12
510
- },
511
- contextText: {
512
- fontSize: 14,
513
- textAlign: 'center',
514
- marginBottom: 12
515
- },
516
- formError: {
517
- fontSize: 14,
518
- textAlign: 'center',
519
- marginTop: 12
520
- },
521
- linkButton: {
522
- alignSelf: 'center',
523
- paddingVertical: 8,
524
- marginTop: 8
525
- },
526
- linkText: {
527
- fontSize: 14,
528
- fontWeight: '600'
529
- },
530
- dividerRow: {
531
- flexDirection: 'row',
532
- alignItems: 'center',
533
- width: '100%',
534
- marginVertical: 20
535
- },
536
- dividerLine: {
537
- flex: 1,
538
- height: 1
539
- },
540
- dividerText: {
541
- marginHorizontal: 12,
542
- fontSize: 13
543
- },
544
- deviceLoading: {
545
- flexDirection: 'row',
546
- alignItems: 'center',
547
- justifyContent: 'center',
548
- paddingVertical: 12
549
- },
550
- statusContainer: {
551
- flexDirection: 'row',
552
- alignItems: 'center',
553
- marginTop: 20
554
- },
555
- statusSpinner: {
556
- flex: undefined
557
- },
558
- statusText: {
559
- marginLeft: 8,
560
- fontSize: 14
561
- },
562
- qrSection: {
563
- width: '100%',
564
- marginTop: 24
565
- },
566
- errorContainer: {
567
- alignItems: 'center',
568
- paddingVertical: 20,
569
- width: '100%'
570
- },
571
- errorText: {
572
- fontSize: 14,
573
- textAlign: 'center',
574
- marginBottom: 16
575
- },
576
- footer: {
577
- flexDirection: 'row',
578
- flexWrap: 'wrap',
579
- justifyContent: 'center',
580
- marginTop: 28
581
- },
582
- footerText: {
583
- fontSize: 14
584
- },
585
- footerLink: {
586
- fontSize: 14,
587
- fontWeight: '600'
588
- }
589
- });
590
- export default SignInModal;
591
- //# sourceMappingURL=SignInModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useState","useEffect","useCallback","View","Text","TextInput","TouchableOpacity","StyleSheet","Modal","Linking","AccessibilityInfo","Animated","useSharedValue","useAnimatedStyle","withTiming","FadeIn","useSafeAreaInsets","useTheme","Button","Loading","toast","Ionicons","isDev","logger","loggerUtil","useOxy","OxyLogo","AnotherDeviceQR","SignInAccountChooser","useSwitchableAccounts","useI18n","useOxyAuthSession","OXY_ACCOUNTS_WEB_URL","usePasswordSignIn","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","modalVisible","setModalVisibleCallback","visibilityListeners","Set","showSignInModal","listener","hideSignInModal","isSignInModalVisible","subscribeToSignInModal","add","delete","SignInModal","visible","setVisible","insets","theme","SignInModalContent","oxyServices","handleWebSession","clientId","switchToAccount","t","accounts","useAnother","setUseAnother","switchingId","setSwitchingId","showChooser","length","qrData","qrPayload","isLoading","error","isWaiting","openSameDeviceApproval","retry","onSignedIn","pw","opacity","scale","cancelled","isReduceMotionEnabled","then","reduced","duration","value","backdropStyle","contentStyle","transform","handleClose","handleCreateAccount","openURL","handleSelectAccount","account","isCurrent","accountId","switchError","warn","component","title","subtitle","transparent","animationType","statusBarTranslucent","onRequestClose","children","style","styles","backdrop","backgroundColor","colors","overlay","absoluteFill","onPress","activeOpacity","card","paddingTop","top","paddingBottom","bottom","closeButton","backgroundSecondary","accessibilityRole","accessibilityLabel","name","size","color","textSecondary","header","variant","className","entering","phase","onSelectAccount","onUseAnother","pendingAccountId","disabled","backRow","backText","form","step","input","borderColor","border","text","identifier","onChangeText","setIdentifier","onSubmitEditing","submitIdentifier","placeholder","placeholderTextColor","autoCapitalize","autoCorrect","keyboardType","returnKeyType","contextText","password","setPassword","submitPassword","secureTextEntry","code","setCode","submitTwoFactor","useBackupCode","loading","isSubmitting","primaryButton","formError","setUseBackupCode","linkButton","linkText","primary","back","dividerRow","dividerLine","dividerText","deviceLoading","statusSpinner","statusText","errorContainer","errorText","secondaryButton","icon","fillColor","buttonIcon","statusContainer","qrSection","footer","footerText","footerLink","create","flex","justifyContent","alignItems","width","maxWidth","paddingHorizontal","borderRadius","position","right","height","zIndex","marginBottom","fontSize","fontWeight","letterSpacing","marginTop","textAlign","lineHeight","flexDirection","gap","alignSelf","paddingVertical","marginRight","borderWidth","marginVertical","marginHorizontal","undefined","marginLeft","flexWrap"],"sourceRoot":"../../../../src","sources":["ui/components/SignInModal.tsx"],"mappings":"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","ignoreList":[]}