@oxy.so/services 11.2.0 → 11.3.1

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 (85) hide show
  1. package/lib/commonjs/ui/boot/runProviderColdBoot.js +47 -3
  2. package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
  3. package/lib/commonjs/ui/components/organizations/OrganizationClaimReview.js +208 -0
  4. package/lib/commonjs/ui/components/organizations/OrganizationClaimReview.js.map +1 -0
  5. package/lib/commonjs/ui/components/organizations/OrganizationClaims.js +77 -0
  6. package/lib/commonjs/ui/components/organizations/OrganizationClaims.js.map +1 -0
  7. package/lib/commonjs/ui/components/organizations/OrganizationDirectorySearch.js +218 -0
  8. package/lib/commonjs/ui/components/organizations/OrganizationDirectorySearch.js.map +1 -0
  9. package/lib/commonjs/ui/components/organizations/OrganizationSettings.js +147 -0
  10. package/lib/commonjs/ui/components/organizations/OrganizationSettings.js.map +1 -0
  11. package/lib/commonjs/ui/components/organizations/OrganizationTypePicker.js +34 -0
  12. package/lib/commonjs/ui/components/organizations/OrganizationTypePicker.js.map +1 -0
  13. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +14 -5
  14. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  15. package/lib/commonjs/ui/screens/CreateAccountScreen.js +148 -115
  16. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  17. package/lib/commonjs/ui/screens/ManageAccountScreen.js +13 -1
  18. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  19. package/lib/module/ui/boot/runProviderColdBoot.js +47 -3
  20. package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
  21. package/lib/module/ui/components/organizations/OrganizationClaimReview.js +205 -0
  22. package/lib/module/ui/components/organizations/OrganizationClaimReview.js.map +1 -0
  23. package/lib/module/ui/components/organizations/OrganizationClaims.js +73 -0
  24. package/lib/module/ui/components/organizations/OrganizationClaims.js.map +1 -0
  25. package/lib/module/ui/components/organizations/OrganizationDirectorySearch.js +215 -0
  26. package/lib/module/ui/components/organizations/OrganizationDirectorySearch.js.map +1 -0
  27. package/lib/module/ui/components/organizations/OrganizationSettings.js +143 -0
  28. package/lib/module/ui/components/organizations/OrganizationSettings.js.map +1 -0
  29. package/lib/module/ui/components/organizations/OrganizationTypePicker.js +30 -0
  30. package/lib/module/ui/components/organizations/OrganizationTypePicker.js.map +1 -0
  31. package/lib/module/ui/screens/AccountSettingsScreen.js +14 -5
  32. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  33. package/lib/module/ui/screens/CreateAccountScreen.js +149 -115
  34. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  35. package/lib/module/ui/screens/ManageAccountScreen.js +13 -1
  36. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  37. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/ui/components/organizations/OrganizationClaimReview.d.ts +3 -0
  39. package/lib/typescript/commonjs/ui/components/organizations/OrganizationClaimReview.d.ts.map +1 -0
  40. package/lib/typescript/commonjs/ui/components/organizations/OrganizationClaims.d.ts +2 -0
  41. package/lib/typescript/commonjs/ui/components/organizations/OrganizationClaims.d.ts.map +1 -0
  42. package/lib/typescript/commonjs/ui/components/organizations/OrganizationDirectorySearch.d.ts +6 -0
  43. package/lib/typescript/commonjs/ui/components/organizations/OrganizationDirectorySearch.d.ts.map +1 -0
  44. package/lib/typescript/commonjs/ui/components/organizations/OrganizationSettings.d.ts +5 -0
  45. package/lib/typescript/commonjs/ui/components/organizations/OrganizationSettings.d.ts.map +1 -0
  46. package/lib/typescript/commonjs/ui/components/organizations/OrganizationTypePicker.d.ts +7 -0
  47. package/lib/typescript/commonjs/ui/components/organizations/OrganizationTypePicker.d.ts.map +1 -0
  48. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +3 -2
  49. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  50. package/lib/typescript/commonjs/ui/hooks/queries/usePersonalPlans.d.ts +2 -2
  51. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts +1 -1
  52. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  53. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  54. package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  55. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  56. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  57. package/lib/typescript/module/ui/components/organizations/OrganizationClaimReview.d.ts +3 -0
  58. package/lib/typescript/module/ui/components/organizations/OrganizationClaimReview.d.ts.map +1 -0
  59. package/lib/typescript/module/ui/components/organizations/OrganizationClaims.d.ts +2 -0
  60. package/lib/typescript/module/ui/components/organizations/OrganizationClaims.d.ts.map +1 -0
  61. package/lib/typescript/module/ui/components/organizations/OrganizationDirectorySearch.d.ts +6 -0
  62. package/lib/typescript/module/ui/components/organizations/OrganizationDirectorySearch.d.ts.map +1 -0
  63. package/lib/typescript/module/ui/components/organizations/OrganizationSettings.d.ts +5 -0
  64. package/lib/typescript/module/ui/components/organizations/OrganizationSettings.d.ts.map +1 -0
  65. package/lib/typescript/module/ui/components/organizations/OrganizationTypePicker.d.ts +7 -0
  66. package/lib/typescript/module/ui/components/organizations/OrganizationTypePicker.d.ts.map +1 -0
  67. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +3 -2
  68. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  69. package/lib/typescript/module/ui/hooks/queries/usePersonalPlans.d.ts +2 -2
  70. package/lib/typescript/module/ui/icons/Ionicons.d.ts +1 -1
  71. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  72. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  73. package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  74. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  75. package/package.json +8 -8
  76. package/src/ui/boot/__tests__/coldBootNoIdpRedirect.test.ts +166 -3
  77. package/src/ui/boot/runProviderColdBoot.ts +49 -4
  78. package/src/ui/components/organizations/OrganizationClaimReview.tsx +218 -0
  79. package/src/ui/components/organizations/OrganizationClaims.tsx +67 -0
  80. package/src/ui/components/organizations/OrganizationDirectorySearch.tsx +228 -0
  81. package/src/ui/components/organizations/OrganizationSettings.tsx +131 -0
  82. package/src/ui/components/organizations/OrganizationTypePicker.tsx +31 -0
  83. package/src/ui/screens/AccountSettingsScreen.tsx +22 -4
  84. package/src/ui/screens/CreateAccountScreen.tsx +177 -124
  85. package/src/ui/screens/ManageAccountScreen.tsx +18 -0
@@ -14,6 +14,28 @@ var _oauthReturn = require("../utils/oauthReturn.js");
14
14
  var _isWebBrowser = require("../utils/isWebBrowser.js");
15
15
  var _netConnectivity = require("../utils/netConnectivity.js");
16
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
+ /**
18
+ * Whether the URL carries an OAuth return (`?code=` or `?error=`) for
19
+ * `tryCompleteOAuthReturn` to consume. Reads the address bar only.
20
+ */
21
+ function hasOAuthReturnOnUrl() {
22
+ const search = globalThis.location?.search;
23
+ if (!search) return false;
24
+ const params = new URLSearchParams(search);
25
+ return params.has('code') || params.has('error');
26
+ }
27
+
28
+ /**
29
+ * Whether this origin's own store holds anything a web boot could restore from:
30
+ * a warm access token to plant or a device secret to mint with. A presence
31
+ * check only — nothing read here is used, sent or synced before the
32
+ * classification allows it.
33
+ */
34
+ async function hasRestorableState(store) {
35
+ const persisted = await store.load();
36
+ return Boolean(persisted?.accessToken || persisted?.deviceSecret);
37
+ }
38
+
17
39
  /** How long the cold boot waits for the post-boot SessionClient handoff (ms). */
18
40
  const SESSION_HANDOFF_DEADLINE_MS = exports.SESSION_HANDOFF_DEADLINE_MS = 6000;
19
41
 
@@ -101,9 +123,31 @@ async function runProviderColdBoot(opts) {
101
123
  const identityBound = sessionMode === 'identity';
102
124
  setTokenReady(false);
103
125
  try {
104
- // Classification precedes every local-secret, shared-credential and identity
105
- // probe. Unavailable registry metadata fails closed, including offline boot.
106
- const lane = await (opts.resolveSessionLane?.() ?? (0, _applicationSessionLane.resolveApplicationSessionLane)(oxyServices, clientId));
126
+ // Classification precedes every USE of a local secret, the shared credential
127
+ // and the identity key. Unavailable registry metadata fails closed, including
128
+ // offline boot. It starts now, before anything else, so its round trip
129
+ // overlaps the local work below.
130
+ const classification = (async () => opts.resolveSessionLane?.() ?? (0, _applicationSessionLane.resolveApplicationSessionLane)(oxyServices, clientId))();
131
+ // Observed so a rejection that lands before it is awaited is not reported as
132
+ // unhandled; every path below still awaits it and sees the rejection.
133
+ classification.catch(() => undefined);
134
+
135
+ // The verdict decides HOW a session is restored, never WHETHER there is one.
136
+ // A web origin with nothing to restore and no OAuth return on the URL ends
137
+ // signed out on either lane, so routing need not wait a network round trip
138
+ // for an answer that cannot change the outcome. The classification still
139
+ // completes below and still gates every later sign-in
140
+ // (`ensureDeviceSessionLane` shares this same in-flight lookup).
141
+ if (!identityBound && (0, _isWebBrowser.isWebBrowser)() && !hasOAuthReturnOnUrl()) {
142
+ if (!(await hasRestorableState(authStore))) {
143
+ markAuthResolved();
144
+ const lane = await classification;
145
+ await opts.onClassified?.(lane);
146
+ if (lane === 'oauth') setTokenReady(true);
147
+ return;
148
+ }
149
+ }
150
+ const lane = await classification;
107
151
  await opts.onClassified?.(lane);
108
152
  if (identityBound && lane !== 'device') return;
109
153
  // The redirect transport's RETURN leg. An app reaches it whenever the browser
@@ -1 +1 @@
1
- {"version":3,"names":["_applicationSessionLane","require","_core","_session","_deviceCredential","_sharedDeviceCredentialStore","_oauthReturn","_isWebBrowser","_netConnectivity","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SESSION_HANDOFF_DEADLINE_MS","exports","COLD_BOOT_OVERALL_DEADLINE_MS","OFFLINE_PROBE_TIMEOUT_MS","detectOfflineHint","isWebBrowser","online","globalThis","navigator","onLine","NetInfo","Promise","resolve","then","state","race","fetch","setTimeout","isNetConnectivityExplicitlyOffline","runProviderColdBoot","opts","oxyServices","authStore","clientId","authRedirectUri","sessionMode","identity","sessionClient","syncDeviceCredentialToHost","commitSession","markAuthResolved","setTokenReady","identityBound","lane","resolveSessionLane","resolveApplicationSessionLane","onClassified","oauthCompleted","tryCompleteOAuthReturn","input","activate","oauth","beforeDeviceBoot","offline","runSessionColdBoot","oxy","store","platform","isWeb","isNative","sharedDeviceCredential","createPlatformSharedDeviceCredentialStore","undefined","overallDeadlineMs","isOffline","onStepDeadline","stepId","loggerUtil","warn","component","method","onSession","session","handoff","sessionId","accessToken","userId","deviceState","handoffDeadlineId","finally","clearTimeout","onSignedOut","cred","loadPersistedDeviceCredential","start","socketError","__DEV__","debug","onStepError","id","error","afterDeviceBoot","Error","String"],"sourceRoot":"../../../../src","sources":["ui/boot/runProviderColdBoot.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_applicationSessionLane","require","_core","_session","_deviceCredential","_sharedDeviceCredentialStore","_oauthReturn","_isWebBrowser","_netConnectivity","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","hasOAuthReturnOnUrl","search","globalThis","location","params","URLSearchParams","hasRestorableState","store","persisted","load","Boolean","accessToken","deviceSecret","SESSION_HANDOFF_DEADLINE_MS","exports","COLD_BOOT_OVERALL_DEADLINE_MS","OFFLINE_PROBE_TIMEOUT_MS","detectOfflineHint","isWebBrowser","online","navigator","onLine","NetInfo","Promise","resolve","then","state","race","fetch","setTimeout","isNetConnectivityExplicitlyOffline","runProviderColdBoot","opts","oxyServices","authStore","clientId","authRedirectUri","sessionMode","identity","sessionClient","syncDeviceCredentialToHost","commitSession","markAuthResolved","setTokenReady","identityBound","classification","resolveSessionLane","resolveApplicationSessionLane","catch","undefined","lane","onClassified","oauthCompleted","tryCompleteOAuthReturn","input","activate","oauth","beforeDeviceBoot","offline","runSessionColdBoot","oxy","platform","isWeb","isNative","sharedDeviceCredential","createPlatformSharedDeviceCredentialStore","overallDeadlineMs","isOffline","onStepDeadline","stepId","loggerUtil","warn","component","method","onSession","session","handoff","sessionId","userId","deviceState","handoffDeadlineId","finally","clearTimeout","onSignedOut","cred","loadPersistedDeviceCredential","start","socketError","__DEV__","debug","onStepError","id","error","afterDeviceBoot","Error","String"],"sourceRoot":"../../../../src","sources":["ui/boot/runProviderColdBoot.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,208 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.OrganizationClaimReview = OrganizationClaimReview;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _reactQuery = require("@tanstack/react-query");
10
+ var _core = require("@oxy.so/core");
11
+ var _contracts = require("@oxy.so/contracts");
12
+ var _button = require("@oxy.so/bloom/button");
13
+ var _settingsList = require("@oxy.so/bloom/settings-list");
14
+ var _textField = require("@oxy.so/bloom/text-field");
15
+ var _typography = require("@oxy.so/bloom/typography");
16
+ var _OxyContext = require("../../context/OxyContext.js");
17
+ var _useI18n = require("../../hooks/useI18n.js");
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ /** The queue is requested only after an explicit action; the server rechecks staff authority. */
20
+ function OrganizationClaimReview() {
21
+ const {
22
+ t
23
+ } = (0, _useI18n.useI18n)();
24
+ const {
25
+ user,
26
+ canUsePrivateApi
27
+ } = (0, _OxyContext.useOxy)();
28
+ const [open, setOpen] = (0, _react.useState)(false);
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_settingsList.SettingsListGroup, {
30
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
31
+ title: t('organizationDirectory.review.title'),
32
+ disabled: !canUsePrivateApi,
33
+ onPress: () => setOpen(value => !value)
34
+ }), open && user?.kind === 'personal' && canUsePrivateApi ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ReviewQueue, {}, user.id) : null]
35
+ });
36
+ }
37
+ function ReviewQueue() {
38
+ const {
39
+ t
40
+ } = (0, _useI18n.useI18n)();
41
+ const {
42
+ oxyServices,
43
+ user,
44
+ canUsePrivateApi
45
+ } = (0, _OxyContext.useOxy)();
46
+ const [selected, setSelected] = (0, _react.useState)(null);
47
+ const requests = (0, _reactQuery.useInfiniteQuery)({
48
+ queryKey: ['oxy', 'organizations', 'review', user?.id, canUsePrivateApi],
49
+ queryFn: ({
50
+ pageParam
51
+ }) => oxyServices.organizations.reviewClaims({
52
+ status: 'pending',
53
+ limit: 20,
54
+ ...(pageParam ? {
55
+ cursor: pageParam
56
+ } : {})
57
+ }),
58
+ initialPageParam: undefined,
59
+ getNextPageParam: page => page.nextCursor ?? undefined,
60
+ enabled: canUsePrivateApi,
61
+ retry: false,
62
+ gcTime: 0
63
+ });
64
+ const claims = requests.data?.pages.flatMap(page => page.items) ?? [];
65
+ const ids = [...new Set(claims.map(claim => claim.accountId))].sort();
66
+ const organizations = (0, _reactQuery.useQuery)({
67
+ queryKey: ['oxy', 'organizations', 'review-organizations', ids],
68
+ queryFn: async () => {
69
+ const batches = [];
70
+ for (let offset = 0; offset < ids.length; offset += 100) batches.push(oxyServices.organizations.batch({
71
+ ids: ids.slice(offset, offset + 100)
72
+ }));
73
+ return (await Promise.all(batches)).flatMap(batch => batch.items);
74
+ },
75
+ enabled: canUsePrivateApi && requests.isSuccess && ids.length > 0,
76
+ retry: false
77
+ });
78
+ if (requests.isPending) return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {});
79
+ if (requests.isError) return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
80
+ className: "gap-space-16 p-space-16",
81
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
82
+ accessibilityRole: "alert",
83
+ children: t((0, _core.isHttpRequestError)(requests.error) && requests.error.status === 403 ? 'organizationDirectory.review.forbidden' : 'organizationDirectory.requestError')
84
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
85
+ onPress: () => requests.refetch(),
86
+ children: t('organizationDirectory.retry')
87
+ })]
88
+ });
89
+ if (selected) return /*#__PURE__*/(0, _jsxRuntime.jsx)(ReviewDetail, {
90
+ claimId: selected,
91
+ onClose: () => setSelected(null)
92
+ }, selected);
93
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
94
+ className: "gap-space-16 p-space-16",
95
+ children: [claims.length === 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
96
+ children: t('organizationDirectory.review.empty')
97
+ }) : null, claims.map(claim => /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
98
+ title: organizations.data?.find(item => item.requestedAccountId === claim.accountId)?.organization.name ?? t('organizationDirectory.view'),
99
+ description: t('organizationDirectory.pending'),
100
+ onPress: () => setSelected(claim.id)
101
+ }, claim.id)), requests.hasNextPage ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
102
+ onPress: () => requests.fetchNextPage(),
103
+ disabled: requests.isFetchingNextPage,
104
+ children: t('organizationDirectory.loadMore')
105
+ }) : null]
106
+ });
107
+ }
108
+ function ReviewDetail({
109
+ claimId,
110
+ onClose
111
+ }) {
112
+ const {
113
+ t
114
+ } = (0, _useI18n.useI18n)();
115
+ const {
116
+ oxyServices,
117
+ user,
118
+ canUsePrivateApi
119
+ } = (0, _OxyContext.useOxy)();
120
+ const queryClient = (0, _reactQuery.useQueryClient)();
121
+ const [evidence, setEvidence] = (0, _react.useState)('');
122
+ const [authorizationRevoked, setAuthorizationRevoked] = (0, _react.useState)(false);
123
+ const detail = (0, _reactQuery.useQuery)({
124
+ queryKey: ['oxy', 'organizations', 'review-detail', user?.id, canUsePrivateApi, claimId],
125
+ queryFn: () => oxyServices.organizations.reviewClaimDetail(claimId),
126
+ enabled: canUsePrivateApi,
127
+ retry: false,
128
+ gcTime: 0
129
+ });
130
+ const review = (0, _reactQuery.useMutation)({
131
+ mutationFn: decision => {
132
+ if (!canUsePrivateApi || authorizationRevoked || !detail.isSuccess || !detail.data || detail.data.claimantUserId === user?.id) throw new Error('Independent staff review is required');
133
+ return oxyServices.organizations.reviewClaim(claimId, _contracts.organizationClaimReviewSchema.parse({
134
+ decision,
135
+ evidenceReference: evidence
136
+ }));
137
+ },
138
+ onError: error => {
139
+ if ((0, _core.isHttpRequestError)(error) && error.status === 403) setAuthorizationRevoked(true);
140
+ },
141
+ onSuccess: async () => {
142
+ await queryClient.invalidateQueries({
143
+ queryKey: ['oxy', 'organizations']
144
+ });
145
+ await queryClient.invalidateQueries({
146
+ queryKey: ['accounts']
147
+ });
148
+ onClose();
149
+ }
150
+ });
151
+ const conflict = (0, _core.isHttpRequestError)(review.error) && review.error.status === 409;
152
+ const forbidden = (0, _core.isHttpRequestError)(review.error) && review.error.status === 403;
153
+ const selfReview = detail.data?.claimantUserId === user?.id;
154
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
155
+ className: "gap-space-16 p-space-16",
156
+ children: [detail.isPending ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {}) : null, detail.isError ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
157
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
158
+ accessibilityRole: "alert",
159
+ children: t((0, _core.isHttpRequestError)(detail.error) && detail.error.status === 403 ? 'organizationDirectory.review.forbidden' : 'organizationDirectory.requestError')
160
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
161
+ onPress: () => detail.refetch(),
162
+ children: t('organizationDirectory.retry')
163
+ })]
164
+ }) : null, authorizationRevoked ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
165
+ accessibilityRole: "alert",
166
+ children: t('organizationDirectory.review.forbidden')
167
+ }) : null, detail.isSuccess && canUsePrivateApi && !authorizationRevoked ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
168
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
169
+ children: t('organizationDirectory.evidence')
170
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
171
+ selectable: true,
172
+ children: detail.data.evidenceReference
173
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
174
+ children: t('organizationDirectory.review.hint')
175
+ }), selfReview ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
176
+ children: t('organizationDirectory.review.independent')
177
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextField, {
178
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextFieldInput, {
179
+ label: t('organizationDirectory.review.evidence'),
180
+ value: evidence,
181
+ onChangeText: setEvidence,
182
+ maxLength: 1000
183
+ })
184
+ }), review.isError ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
185
+ accessibilityRole: "alert",
186
+ children: t(conflict ? 'organizationDirectory.review.conflict' : forbidden ? 'organizationDirectory.review.forbidden' : 'organizationDirectory.review.failed')
187
+ }) : null, ['approved', 'rejected'].map(decision => /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
188
+ disabled: !canUsePrivateApi || selfReview || detail.data.status !== 'pending' || !evidence.trim() || review.isPending || conflict || forbidden,
189
+ onPress: () => review.mutate(decision),
190
+ children: t(`organizationDirectory.review.${decision}`)
191
+ }, decision)), conflict ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
192
+ onPress: async () => {
193
+ await queryClient.invalidateQueries({
194
+ queryKey: ['oxy', 'organizations']
195
+ });
196
+ onClose();
197
+ },
198
+ children: t('organizationDirectory.retry')
199
+ }) : null]
200
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
201
+ appearance: "outline",
202
+ onPress: onClose,
203
+ disabled: review.isPending,
204
+ children: t('organizationDirectory.back')
205
+ })]
206
+ });
207
+ }
208
+ //# sourceMappingURL=OrganizationClaimReview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_reactQuery","_core","_contracts","_button","_settingsList","_textField","_typography","_OxyContext","_useI18n","_jsxRuntime","OrganizationClaimReview","t","useI18n","user","canUsePrivateApi","useOxy","open","setOpen","useState","jsxs","SettingsListGroup","children","jsx","SettingsListItem","title","disabled","onPress","value","kind","ReviewQueue","id","oxyServices","selected","setSelected","requests","useInfiniteQuery","queryKey","queryFn","pageParam","organizations","reviewClaims","status","limit","cursor","initialPageParam","undefined","getNextPageParam","page","nextCursor","enabled","retry","gcTime","claims","data","pages","flatMap","items","ids","Set","map","claim","accountId","sort","useQuery","batches","offset","length","push","batch","slice","Promise","all","isSuccess","isPending","ActivityIndicator","isError","View","className","Text","accessibilityRole","isHttpRequestError","error","Button","refetch","ReviewDetail","claimId","onClose","find","item","requestedAccountId","organization","name","description","hasNextPage","fetchNextPage","isFetchingNextPage","queryClient","useQueryClient","evidence","setEvidence","authorizationRevoked","setAuthorizationRevoked","detail","reviewClaimDetail","review","useMutation","mutationFn","decision","claimantUserId","Error","reviewClaim","organizationClaimReviewSchema","parse","evidenceReference","onError","onSuccess","invalidateQueries","conflict","forbidden","selfReview","Fragment","selectable","TextField","TextFieldInput","label","onChangeText","maxLength","trim","mutate","appearance"],"sourceRoot":"../../../../../src","sources":["ui/components/organizations/OrganizationClaimReview.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.OrganizationClaims = OrganizationClaims;
7
+ var _reactNative = require("react-native");
8
+ var _reactQuery = require("@tanstack/react-query");
9
+ var _button = require("@oxy.so/bloom/button");
10
+ var _settingsList = require("@oxy.so/bloom/settings-list");
11
+ var _typography = require("@oxy.so/bloom/typography");
12
+ var _OxyContext = require("../../context/OxyContext.js");
13
+ var _useI18n = require("../../hooks/useI18n.js");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ function OrganizationClaims() {
16
+ const {
17
+ oxyServices,
18
+ user,
19
+ canUsePrivateApi
20
+ } = (0, _OxyContext.useOxy)();
21
+ const {
22
+ t
23
+ } = (0, _useI18n.useI18n)();
24
+ const enabled = canUsePrivateApi && user?.kind === 'personal';
25
+ const requests = (0, _reactQuery.useInfiniteQuery)({
26
+ queryKey: ['oxy', 'organizations', 'claims', user?.id, canUsePrivateApi],
27
+ queryFn: ({
28
+ pageParam
29
+ }) => oxyServices.organizations.myClaims({
30
+ limit: 20,
31
+ ...(pageParam ? {
32
+ cursor: pageParam
33
+ } : {})
34
+ }),
35
+ initialPageParam: undefined,
36
+ getNextPageParam: page => page.nextCursor ?? undefined,
37
+ enabled,
38
+ retry: false,
39
+ gcTime: 0
40
+ });
41
+ const claims = requests.data?.pages.flatMap(page => page.items) ?? [];
42
+ const ids = [...new Set(claims.map(claim => claim.accountId))].sort();
43
+ const organizations = (0, _reactQuery.useQuery)({
44
+ queryKey: ['oxy', 'organizations', 'claims-employers', ids],
45
+ queryFn: async () => {
46
+ const batches = [];
47
+ for (let offset = 0; offset < ids.length; offset += 100) batches.push(oxyServices.organizations.batch({
48
+ ids: ids.slice(offset, offset + 100)
49
+ }));
50
+ return (await Promise.all(batches)).flatMap(batch => batch.items);
51
+ },
52
+ enabled: enabled && ids.length > 0,
53
+ retry: false
54
+ });
55
+ if (!enabled || !requests.isError && claims.length === 0) return null;
56
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_settingsList.SettingsListGroup, {
57
+ title: t('organizationDirectory.requests'),
58
+ children: [requests.isError ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
59
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
60
+ accessibilityRole: "alert",
61
+ children: t('organizationDirectory.requestError')
62
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
63
+ onPress: () => requests.refetch(),
64
+ children: t('organizationDirectory.retry')
65
+ })]
66
+ }) : null, !requests.isError && claims.map(claim => /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
67
+ title: organizations.data?.find(item => item.requestedAccountId === claim.accountId)?.organization.name ?? t('organizationDirectory.view'),
68
+ description: t(`organizationDirectory.${claim.status}`),
69
+ showChevron: false
70
+ }, claim.id)), !requests.isError && requests.hasNextPage ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
71
+ onPress: () => requests.fetchNextPage(),
72
+ disabled: requests.isFetchingNextPage,
73
+ children: t('organizationDirectory.loadMore')
74
+ }) : null]
75
+ });
76
+ }
77
+ //# sourceMappingURL=OrganizationClaims.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_reactQuery","_button","_settingsList","_typography","_OxyContext","_useI18n","_jsxRuntime","OrganizationClaims","oxyServices","user","canUsePrivateApi","useOxy","t","useI18n","enabled","kind","requests","useInfiniteQuery","queryKey","id","queryFn","pageParam","organizations","myClaims","limit","cursor","initialPageParam","undefined","getNextPageParam","page","nextCursor","retry","gcTime","claims","data","pages","flatMap","items","ids","Set","map","claim","accountId","sort","useQuery","batches","offset","length","push","batch","slice","Promise","all","isError","jsxs","SettingsListGroup","title","children","View","jsx","Text","accessibilityRole","Button","onPress","refetch","SettingsListItem","find","item","requestedAccountId","organization","name","description","status","showChevron","hasNextPage","fetchNextPage","disabled","isFetchingNextPage"],"sourceRoot":"../../../../../src","sources":["ui/components/organizations/OrganizationClaims.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.OrganizationDirectorySearch = OrganizationDirectorySearch;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _reactQuery = require("@tanstack/react-query");
10
+ var _contracts = require("@oxy.so/contracts");
11
+ var _avatar = require("@oxy.so/bloom/avatar");
12
+ var _button = require("@oxy.so/bloom/button");
13
+ var _settingsList = require("@oxy.so/bloom/settings-list");
14
+ var _textField = require("@oxy.so/bloom/text-field");
15
+ var _typography = require("@oxy.so/bloom/typography");
16
+ var _OxyContext = require("../../context/OxyContext.js");
17
+ var _useI18n = require("../../hooks/useI18n.js");
18
+ var _OrganizationTypePicker = require("./OrganizationTypePicker.js");
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ /** Finding an existing identity never grants ownership or silently creates an account. */
21
+ function OrganizationDirectorySearch({
22
+ onCreateAccount
23
+ }) {
24
+ const {
25
+ oxyServices,
26
+ user,
27
+ canUsePrivateApi
28
+ } = (0, _OxyContext.useOxy)();
29
+ const {
30
+ t
31
+ } = (0, _useI18n.useI18n)();
32
+ const queryClient = (0, _reactQuery.useQueryClient)();
33
+ const [search, setSearch] = (0, _react.useState)('');
34
+ const [query, setQuery] = (0, _react.useState)('');
35
+ const [selected, setSelected] = (0, _react.useState)(null);
36
+ const [adding, setAdding] = (0, _react.useState)(false);
37
+ const [type, setType] = (0, _react.useState)('business');
38
+ const [evidence, setEvidence] = (0, _react.useState)('');
39
+ const [validationError, setValidationError] = (0, _react.useState)(false);
40
+ const personalReady = canUsePrivateApi && user?.kind === 'personal';
41
+ (0, _react.useEffect)(() => {
42
+ const timer = setTimeout(() => setQuery(search.trim()), 300);
43
+ return () => clearTimeout(timer);
44
+ }, [search]);
45
+ const results = (0, _reactQuery.useInfiniteQuery)({
46
+ queryKey: ['oxy', 'organizations', 'search', query],
47
+ queryFn: ({
48
+ pageParam
49
+ }) => oxyServices.organizations.search({
50
+ query,
51
+ limit: 20,
52
+ ...(pageParam ? {
53
+ cursor: pageParam
54
+ } : {})
55
+ }),
56
+ initialPageParam: undefined,
57
+ getNextPageParam: page => page.nextCursor ?? undefined,
58
+ enabled: query.length > 0,
59
+ retry: false
60
+ });
61
+ const claim = (0, _reactQuery.useMutation)({
62
+ mutationFn: () => {
63
+ if (!personalReady || !selected || selected.status !== 'active') throw new Error('An active organization and personal session are required');
64
+ return oxyServices.organizations.claim(selected.accountId, _contracts.organizationClaimInputSchema.parse({
65
+ evidenceReference: evidence
66
+ }));
67
+ },
68
+ onSuccess: () => queryClient.invalidateQueries({
69
+ queryKey: ['oxy', 'organizations']
70
+ })
71
+ });
72
+ const create = (0, _reactQuery.useMutation)({
73
+ mutationFn: () => {
74
+ if (!personalReady) throw new Error('A personal session is required');
75
+ return oxyServices.organizations.create(_contracts.createOrganizationSchema.parse({
76
+ name: search.trim(),
77
+ organizationType: type
78
+ }));
79
+ },
80
+ onSuccess: organization => {
81
+ setSelected(organization);
82
+ setAdding(false);
83
+ void queryClient.invalidateQueries({
84
+ queryKey: ['oxy', 'organizations']
85
+ });
86
+ }
87
+ });
88
+ const reset = () => {
89
+ setSelected(null);
90
+ setAdding(false);
91
+ setEvidence('');
92
+ claim.reset();
93
+ create.reset();
94
+ setValidationError(false);
95
+ };
96
+ if (selected) return /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListGroup, {
97
+ title: selected.name,
98
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
99
+ className: "gap-space-16 p-space-16",
100
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
101
+ children: t(`organizationDirectory.${selected.claimStatus}`)
102
+ }), selected.status === 'inactive' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
103
+ children: t('organizationDirectory.inactive')
104
+ }) : null, selected.claimStatus === 'unclaimed' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
105
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
106
+ children: t('organizationDirectory.claimHint')
107
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextField, {
108
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextFieldInput, {
109
+ label: t('organizationDirectory.evidence'),
110
+ value: evidence,
111
+ onChangeText: setEvidence,
112
+ maxLength: 1000
113
+ })
114
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
115
+ children: t('organizationDirectory.evidenceHint')
116
+ }), claim.isSuccess ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
117
+ accessibilityRole: "alert",
118
+ children: t('organizationDirectory.claimSent')
119
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
120
+ onPress: () => claim.mutate(),
121
+ disabled: !personalReady || selected.status !== 'active' || !evidence.trim() || claim.isPending,
122
+ loading: claim.isPending,
123
+ children: t('organizationDirectory.claim')
124
+ }), claim.isError ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
125
+ accessibilityRole: "alert",
126
+ children: t('organizationDirectory.claimFailed')
127
+ }) : null]
128
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
129
+ children: t('organizationDirectory.claimedHint')
130
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
131
+ appearance: "outline",
132
+ onPress: reset,
133
+ disabled: claim.isPending,
134
+ children: t('organizationDirectory.back')
135
+ })]
136
+ })
137
+ });
138
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
139
+ className: "gap-space-16",
140
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextField, {
141
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextFieldInput, {
142
+ label: t('organizationDirectory.search'),
143
+ value: search,
144
+ onChangeText: value => {
145
+ setSearch(value);
146
+ setValidationError(false);
147
+ },
148
+ maxLength: 200
149
+ })
150
+ }), query && results.isPending ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {}) : null, results.isError ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
151
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
152
+ accessibilityRole: "alert",
153
+ children: t('organizationDirectory.failed')
154
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
155
+ onPress: () => results.refetch(),
156
+ children: t('organizationDirectory.retry')
157
+ })]
158
+ }) : null, results.data ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_settingsList.SettingsListGroup, {
159
+ title: t('organizationDirectory.title'),
160
+ children: [results.data.pages.flatMap(page => page.items).map(organization => /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
161
+ title: organization.name,
162
+ description: [organization.websiteUrl, organization.countryCode, t(`organizationDirectory.${organization.claimStatus}`)].filter(Boolean).join(' · '),
163
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_avatar.Avatar, {
164
+ source: organization.avatar,
165
+ name: organization.name,
166
+ size: 40
167
+ }),
168
+ onPress: () => setSelected(organization)
169
+ }, organization.accountId)), results.data.pages[0].items.length === 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
170
+ children: t('organizationDirectory.empty')
171
+ }) : null, results.hasNextPage ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
172
+ onPress: () => results.fetchNextPage(),
173
+ disabled: results.isFetchingNextPage,
174
+ children: t('organizationDirectory.loadMore')
175
+ }) : null]
176
+ }) : null, results.isSuccess && query === search.trim() ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
177
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
178
+ children: t('organizationDirectory.newAccountHint')
179
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
180
+ onPress: () => onCreateAccount(search.trim(), type),
181
+ children: t('organizationDirectory.newAccount')
182
+ }), personalReady && !adding ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
183
+ appearance: "outline",
184
+ onPress: () => setAdding(true),
185
+ children: t('organizationDirectory.addDirectory')
186
+ }) : null]
187
+ }) : null, adding ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
188
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
189
+ children: t('organizationDirectory.directoryHint')
190
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_OrganizationTypePicker.OrganizationTypePicker, {
191
+ value: type,
192
+ onChange: setType,
193
+ disabled: create.isPending
194
+ }), validationError ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
195
+ accessibilityRole: "alert",
196
+ children: t('organizationDirectory.invalid')
197
+ }) : null, create.isError ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
198
+ accessibilityRole: "alert",
199
+ children: t('organizationDirectory.saveFailed')
200
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
201
+ disabled: !personalReady || create.isPending || !results.isSuccess || query !== search.trim(),
202
+ loading: create.isPending,
203
+ onPress: () => {
204
+ if (!_contracts.createOrganizationSchema.safeParse({
205
+ name: search.trim(),
206
+ organizationType: type
207
+ }).success) {
208
+ setValidationError(true);
209
+ return;
210
+ }
211
+ create.mutate();
212
+ },
213
+ children: t('organizationDirectory.addDirectory')
214
+ })]
215
+ }) : null]
216
+ });
217
+ }
218
+ //# sourceMappingURL=OrganizationDirectorySearch.js.map