@oxy.so/services 11.4.0 → 11.6.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 (215) hide show
  1. package/lib/commonjs/index.js +0 -28
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/boot/runProviderColdBoot.js +47 -3
  4. package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
  5. package/lib/commonjs/ui/components/organizations/OrganizationClaimReview.js +2 -2
  6. package/lib/commonjs/ui/components/organizations/OrganizationClaimReview.js.map +1 -1
  7. package/lib/commonjs/ui/components/organizations/OrganizationDirectorySearch.js +5 -5
  8. package/lib/commonjs/ui/components/organizations/OrganizationDirectorySearch.js.map +1 -1
  9. package/lib/commonjs/ui/components/organizations/OrganizationSettings.js +4 -4
  10. package/lib/commonjs/ui/components/organizations/OrganizationSettings.js.map +1 -1
  11. package/lib/commonjs/ui/components/organizations/OrganizationTypePicker.js +2 -2
  12. package/lib/commonjs/ui/components/organizations/OrganizationTypePicker.js.map +1 -1
  13. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js +3 -3
  14. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -1
  15. package/lib/commonjs/ui/components/signIn/OxyEmailAccountChoice.js +113 -0
  16. package/lib/commonjs/ui/components/signIn/OxyEmailAccountChoice.js.map +1 -0
  17. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js +6 -2
  18. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  19. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js +4 -4
  20. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js.map +1 -1
  21. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js +76 -9
  22. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js.map +1 -1
  23. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js +6 -6
  24. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js.map +1 -1
  25. package/lib/commonjs/ui/components/signIn/ReauthStep.js +4 -4
  26. package/lib/commonjs/ui/components/signIn/ReauthStep.js.map +1 -1
  27. package/lib/commonjs/ui/components/signIn/accountFlowParts.js +24 -22
  28. package/lib/commonjs/ui/components/signIn/accountFlowParts.js.map +1 -1
  29. package/lib/commonjs/ui/context/OxyContext.js +7 -4
  30. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  31. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +5 -2
  32. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  33. package/lib/commonjs/ui/oauth/applicationSessionLane.js +2 -2
  34. package/lib/commonjs/ui/oauth/applicationSessionLane.js.map +1 -1
  35. package/lib/commonjs/ui/screens/AccountMembersScreen.js +20 -63
  36. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  37. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +3 -3
  38. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  39. package/lib/commonjs/ui/screens/CreateAccountScreen.js +12 -12
  40. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  41. package/lib/commonjs/ui/screens/PreferencesScreen.js +3 -4
  42. package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
  43. package/lib/commonjs/ui/utils/identityCrypto.js +19 -0
  44. package/lib/commonjs/ui/utils/identityCrypto.js.map +1 -0
  45. package/lib/module/index.js +0 -4
  46. package/lib/module/index.js.map +1 -1
  47. package/lib/module/ui/boot/runProviderColdBoot.js +47 -3
  48. package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
  49. package/lib/module/ui/components/organizations/OrganizationClaimReview.js +2 -2
  50. package/lib/module/ui/components/organizations/OrganizationClaimReview.js.map +1 -1
  51. package/lib/module/ui/components/organizations/OrganizationDirectorySearch.js +5 -5
  52. package/lib/module/ui/components/organizations/OrganizationDirectorySearch.js.map +1 -1
  53. package/lib/module/ui/components/organizations/OrganizationSettings.js +4 -4
  54. package/lib/module/ui/components/organizations/OrganizationSettings.js.map +1 -1
  55. package/lib/module/ui/components/organizations/OrganizationTypePicker.js +1 -1
  56. package/lib/module/ui/components/organizations/OrganizationTypePicker.js.map +1 -1
  57. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js +1 -1
  58. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -1
  59. package/lib/module/ui/components/signIn/OxyEmailAccountChoice.js +110 -0
  60. package/lib/module/ui/components/signIn/OxyEmailAccountChoice.js.map +1 -0
  61. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js +5 -1
  62. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  63. package/lib/module/ui/components/signIn/OxyPasswordPanel.js +1 -1
  64. package/lib/module/ui/components/signIn/OxyPasswordPanel.js.map +1 -1
  65. package/lib/module/ui/components/signIn/OxySignInPanel.js +71 -4
  66. package/lib/module/ui/components/signIn/OxySignInPanel.js.map +1 -1
  67. package/lib/module/ui/components/signIn/OxySignUpPanel.js +5 -5
  68. package/lib/module/ui/components/signIn/OxySignUpPanel.js.map +1 -1
  69. package/lib/module/ui/components/signIn/ReauthStep.js +1 -1
  70. package/lib/module/ui/components/signIn/ReauthStep.js.map +1 -1
  71. package/lib/module/ui/components/signIn/accountFlowParts.js +3 -1
  72. package/lib/module/ui/components/signIn/accountFlowParts.js.map +1 -1
  73. package/lib/module/ui/context/OxyContext.js +6 -3
  74. package/lib/module/ui/context/OxyContext.js.map +1 -1
  75. package/lib/module/ui/context/hooks/useAuthOperations.js +4 -1
  76. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  77. package/lib/module/ui/oauth/applicationSessionLane.js +2 -2
  78. package/lib/module/ui/oauth/applicationSessionLane.js.map +1 -1
  79. package/lib/module/ui/screens/AccountMembersScreen.js +20 -63
  80. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  81. package/lib/module/ui/screens/AccountSettingsScreen.js +2 -2
  82. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  83. package/lib/module/ui/screens/CreateAccountScreen.js +6 -6
  84. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  85. package/lib/module/ui/screens/PreferencesScreen.js +3 -4
  86. package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
  87. package/lib/module/ui/utils/identityCrypto.js +13 -0
  88. package/lib/module/ui/utils/identityCrypto.js.map +1 -0
  89. package/lib/typescript/commonjs/index.d.ts +0 -4
  90. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  91. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  92. package/lib/typescript/commonjs/ui/components/organizations/OrganizationClaimReview.d.ts.map +1 -1
  93. package/lib/typescript/commonjs/ui/components/organizations/OrganizationDirectorySearch.d.ts +1 -1
  94. package/lib/typescript/commonjs/ui/components/organizations/OrganizationDirectorySearch.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/ui/components/organizations/OrganizationSettings.d.ts.map +1 -1
  96. package/lib/typescript/commonjs/ui/components/organizations/OrganizationTypePicker.d.ts +1 -1
  97. package/lib/typescript/commonjs/ui/components/organizations/OrganizationTypePicker.d.ts.map +1 -1
  98. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/ui/components/signIn/OxyEmailAccountChoice.d.ts +20 -0
  100. package/lib/typescript/commonjs/ui/components/signIn/OxyEmailAccountChoice.d.ts.map +1 -0
  101. package/lib/typescript/commonjs/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
  102. package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts +2 -0
  103. package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
  104. package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts +1 -1
  106. package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts +1 -1
  108. package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
  109. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  110. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +1 -7
  112. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/ui/hooks/queries/usePersonalPlans.d.ts +1 -2
  114. package/lib/typescript/commonjs/ui/hooks/queries/usePersonalPlans.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts +1 -1
  116. package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  117. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  118. package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/ui/screens/PreferencesScreen.d.ts.map +1 -1
  120. package/lib/typescript/commonjs/ui/utils/identityCrypto.d.ts +43 -0
  121. package/lib/typescript/commonjs/ui/utils/identityCrypto.d.ts.map +1 -0
  122. package/lib/typescript/module/index.d.ts +0 -4
  123. package/lib/typescript/module/index.d.ts.map +1 -1
  124. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  125. package/lib/typescript/module/ui/components/organizations/OrganizationClaimReview.d.ts.map +1 -1
  126. package/lib/typescript/module/ui/components/organizations/OrganizationDirectorySearch.d.ts +1 -1
  127. package/lib/typescript/module/ui/components/organizations/OrganizationDirectorySearch.d.ts.map +1 -1
  128. package/lib/typescript/module/ui/components/organizations/OrganizationSettings.d.ts.map +1 -1
  129. package/lib/typescript/module/ui/components/organizations/OrganizationTypePicker.d.ts +1 -1
  130. package/lib/typescript/module/ui/components/organizations/OrganizationTypePicker.d.ts.map +1 -1
  131. package/lib/typescript/module/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -1
  132. package/lib/typescript/module/ui/components/signIn/OxyEmailAccountChoice.d.ts +20 -0
  133. package/lib/typescript/module/ui/components/signIn/OxyEmailAccountChoice.d.ts.map +1 -0
  134. package/lib/typescript/module/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
  135. package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts +2 -0
  136. package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
  137. package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
  138. package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts +1 -1
  139. package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts.map +1 -1
  140. package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts +1 -1
  141. package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
  142. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  143. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  144. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +1 -7
  145. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  146. package/lib/typescript/module/ui/hooks/queries/usePersonalPlans.d.ts +1 -2
  147. package/lib/typescript/module/ui/hooks/queries/usePersonalPlans.d.ts.map +1 -1
  148. package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts +1 -1
  149. package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  150. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  151. package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  152. package/lib/typescript/module/ui/screens/PreferencesScreen.d.ts.map +1 -1
  153. package/lib/typescript/module/ui/utils/identityCrypto.d.ts +43 -0
  154. package/lib/typescript/module/ui/utils/identityCrypto.d.ts.map +1 -0
  155. package/package.json +6 -7
  156. package/src/index.ts +0 -5
  157. package/src/ui/boot/__tests__/coldBootNoIdpRedirect.test.ts +166 -3
  158. package/src/ui/boot/runProviderColdBoot.ts +49 -4
  159. package/src/ui/components/organizations/OrganizationClaimReview.tsx +3 -5
  160. package/src/ui/components/organizations/OrganizationDirectorySearch.tsx +12 -9
  161. package/src/ui/components/organizations/OrganizationSettings.tsx +6 -9
  162. package/src/ui/components/organizations/OrganizationTypePicker.tsx +2 -1
  163. package/src/ui/components/signIn/OxyAuthenticatorPanel.tsx +2 -1
  164. package/src/ui/components/signIn/OxyEmailAccountChoice.tsx +116 -0
  165. package/src/ui/components/signIn/OxyLinkCommonsPanel.tsx +3 -1
  166. package/src/ui/components/signIn/OxyPasswordPanel.tsx +1 -1
  167. package/src/ui/components/signIn/OxySignInPanel.tsx +93 -6
  168. package/src/ui/components/signIn/OxySignUpPanel.tsx +6 -9
  169. package/src/ui/components/signIn/ReauthStep.tsx +2 -6
  170. package/src/ui/components/signIn/accountFlowParts.tsx +4 -2
  171. package/src/ui/context/OxyContext.tsx +7 -3
  172. package/src/ui/context/hooks/useAuthOperations.ts +2 -1
  173. package/src/ui/oauth/applicationSessionLane.ts +2 -2
  174. package/src/ui/screens/AccountMembersScreen.tsx +27 -71
  175. package/src/ui/screens/AccountSettingsScreen.tsx +6 -2
  176. package/src/ui/screens/CreateAccountScreen.tsx +10 -9
  177. package/src/ui/screens/PreferencesScreen.tsx +0 -2
  178. package/src/ui/utils/identityCrypto.ts +10 -0
  179. package/lib/commonjs/ui/components/AccountInvitationAcceptance.js +0 -97
  180. package/lib/commonjs/ui/components/AccountInvitationAcceptance.js.map +0 -1
  181. package/lib/commonjs/ui/components/DisplayCurrencySelector.js +0 -49
  182. package/lib/commonjs/ui/components/DisplayCurrencySelector.js.map +0 -1
  183. package/lib/commonjs/ui/hooks/useDisplayCurrency.js +0 -77
  184. package/lib/commonjs/ui/hooks/useDisplayCurrency.js.map +0 -1
  185. package/lib/commonjs/ui/hooks/useDisplayPrice.js +0 -59
  186. package/lib/commonjs/ui/hooks/useDisplayPrice.js.map +0 -1
  187. package/lib/module/ui/components/AccountInvitationAcceptance.js +0 -94
  188. package/lib/module/ui/components/AccountInvitationAcceptance.js.map +0 -1
  189. package/lib/module/ui/components/DisplayCurrencySelector.js +0 -44
  190. package/lib/module/ui/components/DisplayCurrencySelector.js.map +0 -1
  191. package/lib/module/ui/hooks/useDisplayCurrency.js +0 -72
  192. package/lib/module/ui/hooks/useDisplayCurrency.js.map +0 -1
  193. package/lib/module/ui/hooks/useDisplayPrice.js +0 -56
  194. package/lib/module/ui/hooks/useDisplayPrice.js.map +0 -1
  195. package/lib/typescript/commonjs/ui/components/AccountInvitationAcceptance.d.ts +0 -5
  196. package/lib/typescript/commonjs/ui/components/AccountInvitationAcceptance.d.ts.map +0 -1
  197. package/lib/typescript/commonjs/ui/components/DisplayCurrencySelector.d.ts +0 -3
  198. package/lib/typescript/commonjs/ui/components/DisplayCurrencySelector.d.ts.map +0 -1
  199. package/lib/typescript/commonjs/ui/hooks/useDisplayCurrency.d.ts +0 -11
  200. package/lib/typescript/commonjs/ui/hooks/useDisplayCurrency.d.ts.map +0 -1
  201. package/lib/typescript/commonjs/ui/hooks/useDisplayPrice.d.ts +0 -6
  202. package/lib/typescript/commonjs/ui/hooks/useDisplayPrice.d.ts.map +0 -1
  203. package/lib/typescript/module/ui/components/AccountInvitationAcceptance.d.ts +0 -5
  204. package/lib/typescript/module/ui/components/AccountInvitationAcceptance.d.ts.map +0 -1
  205. package/lib/typescript/module/ui/components/DisplayCurrencySelector.d.ts +0 -3
  206. package/lib/typescript/module/ui/components/DisplayCurrencySelector.d.ts.map +0 -1
  207. package/lib/typescript/module/ui/hooks/useDisplayCurrency.d.ts +0 -11
  208. package/lib/typescript/module/ui/hooks/useDisplayCurrency.d.ts.map +0 -1
  209. package/lib/typescript/module/ui/hooks/useDisplayPrice.d.ts +0 -6
  210. package/lib/typescript/module/ui/hooks/useDisplayPrice.d.ts.map +0 -1
  211. package/src/ui/components/AccountInvitationAcceptance.tsx +0 -90
  212. package/src/ui/components/DisplayCurrencySelector.tsx +0 -38
  213. package/src/ui/components/__tests__/AccountInvitationAcceptance.test.tsx +0 -61
  214. package/src/ui/hooks/useDisplayCurrency.ts +0 -64
  215. package/src/ui/hooks/useDisplayPrice.ts +0 -40
@@ -1,97 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.AccountInvitationAcceptance = AccountInvitationAcceptance;
7
- var _react = require("react");
8
- var _reactNative = require("react-native");
9
- var _typography = require("@oxy.so/bloom/typography");
10
- var _button = require("@oxy.so/bloom/button");
11
- var _core = require("@oxy.so/core");
12
- var _OxyContext = require("../context/OxyContext.js");
13
- var _jsxRuntime = require("react/jsx-runtime");
14
- /** The link never grants access on navigation, preview, sign-in or account switching. */
15
- function AccountInvitationAcceptance({
16
- token
17
- }) {
18
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(InvitationContent, {
19
- token: token
20
- }, token);
21
- }
22
- function InvitationContent({
23
- token
24
- }) {
25
- const {
26
- oxyServices,
27
- user,
28
- canUsePrivateApi,
29
- openAccountDialog
30
- } = (0, _OxyContext.useOxy)();
31
- const [preview, setPreview] = (0, _react.useState)(null);
32
- const [error, setError] = (0, _react.useState)('');
33
- const [busy, setBusy] = (0, _react.useState)(false);
34
- const [accepted, setAccepted] = (0, _react.useState)(false);
35
- (0, _react.useEffect)(() => {
36
- let alive = true;
37
- setPreview(null);
38
- setError('');
39
- if (canUsePrivateApi && token) {
40
- oxyServices.accounts.invitations.preview(token).then(value => {
41
- if (alive) setPreview(value);
42
- }).catch(reason => {
43
- if (alive) setError(reason instanceof Error ? reason.message : 'Invitation unavailable');
44
- });
45
- }
46
- return () => {
47
- alive = false;
48
- };
49
- }, [oxyServices, canUsePrivateApi, token]);
50
- const accept = async () => {
51
- if (!user || !preview) return;
52
- setBusy(true);
53
- setError('');
54
- try {
55
- await oxyServices.accounts.invitations.accept(token, user.id);
56
- setAccepted(true);
57
- } catch (reason) {
58
- setError(reason instanceof Error ? reason.message : 'Could not accept invitation');
59
- } finally {
60
- setBusy(false);
61
- }
62
- };
63
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
64
- className: "gap-space-16 p-space-24",
65
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
66
- className: "text-title font-semibold text-text",
67
- children: "Account invitation"
68
- }), canUsePrivateApi && token && !preview && !error ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
69
- accessibilityRole: "progressbar",
70
- children: "Loading invitation\u2026"
71
- }) : null, accepted ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
72
- children: "Invitation accepted. You can now access this account."
73
- }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
74
- children: [preview ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_typography.Text, {
75
- children: ["Join ", preview.account.displayName ?? preview.account.username, " as", ' ', preview.invitation.role, "."]
76
- }) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_typography.Text, {
77
- children: ["Selected account:", ' ', user ? `${user.name?.displayName ?? (0, _core.getNormalizedUserHandle)(user) ?? user.id} (${user.email ?? user.id})` : 'Not signed in']
78
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
79
- children: "The selected account receives access. Its email can differ from the invitation address. No access is granted until you confirm."
80
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
81
- disabled: busy,
82
- onPress: () => openAccountDialog(),
83
- children: user ? 'Change account' : 'Sign in or create account'
84
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
85
- disabled: busy || !user || !preview || user.kind !== 'personal',
86
- onPress: accept,
87
- children: "Confirm and accept"
88
- })]
89
- }), error ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
90
- accessibilityRole: "alert",
91
- children: error
92
- }) : null, !token ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
93
- children: "This invitation link is incomplete."
94
- }) : null]
95
- });
96
- }
97
- //# sourceMappingURL=AccountInvitationAcceptance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_reactNative","_typography","_button","_core","_OxyContext","_jsxRuntime","AccountInvitationAcceptance","token","jsx","InvitationContent","oxyServices","user","canUsePrivateApi","openAccountDialog","useOxy","preview","setPreview","useState","error","setError","busy","setBusy","accepted","setAccepted","useEffect","alive","accounts","invitations","then","value","catch","reason","Error","message","accept","id","jsxs","View","className","children","Text","accessibilityRole","Fragment","account","displayName","username","invitation","role","name","getNormalizedUserHandle","email","Button","disabled","onPress","kind"],"sourceRoot":"../../../../src","sources":["ui/components/AccountInvitationAcceptance.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DisplayCurrencySelector = DisplayCurrencySelector;
7
- var _react = _interopRequireDefault(require("react"));
8
- var _reactNative = require("react-native");
9
- var _segmentedControl = require("@oxy.so/bloom/segmented-control");
10
- var _typography = require("@oxy.so/bloom/typography");
11
- var _useDisplayCurrency = require("../hooks/useDisplayCurrency.js");
12
- var _useI18n = require("../hooks/useI18n.js");
13
- var _jsxRuntime = require("react/jsx-runtime");
14
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
- function DisplayCurrencySelector() {
16
- const {
17
- currency,
18
- selectCurrency,
19
- isSaving,
20
- error
21
- } = (0, _useDisplayCurrency.useDisplayCurrency)();
22
- const {
23
- t
24
- } = (0, _useI18n.useI18n)();
25
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
26
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
27
- children: t('preferences.displayCurrency.label')
28
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_segmentedControl.SegmentedControl, {
29
- type: "radio",
30
- label: t('preferences.displayCurrency.label'),
31
- value: currency,
32
- onValueChange: value => {
33
- const selected = _useDisplayCurrency.DISPLAY_CURRENCIES.find(item => item === value);
34
- if (selected && !isSaving) selectCurrency(selected);
35
- },
36
- children: _useDisplayCurrency.DISPLAY_CURRENCIES.map(value => /*#__PURE__*/(0, _jsxRuntime.jsx)(_segmentedControl.SegmentedControlItem, {
37
- value: value,
38
- disabled: isSaving,
39
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_segmentedControl.SegmentedControlItemText, {
40
- children: value
41
- })
42
- }, value))
43
- }), error && /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
44
- accessibilityLiveRegion: "polite",
45
- children: t('preferences.displayCurrency.saveFailed')
46
- })]
47
- });
48
- }
49
- //# sourceMappingURL=DisplayCurrencySelector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_segmentedControl","_typography","_useDisplayCurrency","_useI18n","_jsxRuntime","e","__esModule","default","DisplayCurrencySelector","currency","selectCurrency","isSaving","error","useDisplayCurrency","t","useI18n","jsxs","View","children","jsx","Text","SegmentedControl","type","label","value","onValueChange","selected","DISPLAY_CURRENCIES","find","item","map","SegmentedControlItem","disabled","SegmentedControlItemText","accessibilityLiveRegion"],"sourceRoot":"../../../../src","sources":["ui/components/DisplayCurrencySelector.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AAKA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAA2C,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEpC,SAASG,uBAAuBA,CAAA,EAAG;EACxC,MAAM;IAAEC,QAAQ;IAAEC,cAAc;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAG,IAAAC,sCAAkB,EAAC,CAAC;EAC1E,MAAM;IAAEC;EAAE,CAAC,GAAG,IAAAC,gBAAO,EAAC,CAAC;EACvB,oBACE,IAAAX,WAAA,CAAAY,IAAA,EAACjB,YAAA,CAAAkB,IAAI;IAAAC,QAAA,gBACH,IAAAd,WAAA,CAAAe,GAAA,EAAClB,WAAA,CAAAmB,IAAI;MAAAF,QAAA,EAAEJ,CAAC,CAAC,mCAAmC;IAAC,CAAO,CAAC,eACrD,IAAAV,WAAA,CAAAe,GAAA,EAACnB,iBAAA,CAAAqB,gBAAgB;MACfC,IAAI,EAAC,OAAO;MACZC,KAAK,EAAET,CAAC,CAAC,mCAAmC,CAAE;MAC9CU,KAAK,EAAEf,QAAS;MAChBgB,aAAa,EAAGD,KAAK,IAAK;QACxB,MAAME,QAAQ,GAAGC,sCAAkB,CAACC,IAAI,CAAEC,IAAI,IAAKA,IAAI,KAAKL,KAAK,CAAC;QAClE,IAAIE,QAAQ,IAAI,CAACf,QAAQ,EAAED,cAAc,CAACgB,QAAQ,CAAC;MACrD,CAAE;MAAAR,QAAA,EAEDS,sCAAkB,CAACG,GAAG,CAAEN,KAAK,iBAC5B,IAAApB,WAAA,CAAAe,GAAA,EAACnB,iBAAA,CAAA+B,oBAAoB;QAAaP,KAAK,EAAEA,KAAM;QAACQ,QAAQ,EAAErB,QAAS;QAAAO,QAAA,eACjE,IAAAd,WAAA,CAAAe,GAAA,EAACnB,iBAAA,CAAAiC,wBAAwB;UAAAf,QAAA,EAAEM;QAAK,CAA2B;MAAC,GADnCA,KAEL,CACvB;IAAC,CACc,CAAC,EAClBZ,KAAK,iBACJ,IAAAR,WAAA,CAAAe,GAAA,EAAClB,WAAA,CAAAmB,IAAI;MAACc,uBAAuB,EAAC,QAAQ;MAAAhB,QAAA,EAAEJ,CAAC,CAAC,wCAAwC;IAAC,CAAO,CAC3F;EAAA,CACG,CAAC;AAEX","ignoreList":[]}
@@ -1,77 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DISPLAY_CURRENCIES = void 0;
7
- exports.useDisplayCurrency = useDisplayCurrency;
8
- var _react = require("react");
9
- var _reactQuery = require("@tanstack/react-query");
10
- var _core = require("@oxy.so/core");
11
- var _OxyContext = require("../context/OxyContext.js");
12
- var _useAccountQueries = require("./queries/useAccountQueries.js");
13
- var _queryKeys = require("./queries/queryKeys.js");
14
- var _authStore = require("../stores/authStore.js");
15
- var _mutationKeys = require("./mutations/mutationKeys.js");
16
- const DISPLAY_CURRENCIES = exports.DISPLAY_CURRENCIES = ['USD', 'EUR', 'FAIR'];
17
- let anonymousCurrency = 'USD';
18
- const anonymousListeners = new Set();
19
- const subscribeAnonymous = listener => {
20
- anonymousListeners.add(listener);
21
- return () => {
22
- anonymousListeners.delete(listener);
23
- };
24
- };
25
- const anonymousSnapshot = () => anonymousCurrency;
26
-
27
- /** Account-scoped server preference. A late save can never replace another account. */
28
- function useDisplayCurrency() {
29
- const {
30
- oxyServices,
31
- activeSessionId,
32
- isAuthenticated,
33
- user
34
- } = (0, _OxyContext.useOxy)();
35
- const current = (0, _useAccountQueries.useCurrentUser)({
36
- enabled: isAuthenticated
37
- });
38
- const client = (0, _reactQuery.useQueryClient)();
39
- const anonymous = (0, _react.useSyncExternalStore)(subscribeAnonymous, anonymousSnapshot, () => 'USD');
40
- const currency = isAuthenticated ? current.data?.userPreferences?.displayCurrency ?? user?.userPreferences?.displayCurrency ?? 'USD' : anonymous;
41
- const mutation = (0, _reactQuery.useMutation)({
42
- mutationKey: [..._mutationKeys.mutationKeys.account.updateSettings],
43
- mutationFn: async input => {
44
- const updated = await (0, _core.authenticatedApiCall)(oxyServices, input.sessionId, () => oxyServices.users.updateMe({
45
- userPreferences: {
46
- displayCurrency: input.currency
47
- }
48
- }));
49
- if (updated.id !== input.userId) throw new Error('Account changed. Please try again.');
50
- return updated;
51
- },
52
- onSuccess: (updated, input) => {
53
- client.setQueryData(_queryKeys.queryKeys.accounts.current(input.sessionId), updated);
54
- if (_authStore.useAuthStore.getState().user?.id === input.userId) _authStore.useAuthStore.getState().setUser(updated);
55
- }
56
- });
57
- function selectCurrency(next) {
58
- if (!DISPLAY_CURRENCIES.includes(next)) return;
59
- if (!isAuthenticated) {
60
- anonymousCurrency = next;
61
- for (const listener of anonymousListeners) listener();
62
- return;
63
- }
64
- if (activeSessionId && user?.id) mutation.mutate({
65
- currency: next,
66
- sessionId: activeSessionId,
67
- userId: user.id
68
- });
69
- }
70
- return {
71
- currency,
72
- selectCurrency,
73
- isSaving: mutation.isPending,
74
- error: mutation.error
75
- };
76
- }
77
- //# sourceMappingURL=useDisplayCurrency.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_reactQuery","_core","_OxyContext","_useAccountQueries","_queryKeys","_authStore","_mutationKeys","DISPLAY_CURRENCIES","exports","anonymousCurrency","anonymousListeners","Set","subscribeAnonymous","listener","add","delete","anonymousSnapshot","useDisplayCurrency","oxyServices","activeSessionId","isAuthenticated","user","useOxy","current","useCurrentUser","enabled","client","useQueryClient","anonymous","useSyncExternalStore","currency","data","userPreferences","displayCurrency","mutation","useMutation","mutationKey","mutationKeys","account","updateSettings","mutationFn","input","updated","authenticatedApiCall","sessionId","users","updateMe","id","userId","Error","onSuccess","setQueryData","queryKeys","accounts","useAuthStore","getState","setUser","selectCurrency","next","includes","mutate","isSaving","isPending","error"],"sourceRoot":"../../../../src","sources":["ui/hooks/useDisplayCurrency.ts"],"mappings":"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","ignoreList":[]}
@@ -1,59 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useDisplayPrice = useDisplayPrice;
7
- var _reactQuery = require("@tanstack/react-query");
8
- var _react = require("react");
9
- var _display = require("@peable.to/sdk/display");
10
- var _useDisplayCurrency = require("./useDisplayCurrency.js");
11
- var _useI18n = require("./useI18n.js");
12
- /** Display conversion only. Pricing and checkout request bodies retain their source units. */
13
- function useDisplayPrice() {
14
- const {
15
- currency
16
- } = (0, _useDisplayCurrency.useDisplayCurrency)();
17
- const {
18
- t
19
- } = (0, _useI18n.useI18n)();
20
- const [now, setNow] = (0, _react.useState)(Date.now);
21
- const rates = (0, _reactQuery.useQuery)({
22
- queryKey: ['display-currency', 'faircoin-indexed-price'],
23
- queryFn: ({
24
- signal
25
- }) => (0, _display.readDisplayRates)({
26
- signal
27
- }),
28
- enabled: currency !== 'USD',
29
- staleTime: 30_000,
30
- gcTime: 0,
31
- retry: false,
32
- refetchInterval: 60_000,
33
- refetchOnWindowFocus: 'always'
34
- });
35
- (0, _react.useEffect)(() => {
36
- const timer = setInterval(() => setNow(Date.now()), 1000);
37
- return () => clearInterval(timer);
38
- }, []);
39
- function formatUsd(minorUnits) {
40
- const display = (0, _display.convertDisplayAmount)({
41
- units: String(minorUnits),
42
- currency: 'USD',
43
- displayCurrency: currency,
44
- rates: rates.isError ? null : rates.data,
45
- now
46
- });
47
- if (!display) return t('preferences.displayCurrency.unavailable', {
48
- currency
49
- });
50
- return currency === 'USD' ? display : t('preferences.displayCurrency.approximate', {
51
- amount: display
52
- });
53
- }
54
- return {
55
- currency,
56
- formatUsd
57
- };
58
- }
59
- //# sourceMappingURL=useDisplayPrice.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactQuery","require","_react","_display","_useDisplayCurrency","_useI18n","useDisplayPrice","currency","useDisplayCurrency","t","useI18n","now","setNow","useState","Date","rates","useQuery","queryKey","queryFn","signal","readDisplayRates","enabled","staleTime","gcTime","retry","refetchInterval","refetchOnWindowFocus","useEffect","timer","setInterval","clearInterval","formatUsd","minorUnits","display","convertDisplayAmount","units","String","displayCurrency","isError","data","amount"],"sourceRoot":"../../../../src","sources":["ui/hooks/useDisplayPrice.ts"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAEA;AACO,SAASK,eAAeA,CAAA,EAAG;EAChC,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAC,sCAAkB,EAAC,CAAC;EACzC,MAAM;IAAEC;EAAE,CAAC,GAAG,IAAAC,gBAAO,EAAC,CAAC;EACvB,MAAM,CAACC,GAAG,EAAEC,MAAM,CAAC,GAAG,IAAAC,eAAQ,EAACC,IAAI,CAACH,GAAG,CAAC;EACxC,MAAMI,KAAK,GAAG,IAAAC,oBAAQ,EAAC;IACrBC,QAAQ,EAAE,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACxDC,OAAO,EAAEA,CAAC;MAAEC;IAAO,CAAC,KAAK,IAAAC,yBAAgB,EAAC;MAAED;IAAO,CAAC,CAAC;IACrDE,OAAO,EAAEd,QAAQ,KAAK,KAAK;IAC3Be,SAAS,EAAE,MAAM;IACjBC,MAAM,EAAE,CAAC;IACTC,KAAK,EAAE,KAAK;IACZC,eAAe,EAAE,MAAM;IACvBC,oBAAoB,EAAE;EACxB,CAAC,CAAC;EACF,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,KAAK,GAAGC,WAAW,CAAC,MAAMjB,MAAM,CAACE,IAAI,CAACH,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IACzD,OAAO,MAAMmB,aAAa,CAACF,KAAK,CAAC;EACnC,CAAC,EAAE,EAAE,CAAC;EACN,SAASG,SAASA,CAACC,UAAkB,EAAE;IACrC,MAAMC,OAAO,GAAG,IAAAC,6BAAoB,EAAC;MACnCC,KAAK,EAAEC,MAAM,CAACJ,UAAU,CAAC;MACzBzB,QAAQ,EAAE,KAAK;MACf8B,eAAe,EAAE9B,QAAQ;MACzBQ,KAAK,EAAEA,KAAK,CAACuB,OAAO,GAAG,IAAI,GAAGvB,KAAK,CAACwB,IAAI;MACxC5B;IACF,CAAC,CAAC;IACF,IAAI,CAACsB,OAAO,EAAE,OAAOxB,CAAC,CAAC,yCAAyC,EAAE;MAAEF;IAAS,CAAC,CAAC;IAC/E,OAAOA,QAAQ,KAAK,KAAK,GACrB0B,OAAO,GACPxB,CAAC,CAAC,yCAAyC,EAAE;MAAE+B,MAAM,EAAEP;IAAQ,CAAC,CAAC;EACvE;EACA,OAAO;IAAE1B,QAAQ;IAAEwB;EAAU,CAAC;AAChC","ignoreList":[]}
@@ -1,94 +0,0 @@
1
- "use strict";
2
-
3
- import { useEffect, useState } from 'react';
4
- import { View } from 'react-native';
5
- import { Text } from '@oxy.so/bloom/typography';
6
- import { Button } from '@oxy.so/bloom/button';
7
- import { getNormalizedUserHandle } from '@oxy.so/core';
8
- import { useOxy } from "../context/OxyContext.js";
9
-
10
- /** The link never grants access on navigation, preview, sign-in or account switching. */
11
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
12
- export function AccountInvitationAcceptance({
13
- token
14
- }) {
15
- return /*#__PURE__*/_jsx(InvitationContent, {
16
- token: token
17
- }, token);
18
- }
19
- function InvitationContent({
20
- token
21
- }) {
22
- const {
23
- oxyServices,
24
- user,
25
- canUsePrivateApi,
26
- openAccountDialog
27
- } = useOxy();
28
- const [preview, setPreview] = useState(null);
29
- const [error, setError] = useState('');
30
- const [busy, setBusy] = useState(false);
31
- const [accepted, setAccepted] = useState(false);
32
- useEffect(() => {
33
- let alive = true;
34
- setPreview(null);
35
- setError('');
36
- if (canUsePrivateApi && token) {
37
- oxyServices.accounts.invitations.preview(token).then(value => {
38
- if (alive) setPreview(value);
39
- }).catch(reason => {
40
- if (alive) setError(reason instanceof Error ? reason.message : 'Invitation unavailable');
41
- });
42
- }
43
- return () => {
44
- alive = false;
45
- };
46
- }, [oxyServices, canUsePrivateApi, token]);
47
- const accept = async () => {
48
- if (!user || !preview) return;
49
- setBusy(true);
50
- setError('');
51
- try {
52
- await oxyServices.accounts.invitations.accept(token, user.id);
53
- setAccepted(true);
54
- } catch (reason) {
55
- setError(reason instanceof Error ? reason.message : 'Could not accept invitation');
56
- } finally {
57
- setBusy(false);
58
- }
59
- };
60
- return /*#__PURE__*/_jsxs(View, {
61
- className: "gap-space-16 p-space-24",
62
- children: [/*#__PURE__*/_jsx(Text, {
63
- className: "text-title font-semibold text-text",
64
- children: "Account invitation"
65
- }), canUsePrivateApi && token && !preview && !error ? /*#__PURE__*/_jsx(Text, {
66
- accessibilityRole: "progressbar",
67
- children: "Loading invitation\u2026"
68
- }) : null, accepted ? /*#__PURE__*/_jsx(Text, {
69
- children: "Invitation accepted. You can now access this account."
70
- }) : /*#__PURE__*/_jsxs(_Fragment, {
71
- children: [preview ? /*#__PURE__*/_jsxs(Text, {
72
- children: ["Join ", preview.account.displayName ?? preview.account.username, " as", ' ', preview.invitation.role, "."]
73
- }) : null, /*#__PURE__*/_jsxs(Text, {
74
- children: ["Selected account:", ' ', user ? `${user.name?.displayName ?? getNormalizedUserHandle(user) ?? user.id} (${user.email ?? user.id})` : 'Not signed in']
75
- }), /*#__PURE__*/_jsx(Text, {
76
- children: "The selected account receives access. Its email can differ from the invitation address. No access is granted until you confirm."
77
- }), /*#__PURE__*/_jsx(Button, {
78
- disabled: busy,
79
- onPress: () => openAccountDialog(),
80
- children: user ? 'Change account' : 'Sign in or create account'
81
- }), /*#__PURE__*/_jsx(Button, {
82
- disabled: busy || !user || !preview || user.kind !== 'personal',
83
- onPress: accept,
84
- children: "Confirm and accept"
85
- })]
86
- }), error ? /*#__PURE__*/_jsx(Text, {
87
- accessibilityRole: "alert",
88
- children: error
89
- }) : null, !token ? /*#__PURE__*/_jsx(Text, {
90
- children: "This invitation link is incomplete."
91
- }) : null]
92
- });
93
- }
94
- //# sourceMappingURL=AccountInvitationAcceptance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useEffect","useState","View","Text","Button","getNormalizedUserHandle","useOxy","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","AccountInvitationAcceptance","token","InvitationContent","oxyServices","user","canUsePrivateApi","openAccountDialog","preview","setPreview","error","setError","busy","setBusy","accepted","setAccepted","alive","accounts","invitations","then","value","catch","reason","Error","message","accept","id","className","children","accessibilityRole","account","displayName","username","invitation","role","name","email","disabled","onPress","kind"],"sourceRoot":"../../../../src","sources":["ui/components/AccountInvitationAcceptance.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,44 +0,0 @@
1
- "use strict";
2
-
3
- import React from 'react';
4
- import { View } from 'react-native';
5
- import { SegmentedControl, SegmentedControlItem, SegmentedControlItemText } from '@oxy.so/bloom/segmented-control';
6
- import { Text } from '@oxy.so/bloom/typography';
7
- import { DISPLAY_CURRENCIES, useDisplayCurrency } from "../hooks/useDisplayCurrency.js";
8
- import { useI18n } from "../hooks/useI18n.js";
9
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
- export function DisplayCurrencySelector() {
11
- const {
12
- currency,
13
- selectCurrency,
14
- isSaving,
15
- error
16
- } = useDisplayCurrency();
17
- const {
18
- t
19
- } = useI18n();
20
- return /*#__PURE__*/_jsxs(View, {
21
- children: [/*#__PURE__*/_jsx(Text, {
22
- children: t('preferences.displayCurrency.label')
23
- }), /*#__PURE__*/_jsx(SegmentedControl, {
24
- type: "radio",
25
- label: t('preferences.displayCurrency.label'),
26
- value: currency,
27
- onValueChange: value => {
28
- const selected = DISPLAY_CURRENCIES.find(item => item === value);
29
- if (selected && !isSaving) selectCurrency(selected);
30
- },
31
- children: DISPLAY_CURRENCIES.map(value => /*#__PURE__*/_jsx(SegmentedControlItem, {
32
- value: value,
33
- disabled: isSaving,
34
- children: /*#__PURE__*/_jsx(SegmentedControlItemText, {
35
- children: value
36
- })
37
- }, value))
38
- }), error && /*#__PURE__*/_jsx(Text, {
39
- accessibilityLiveRegion: "polite",
40
- children: t('preferences.displayCurrency.saveFailed')
41
- })]
42
- });
43
- }
44
- //# sourceMappingURL=DisplayCurrencySelector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","View","SegmentedControl","SegmentedControlItem","SegmentedControlItemText","Text","DISPLAY_CURRENCIES","useDisplayCurrency","useI18n","jsx","_jsx","jsxs","_jsxs","DisplayCurrencySelector","currency","selectCurrency","isSaving","error","t","children","type","label","value","onValueChange","selected","find","item","map","disabled","accessibilityLiveRegion"],"sourceRoot":"../../../../src","sources":["ui/components/DisplayCurrencySelector.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SACEC,gBAAgB,EAChBC,oBAAoB,EACpBC,wBAAwB,QACnB,iCAAiC;AACxC,SAASC,IAAI,QAAQ,0BAA0B;AAC/C,SAASC,kBAAkB,EAAEC,kBAAkB,QAAQ,gCAA6B;AACpF,SAASC,OAAO,QAAQ,qBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE3C,OAAO,SAASC,uBAAuBA,CAAA,EAAG;EACxC,MAAM;IAAEC,QAAQ;IAAEC,cAAc;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAGV,kBAAkB,CAAC,CAAC;EAC1E,MAAM;IAAEW;EAAE,CAAC,GAAGV,OAAO,CAAC,CAAC;EACvB,oBACEI,KAAA,CAACX,IAAI;IAAAkB,QAAA,gBACHT,IAAA,CAACL,IAAI;MAAAc,QAAA,EAAED,CAAC,CAAC,mCAAmC;IAAC,CAAO,CAAC,eACrDR,IAAA,CAACR,gBAAgB;MACfkB,IAAI,EAAC,OAAO;MACZC,KAAK,EAAEH,CAAC,CAAC,mCAAmC,CAAE;MAC9CI,KAAK,EAAER,QAAS;MAChBS,aAAa,EAAGD,KAAK,IAAK;QACxB,MAAME,QAAQ,GAAGlB,kBAAkB,CAACmB,IAAI,CAAEC,IAAI,IAAKA,IAAI,KAAKJ,KAAK,CAAC;QAClE,IAAIE,QAAQ,IAAI,CAACR,QAAQ,EAAED,cAAc,CAACS,QAAQ,CAAC;MACrD,CAAE;MAAAL,QAAA,EAEDb,kBAAkB,CAACqB,GAAG,CAAEL,KAAK,iBAC5BZ,IAAA,CAACP,oBAAoB;QAAamB,KAAK,EAAEA,KAAM;QAACM,QAAQ,EAAEZ,QAAS;QAAAG,QAAA,eACjET,IAAA,CAACN,wBAAwB;UAAAe,QAAA,EAAEG;QAAK,CAA2B;MAAC,GADnCA,KAEL,CACvB;IAAC,CACc,CAAC,EAClBL,KAAK,iBACJP,IAAA,CAACL,IAAI;MAACwB,uBAAuB,EAAC,QAAQ;MAAAV,QAAA,EAAED,CAAC,CAAC,wCAAwC;IAAC,CAAO,CAC3F;EAAA,CACG,CAAC;AAEX","ignoreList":[]}
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- import { useSyncExternalStore } from 'react';
4
- import { useMutation, useQueryClient } from '@tanstack/react-query';
5
- import { authenticatedApiCall } from '@oxy.so/core';
6
- import { useOxy } from "../context/OxyContext.js";
7
- import { useCurrentUser } from "./queries/useAccountQueries.js";
8
- import { queryKeys } from "./queries/queryKeys.js";
9
- import { useAuthStore } from "../stores/authStore.js";
10
- import { mutationKeys } from "./mutations/mutationKeys.js";
11
- export const DISPLAY_CURRENCIES = ['USD', 'EUR', 'FAIR'];
12
- let anonymousCurrency = 'USD';
13
- const anonymousListeners = new Set();
14
- const subscribeAnonymous = listener => {
15
- anonymousListeners.add(listener);
16
- return () => {
17
- anonymousListeners.delete(listener);
18
- };
19
- };
20
- const anonymousSnapshot = () => anonymousCurrency;
21
-
22
- /** Account-scoped server preference. A late save can never replace another account. */
23
- export function useDisplayCurrency() {
24
- const {
25
- oxyServices,
26
- activeSessionId,
27
- isAuthenticated,
28
- user
29
- } = useOxy();
30
- const current = useCurrentUser({
31
- enabled: isAuthenticated
32
- });
33
- const client = useQueryClient();
34
- const anonymous = useSyncExternalStore(subscribeAnonymous, anonymousSnapshot, () => 'USD');
35
- const currency = isAuthenticated ? current.data?.userPreferences?.displayCurrency ?? user?.userPreferences?.displayCurrency ?? 'USD' : anonymous;
36
- const mutation = useMutation({
37
- mutationKey: [...mutationKeys.account.updateSettings],
38
- mutationFn: async input => {
39
- const updated = await authenticatedApiCall(oxyServices, input.sessionId, () => oxyServices.users.updateMe({
40
- userPreferences: {
41
- displayCurrency: input.currency
42
- }
43
- }));
44
- if (updated.id !== input.userId) throw new Error('Account changed. Please try again.');
45
- return updated;
46
- },
47
- onSuccess: (updated, input) => {
48
- client.setQueryData(queryKeys.accounts.current(input.sessionId), updated);
49
- if (useAuthStore.getState().user?.id === input.userId) useAuthStore.getState().setUser(updated);
50
- }
51
- });
52
- function selectCurrency(next) {
53
- if (!DISPLAY_CURRENCIES.includes(next)) return;
54
- if (!isAuthenticated) {
55
- anonymousCurrency = next;
56
- for (const listener of anonymousListeners) listener();
57
- return;
58
- }
59
- if (activeSessionId && user?.id) mutation.mutate({
60
- currency: next,
61
- sessionId: activeSessionId,
62
- userId: user.id
63
- });
64
- }
65
- return {
66
- currency,
67
- selectCurrency,
68
- isSaving: mutation.isPending,
69
- error: mutation.error
70
- };
71
- }
72
- //# sourceMappingURL=useDisplayCurrency.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useSyncExternalStore","useMutation","useQueryClient","authenticatedApiCall","useOxy","useCurrentUser","queryKeys","useAuthStore","mutationKeys","DISPLAY_CURRENCIES","anonymousCurrency","anonymousListeners","Set","subscribeAnonymous","listener","add","delete","anonymousSnapshot","useDisplayCurrency","oxyServices","activeSessionId","isAuthenticated","user","current","enabled","client","anonymous","currency","data","userPreferences","displayCurrency","mutation","mutationKey","account","updateSettings","mutationFn","input","updated","sessionId","users","updateMe","id","userId","Error","onSuccess","setQueryData","accounts","getState","setUser","selectCurrency","next","includes","mutate","isSaving","isPending","error"],"sourceRoot":"../../../../src","sources":["ui/hooks/useDisplayCurrency.ts"],"mappings":"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","ignoreList":[]}
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- import { useQuery } from '@tanstack/react-query';
4
- import { useEffect, useState } from 'react';
5
- import { convertDisplayAmount, readDisplayRates } from '@peable.to/sdk/display';
6
- import { useDisplayCurrency } from "./useDisplayCurrency.js";
7
- import { useI18n } from "./useI18n.js";
8
-
9
- /** Display conversion only. Pricing and checkout request bodies retain their source units. */
10
- export function useDisplayPrice() {
11
- const {
12
- currency
13
- } = useDisplayCurrency();
14
- const {
15
- t
16
- } = useI18n();
17
- const [now, setNow] = useState(Date.now);
18
- const rates = useQuery({
19
- queryKey: ['display-currency', 'faircoin-indexed-price'],
20
- queryFn: ({
21
- signal
22
- }) => readDisplayRates({
23
- signal
24
- }),
25
- enabled: currency !== 'USD',
26
- staleTime: 30_000,
27
- gcTime: 0,
28
- retry: false,
29
- refetchInterval: 60_000,
30
- refetchOnWindowFocus: 'always'
31
- });
32
- useEffect(() => {
33
- const timer = setInterval(() => setNow(Date.now()), 1000);
34
- return () => clearInterval(timer);
35
- }, []);
36
- function formatUsd(minorUnits) {
37
- const display = convertDisplayAmount({
38
- units: String(minorUnits),
39
- currency: 'USD',
40
- displayCurrency: currency,
41
- rates: rates.isError ? null : rates.data,
42
- now
43
- });
44
- if (!display) return t('preferences.displayCurrency.unavailable', {
45
- currency
46
- });
47
- return currency === 'USD' ? display : t('preferences.displayCurrency.approximate', {
48
- amount: display
49
- });
50
- }
51
- return {
52
- currency,
53
- formatUsd
54
- };
55
- }
56
- //# sourceMappingURL=useDisplayPrice.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useQuery","useEffect","useState","convertDisplayAmount","readDisplayRates","useDisplayCurrency","useI18n","useDisplayPrice","currency","t","now","setNow","Date","rates","queryKey","queryFn","signal","enabled","staleTime","gcTime","retry","refetchInterval","refetchOnWindowFocus","timer","setInterval","clearInterval","formatUsd","minorUnits","display","units","String","displayCurrency","isError","data","amount"],"sourceRoot":"../../../../src","sources":["ui/hooks/useDisplayPrice.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,oBAAoB,EAAEC,gBAAgB,QAAQ,wBAAwB;AAC/E,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,OAAO,QAAQ,cAAW;;AAEnC;AACA,OAAO,SAASC,eAAeA,CAAA,EAAG;EAChC,MAAM;IAAEC;EAAS,CAAC,GAAGH,kBAAkB,CAAC,CAAC;EACzC,MAAM;IAAEI;EAAE,CAAC,GAAGH,OAAO,CAAC,CAAC;EACvB,MAAM,CAACI,GAAG,EAAEC,MAAM,CAAC,GAAGT,QAAQ,CAACU,IAAI,CAACF,GAAG,CAAC;EACxC,MAAMG,KAAK,GAAGb,QAAQ,CAAC;IACrBc,QAAQ,EAAE,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACxDC,OAAO,EAAEA,CAAC;MAAEC;IAAO,CAAC,KAAKZ,gBAAgB,CAAC;MAAEY;IAAO,CAAC,CAAC;IACrDC,OAAO,EAAET,QAAQ,KAAK,KAAK;IAC3BU,SAAS,EAAE,MAAM;IACjBC,MAAM,EAAE,CAAC;IACTC,KAAK,EAAE,KAAK;IACZC,eAAe,EAAE,MAAM;IACvBC,oBAAoB,EAAE;EACxB,CAAC,CAAC;EACFrB,SAAS,CAAC,MAAM;IACd,MAAMsB,KAAK,GAAGC,WAAW,CAAC,MAAMb,MAAM,CAACC,IAAI,CAACF,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IACzD,OAAO,MAAMe,aAAa,CAACF,KAAK,CAAC;EACnC,CAAC,EAAE,EAAE,CAAC;EACN,SAASG,SAASA,CAACC,UAAkB,EAAE;IACrC,MAAMC,OAAO,GAAGzB,oBAAoB,CAAC;MACnC0B,KAAK,EAAEC,MAAM,CAACH,UAAU,CAAC;MACzBnB,QAAQ,EAAE,KAAK;MACfuB,eAAe,EAAEvB,QAAQ;MACzBK,KAAK,EAAEA,KAAK,CAACmB,OAAO,GAAG,IAAI,GAAGnB,KAAK,CAACoB,IAAI;MACxCvB;IACF,CAAC,CAAC;IACF,IAAI,CAACkB,OAAO,EAAE,OAAOnB,CAAC,CAAC,yCAAyC,EAAE;MAAED;IAAS,CAAC,CAAC;IAC/E,OAAOA,QAAQ,KAAK,KAAK,GACrBoB,OAAO,GACPnB,CAAC,CAAC,yCAAyC,EAAE;MAAEyB,MAAM,EAAEN;IAAQ,CAAC,CAAC;EACvE;EACA,OAAO;IAAEpB,QAAQ;IAAEkB;EAAU,CAAC;AAChC","ignoreList":[]}
@@ -1,5 +0,0 @@
1
- /** The link never grants access on navigation, preview, sign-in or account switching. */
2
- export declare function AccountInvitationAcceptance({ token }: {
3
- token: string;
4
- }): import("react").JSX.Element;
5
- //# sourceMappingURL=AccountInvitationAcceptance.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccountInvitationAcceptance.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/AccountInvitationAcceptance.tsx"],"names":[],"mappings":"AAQA,yFAAyF;AACzF,wBAAgB,2BAA2B,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,+BAEvE"}
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- export declare function DisplayCurrencySelector(): React.JSX.Element;
3
- //# sourceMappingURL=DisplayCurrencySelector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DisplayCurrencySelector.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/DisplayCurrencySelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,wBAAgB,uBAAuB,sBA0BtC"}