@oxyhq/services 5.16.1 → 5.16.3
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.
- package/lib/commonjs/core/mixins/OxyServices.user.js +14 -13
- package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -1
- package/lib/commonjs/crypto/keyManager.js +164 -3
- package/lib/commonjs/crypto/keyManager.js.map +1 -1
- package/lib/commonjs/crypto/signatureService.js +26 -0
- package/lib/commonjs/crypto/signatureService.js.map +1 -1
- package/lib/commonjs/ui/components/GroupedSection.js +1 -1
- package/lib/commonjs/ui/components/GroupedSection.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +71 -24
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js +1 -4
- package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +175 -4
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +148 -49
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useSessionManagement.js +22 -2
- package/lib/commonjs/ui/context/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/index.js +28 -0
- package/lib/commonjs/ui/hooks/mutations/index.js.map +1 -0
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +314 -0
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -0
- package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +193 -0
- package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -0
- package/lib/commonjs/ui/hooks/queries/index.js +39 -0
- package/lib/commonjs/ui/hooks/queries/index.js.map +1 -0
- package/lib/commonjs/ui/hooks/queries/queryKeys.js +85 -0
- package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -0
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +145 -0
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -0
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +138 -0
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -0
- package/lib/commonjs/ui/hooks/queryClient.js +117 -0
- package/lib/commonjs/ui/hooks/queryClient.js.map +1 -0
- package/lib/commonjs/ui/hooks/useIdentityMutations.js +111 -0
- package/lib/commonjs/ui/hooks/useIdentityMutations.js.map +1 -0
- package/lib/commonjs/ui/hooks/useProfileEditing.js +42 -58
- package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/commonjs/ui/hooks/useQueryClient.js +20 -0
- package/lib/commonjs/ui/hooks/useQueryClient.js.map +1 -0
- package/lib/commonjs/ui/hooks/useSessionManagement.js +22 -2
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js +43 -42
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +63 -58
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +6 -6
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/commonjs/ui/stores/accountStore.js +57 -42
- package/lib/commonjs/ui/stores/accountStore.js.map +1 -1
- package/lib/commonjs/ui/stores/authStore.js +4 -25
- package/lib/commonjs/ui/stores/authStore.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.user.js +14 -13
- package/lib/module/core/mixins/OxyServices.user.js.map +1 -1
- package/lib/module/crypto/keyManager.js +164 -3
- package/lib/module/crypto/keyManager.js.map +1 -1
- package/lib/module/crypto/signatureService.js +26 -0
- package/lib/module/crypto/signatureService.js.map +1 -1
- package/lib/module/ui/components/GroupedSection.js +1 -1
- package/lib/module/ui/components/GroupedSection.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +72 -25
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/profile/EditDisplayNameModal.js +1 -4
- package/lib/module/ui/components/profile/EditDisplayNameModal.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +174 -4
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +148 -49
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/context/hooks/useSessionManagement.js +22 -2
- package/lib/module/ui/context/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/hooks/mutations/index.js +6 -0
- package/lib/module/ui/hooks/mutations/index.js.map +1 -0
- package/lib/module/ui/hooks/mutations/useAccountMutations.js +308 -0
- package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -0
- package/lib/module/ui/hooks/mutations/useServicesMutations.js +185 -0
- package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -0
- package/lib/module/ui/hooks/queries/index.js +7 -0
- package/lib/module/ui/hooks/queries/index.js.map +1 -0
- package/lib/module/ui/hooks/queries/queryKeys.js +78 -0
- package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -0
- package/lib/module/ui/hooks/queries/useAccountQueries.js +136 -0
- package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -0
- package/lib/module/ui/hooks/queries/useServicesQueries.js +130 -0
- package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -0
- package/lib/module/ui/hooks/queryClient.js +110 -0
- package/lib/module/ui/hooks/queryClient.js.map +1 -0
- package/lib/module/ui/hooks/useIdentityMutations.js +105 -0
- package/lib/module/ui/hooks/useIdentityMutations.js.map +1 -0
- package/lib/module/ui/hooks/useProfileEditing.js +43 -59
- package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/module/ui/hooks/useQueryClient.js +15 -0
- package/lib/module/ui/hooks/useQueryClient.js.map +1 -0
- package/lib/module/ui/hooks/useSessionManagement.js +22 -2
- package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/screens/AccountOverviewScreen.js +43 -42
- package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +63 -58
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/WelcomeNewUserScreen.js +6 -6
- package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/module/ui/stores/accountStore.js +57 -42
- package/lib/module/ui/stores/accountStore.js.map +1 -1
- package/lib/module/ui/stores/authStore.js +4 -25
- package/lib/module/ui/stores/authStore.js.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.user.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
- package/lib/typescript/core/mixins/index.d.ts +0 -1
- package/lib/typescript/core/mixins/index.d.ts.map +1 -1
- package/lib/typescript/crypto/keyManager.d.ts +19 -2
- package/lib/typescript/crypto/keyManager.d.ts.map +1 -1
- package/lib/typescript/crypto/signatureService.d.ts +5 -0
- package/lib/typescript/crypto/signatureService.d.ts.map +1 -1
- package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/ui/components/profile/EditDisplayNameModal.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts +4 -0
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts +3 -1
- package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/mutations/index.d.ts +3 -0
- package/lib/typescript/ui/hooks/mutations/index.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +25 -0
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts +23 -0
- package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/queries/index.d.ts +4 -0
- package/lib/typescript/ui/hooks/queries/index.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/queries/queryKeys.d.ts +56 -0
- package/lib/typescript/ui/hooks/queries/queryKeys.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +41 -0
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts +34 -0
- package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/queryClient.d.ts +19 -0
- package/lib/typescript/ui/hooks/queryClient.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useIdentityMutations.d.ts +29 -0
- package/lib/typescript/ui/hooks/useIdentityMutations.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useProfileEditing.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useQueryClient.d.ts +7 -0
- package/lib/typescript/ui/hooks/useQueryClient.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts +3 -1
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
- package/lib/typescript/ui/stores/accountStore.d.ts.map +1 -1
- package/lib/typescript/ui/stores/authStore.d.ts +0 -4
- package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
- package/package.json +5 -4
- package/src/core/mixins/OxyServices.user.ts +17 -10
- package/src/crypto/keyManager.ts +177 -2
- package/src/crypto/signatureService.ts +30 -0
- package/src/ui/components/GroupedSection.tsx +1 -1
- package/src/ui/components/OxyProvider.tsx +91 -37
- package/src/ui/components/profile/EditDisplayNameModal.tsx +1 -3
- package/src/ui/context/OxyContext.tsx +185 -2
- package/src/ui/context/hooks/useAuthOperations.ts +171 -58
- package/src/ui/context/hooks/useSessionManagement.ts +24 -1
- package/src/ui/hooks/mutations/index.ts +4 -0
- package/src/ui/hooks/mutations/useAccountMutations.ts +277 -0
- package/src/ui/hooks/mutations/useServicesMutations.ts +164 -0
- package/src/ui/hooks/queries/index.ts +5 -0
- package/src/ui/hooks/queries/queryKeys.ts +73 -0
- package/src/ui/hooks/queries/useAccountQueries.ts +126 -0
- package/src/ui/hooks/queries/useServicesQueries.ts +121 -0
- package/src/ui/hooks/queryClient.ts +112 -0
- package/src/ui/hooks/useIdentityMutations.ts +115 -0
- package/src/ui/hooks/useProfileEditing.ts +46 -60
- package/src/ui/hooks/useQueryClient.ts +17 -0
- package/src/ui/hooks/useSessionManagement.ts +24 -1
- package/src/ui/screens/AccountOverviewScreen.tsx +38 -46
- package/src/ui/screens/AccountSettingsScreen.tsx +54 -54
- package/src/ui/screens/WelcomeNewUserScreen.tsx +13 -12
- package/src/ui/stores/accountStore.ts +54 -43
- package/src/ui/stores/authStore.ts +3 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_vectorIcons","_useThemeStyles","_useColorScheme","_useI18n","_fonts","_useProfileEditing","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","EditDisplayNameModal","visible","onClose","initialDisplayName","initialLastName","theme","onSave","useI18n","colorScheme","useColorScheme","themeStyles","useThemeStyles","colors","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_vectorIcons","_useThemeStyles","_useColorScheme","_useI18n","_fonts","_useProfileEditing","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","EditDisplayNameModal","visible","onClose","initialDisplayName","initialLastName","theme","onSave","useI18n","colorScheme","useColorScheme","themeStyles","useThemeStyles","colors","saveProfile","isSaving","useProfileEditing","displayName","setDisplayName","useState","lastName","setLastName","useEffect","handleSave","updates","success","jsx","Modal","animationType","transparent","onRequestClose","children","View","style","styles","modalOverlay","jsxs","modalContent","backgroundColor","background","modalHeader","TouchableOpacity","onPress","closeButton","Ionicons","name","size","color","text","Text","modalTitle","disabled","saveButton","opacity","saveButtonText","tint","modalBody","inputGroup","label","TextInput","input","card","borderColor","border","value","onChangeText","placeholder","placeholderTextColor","secondaryText","autoFocus","selectionColor","exports","StyleSheet","create","flex","justifyContent","borderTopLeftRadius","borderTopRightRadius","paddingTop","Platform","OS","maxHeight","flexDirection","alignItems","paddingHorizontal","paddingBottom","borderBottomWidth","hairlineWidth","borderBottomColor","width","height","fontSize","fontWeight","fontFamily","fontFamilies","phuduSemiBold","textAlign","paddingVertical","padding","gap","borderWidth","borderRadius","minHeight"],"sourceRoot":"../../../../../src","sources":["ui/components/profile/EditDisplayNameModal.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,7 +18,12 @@ var _useDeviceManagement = require("../hooks/useDeviceManagement");
|
|
|
18
18
|
var _storageHelpers = require("../utils/storageHelpers");
|
|
19
19
|
var _errorHandlers = require("../utils/errorHandlers");
|
|
20
20
|
var _bottomSheetManager = require("../navigation/bottomSheetManager");
|
|
21
|
+
var _reactQuery = require("@tanstack/react-query");
|
|
22
|
+
var _queryClient = require("../hooks/queryClient");
|
|
23
|
+
var _accountStore = require("../stores/accountStore");
|
|
24
|
+
var _keyManager = require("../../crypto/keyManager");
|
|
21
25
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
26
|
+
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); }
|
|
22
27
|
const OxyContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
23
28
|
let cachedUseFollowHook = null;
|
|
24
29
|
const loadUseFollowHook = () => {
|
|
@@ -101,11 +106,61 @@ const OxyProvider = ({
|
|
|
101
106
|
}, []);
|
|
102
107
|
const storageKeys = (0, _react.useMemo)(() => (0, _storageHelpers.getStorageKeys)(storageKeyPrefix), [storageKeyPrefix]);
|
|
103
108
|
const {
|
|
104
|
-
storage
|
|
109
|
+
storage,
|
|
110
|
+
isReady: isStorageReady
|
|
105
111
|
} = (0, _useStorage.useStorage)({
|
|
106
112
|
onError,
|
|
107
113
|
logger
|
|
108
114
|
});
|
|
115
|
+
|
|
116
|
+
// Identity integrity check and auto-restore on startup
|
|
117
|
+
(0, _react.useEffect)(() => {
|
|
118
|
+
if (!storage || !isStorageReady) return;
|
|
119
|
+
const checkAndRestoreIdentity = async () => {
|
|
120
|
+
try {
|
|
121
|
+
const {
|
|
122
|
+
KeyManager
|
|
123
|
+
} = await Promise.resolve().then(() => _interopRequireWildcard(require('../../crypto/index.js')));
|
|
124
|
+
// Check if identity exists and verify integrity
|
|
125
|
+
const hasIdentity = await KeyManager.hasIdentity();
|
|
126
|
+
if (hasIdentity) {
|
|
127
|
+
const isValid = await KeyManager.verifyIdentityIntegrity();
|
|
128
|
+
if (!isValid) {
|
|
129
|
+
// Try to restore from backup
|
|
130
|
+
const restored = await KeyManager.restoreIdentityFromBackup();
|
|
131
|
+
if (restored) {
|
|
132
|
+
if (__DEV__) {
|
|
133
|
+
logger('Identity restored from backup successfully');
|
|
134
|
+
}
|
|
135
|
+
} else {
|
|
136
|
+
if (__DEV__) {
|
|
137
|
+
logger('Identity integrity check failed - user may need to restore from recovery phrase');
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
} else {
|
|
141
|
+
// Identity is valid - ensure backup is up to date
|
|
142
|
+
await KeyManager.backupIdentity();
|
|
143
|
+
}
|
|
144
|
+
} else {
|
|
145
|
+
// No identity - try to restore from backup
|
|
146
|
+
const restored = await KeyManager.restoreIdentityFromBackup();
|
|
147
|
+
if (restored && __DEV__) {
|
|
148
|
+
logger('Identity restored from backup on startup');
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
} catch (error) {
|
|
152
|
+
if (__DEV__) {
|
|
153
|
+
logger('Error during identity integrity check', error);
|
|
154
|
+
}
|
|
155
|
+
// Don't block app startup - user can recover with recovery phrase
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
checkAndRestoreIdentity();
|
|
159
|
+
}, [storage, isStorageReady, logger]);
|
|
160
|
+
|
|
161
|
+
// Offline queuing is now handled by TanStack Query mutations
|
|
162
|
+
// No need for custom offline queue
|
|
163
|
+
|
|
109
164
|
const {
|
|
110
165
|
currentLanguage,
|
|
111
166
|
metadata: currentLanguageMetadata,
|
|
@@ -119,6 +174,7 @@ const OxyProvider = ({
|
|
|
119
174
|
onError,
|
|
120
175
|
logger
|
|
121
176
|
});
|
|
177
|
+
const queryClient = (0, _reactQuery.useQueryClient)();
|
|
122
178
|
const {
|
|
123
179
|
sessions,
|
|
124
180
|
activeSessionId,
|
|
@@ -142,7 +198,8 @@ const OxyProvider = ({
|
|
|
142
198
|
error: message
|
|
143
199
|
}),
|
|
144
200
|
logger,
|
|
145
|
-
setTokenReady
|
|
201
|
+
setTokenReady,
|
|
202
|
+
queryClient
|
|
146
203
|
});
|
|
147
204
|
const {
|
|
148
205
|
createIdentity,
|
|
@@ -153,7 +210,7 @@ const OxyProvider = ({
|
|
|
153
210
|
hasIdentity,
|
|
154
211
|
getPublicKey,
|
|
155
212
|
isIdentitySynced,
|
|
156
|
-
syncIdentity
|
|
213
|
+
syncIdentity: syncIdentityBase
|
|
157
214
|
} = (0, _useAuthOperations.useAuthOperations)({
|
|
158
215
|
oxyServices,
|
|
159
216
|
storage,
|
|
@@ -175,6 +232,116 @@ const OxyProvider = ({
|
|
|
175
232
|
setSyncing,
|
|
176
233
|
logger
|
|
177
234
|
});
|
|
235
|
+
|
|
236
|
+
// syncIdentity - TanStack Query handles offline mutations automatically
|
|
237
|
+
const syncIdentity = (0, _react.useCallback)(async () => {
|
|
238
|
+
return await syncIdentityBase();
|
|
239
|
+
}, [syncIdentityBase]);
|
|
240
|
+
|
|
241
|
+
// Clear all account data when identity is lost (for accounts app)
|
|
242
|
+
// In accounts app, identity = account, so losing identity means losing everything
|
|
243
|
+
const clearAllAccountData = (0, _react.useCallback)(async () => {
|
|
244
|
+
// Clear TanStack Query cache (in-memory)
|
|
245
|
+
queryClient.clear();
|
|
246
|
+
|
|
247
|
+
// Clear persisted query cache
|
|
248
|
+
if (storage) {
|
|
249
|
+
try {
|
|
250
|
+
await (0, _queryClient.clearQueryCache)(storage);
|
|
251
|
+
} catch (error) {
|
|
252
|
+
if (logger) {
|
|
253
|
+
logger('Failed to clear persisted query cache', error);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// Clear session state (sessions, activeSessionId, storage)
|
|
259
|
+
await clearSessionState();
|
|
260
|
+
|
|
261
|
+
// Clear identity sync state from storage
|
|
262
|
+
if (storage) {
|
|
263
|
+
try {
|
|
264
|
+
await storage.removeItem('oxy_identity_synced');
|
|
265
|
+
} catch (error) {
|
|
266
|
+
if (logger) {
|
|
267
|
+
logger('Failed to clear identity sync state', error);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// Reset auth store identity sync state
|
|
273
|
+
_authStore.useAuthStore.getState().setIdentitySynced(false);
|
|
274
|
+
_authStore.useAuthStore.getState().setSyncing(false);
|
|
275
|
+
|
|
276
|
+
// Reset account store
|
|
277
|
+
_accountStore.useAccountStore.getState().reset();
|
|
278
|
+
|
|
279
|
+
// Clear HTTP service cache
|
|
280
|
+
oxyServices.clearCache();
|
|
281
|
+
}, [queryClient, storage, clearSessionState, logger, oxyServices]);
|
|
282
|
+
|
|
283
|
+
// Delete identity and clear all account data
|
|
284
|
+
// In accounts app, deleting identity means losing the account completely
|
|
285
|
+
const deleteIdentityAndClearAccount = (0, _react.useCallback)(async (skipBackup = false, force = false, userConfirmed = false) => {
|
|
286
|
+
// First, clear all account data
|
|
287
|
+
await clearAllAccountData();
|
|
288
|
+
|
|
289
|
+
// Then delete the identity keys
|
|
290
|
+
await _keyManager.KeyManager.deleteIdentity(skipBackup, force, userConfirmed);
|
|
291
|
+
}, [clearAllAccountData]);
|
|
292
|
+
|
|
293
|
+
// Network reconnect sync - TanStack Query automatically retries mutations on reconnect
|
|
294
|
+
// We only need to sync identity if it's not synced
|
|
295
|
+
(0, _react.useEffect)(() => {
|
|
296
|
+
if (!storage) return;
|
|
297
|
+
let wasOffline = false;
|
|
298
|
+
let checkInterval = null;
|
|
299
|
+
const checkNetworkAndSync = async () => {
|
|
300
|
+
try {
|
|
301
|
+
// Try a lightweight health check to see if we're online
|
|
302
|
+
await oxyServices.healthCheck().catch(() => {
|
|
303
|
+
wasOffline = true;
|
|
304
|
+
return;
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
// If we were offline and now we're online, sync identity if needed
|
|
308
|
+
if (wasOffline) {
|
|
309
|
+
if (__DEV__ && logger) {
|
|
310
|
+
logger('Network reconnected, checking identity sync...');
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
// Sync identity first (if not synced)
|
|
314
|
+
try {
|
|
315
|
+
const isSynced = await storage.getItem('oxy_identity_synced');
|
|
316
|
+
if (isSynced === 'false') {
|
|
317
|
+
await syncIdentity();
|
|
318
|
+
}
|
|
319
|
+
} catch (syncError) {
|
|
320
|
+
if (__DEV__ && logger) {
|
|
321
|
+
logger('Error syncing identity on reconnect', syncError);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
// TanStack Query will automatically retry pending mutations
|
|
326
|
+
wasOffline = false;
|
|
327
|
+
}
|
|
328
|
+
} catch (error) {
|
|
329
|
+
// Network check failed - we're offline
|
|
330
|
+
wasOffline = true;
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
// Check immediately
|
|
335
|
+
checkNetworkAndSync();
|
|
336
|
+
|
|
337
|
+
// Check periodically (every 10 seconds when app is active)
|
|
338
|
+
checkInterval = setInterval(checkNetworkAndSync, 10000);
|
|
339
|
+
return () => {
|
|
340
|
+
if (checkInterval) {
|
|
341
|
+
clearInterval(checkInterval);
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
}, [oxyServices, storage, syncIdentity, logger]);
|
|
178
345
|
const {
|
|
179
346
|
getDeviceSessions,
|
|
180
347
|
logoutAllDeviceSessions,
|
|
@@ -291,6 +458,7 @@ const OxyProvider = ({
|
|
|
291
458
|
isAuthenticated,
|
|
292
459
|
isLoading,
|
|
293
460
|
isTokenReady: tokenReady,
|
|
461
|
+
isStorageReady,
|
|
294
462
|
error,
|
|
295
463
|
currentLanguage,
|
|
296
464
|
currentLanguageMetadata,
|
|
@@ -303,6 +471,7 @@ const OxyProvider = ({
|
|
|
303
471
|
getPublicKey,
|
|
304
472
|
isIdentitySynced,
|
|
305
473
|
syncIdentity,
|
|
474
|
+
deleteIdentityAndClearAccount,
|
|
306
475
|
identitySyncState: {
|
|
307
476
|
isSynced: isIdentitySyncedStore ?? true,
|
|
308
477
|
isSyncing: isSyncing ?? false
|
|
@@ -316,10 +485,12 @@ const OxyProvider = ({
|
|
|
316
485
|
getDeviceSessions,
|
|
317
486
|
logoutAllDeviceSessions,
|
|
318
487
|
updateDeviceName,
|
|
488
|
+
clearSessionState,
|
|
489
|
+
clearAllAccountData,
|
|
319
490
|
oxyServices,
|
|
320
491
|
useFollow: useFollowHook,
|
|
321
492
|
showBottomSheet: showBottomSheetForContext
|
|
322
|
-
}), [activeSessionId, createIdentity, importIdentity, signIn, hasIdentity, getPublicKey, isIdentitySynced, syncIdentity, isIdentitySyncedStore, isSyncing, currentLanguage, currentLanguageMetadata, currentLanguageName, currentNativeLanguageName, error, getDeviceSessions, isAuthenticated, isLoading, logout, logoutAll, logoutAllDeviceSessions, oxyServices, refreshSessionsWithUser, sessions, setLanguage, switchSessionForContext, tokenReady, updateDeviceName, useFollowHook, user, showBottomSheetForContext]);
|
|
493
|
+
}), [activeSessionId, createIdentity, importIdentity, signIn, hasIdentity, getPublicKey, isIdentitySynced, syncIdentity, deleteIdentityAndClearAccount, isIdentitySyncedStore, isSyncing, currentLanguage, currentLanguageMetadata, currentLanguageName, currentNativeLanguageName, error, getDeviceSessions, isAuthenticated, isLoading, logout, logoutAll, logoutAllDeviceSessions, oxyServices, refreshSessionsWithUser, sessions, setLanguage, switchSessionForContext, tokenReady, isStorageReady, updateDeviceName, clearAllAccountData, useFollowHook, user, showBottomSheetForContext]);
|
|
323
494
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(OxyContext.Provider, {
|
|
324
495
|
value: contextValue,
|
|
325
496
|
children: children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_core","_sonner","_authStore","_shallow","_useSessionSocket","_useStorage","_useLanguageManagement","_useSessionManagement","_useAuthOperations","_useDeviceManagement","_storageHelpers","_errorHandlers","_bottomSheetManager","_jsxRuntime","OxyContext","createContext","cachedUseFollowHook","loadUseFollowHook","useFollow","error","__DEV__","console","warn","fallback","Error","OxyProvider","children","oxyServices","providedOxyServices","baseURL","storageKeyPrefix","onAuthStateChange","onError","oxyServicesRef","useRef","current","OxyServices","user","isAuthenticated","isLoading","loginSuccess","loginFailure","logoutStore","isIdentitySyncedStore","isSyncing","setIdentitySynced","setSyncing","useAuthStore","useShallow","state","logout","isIdentitySynced","tokenReady","setTokenReady","useState","initializedRef","setAuthState","setState","logger","useCallback","message","err","storageKeys","useMemo","getStorageKeys","storage","useStorage","currentLanguage","metadata","currentLanguageMetadata","languageName","currentLanguageName","nativeLanguageName","currentNativeLanguageName","setLanguage","applyLanguagePreference","useLanguageManagement","languageKey","language","sessions","activeSessionId","setActiveSessionId","updateSessions","switchSession","refreshSessions","clearSessionState","saveActiveSessionId","trackRemovedSession","useSessionManagement","setAuthError","createIdentity","importIdentity","signIn","logoutAll","hasIdentity","getPublicKey","syncIdentity","useAuthOperations","getDeviceSessions","logoutAllDeviceSessions","updateDeviceName","useDeviceManagement","useFollowHook","restoreSessionsFromStorage","storedSessionIdsJson","getItem","sessionIds","storedSessionIds","JSON","parse","storedActiveSessionId","validSessions","length","sessionId","validation","validateSession","useHeaderValidation","valid","now","Date","push","deviceId","expiresAt","getTime","toISOString","lastActive","userId","id","toString","isCurrent","validationError","merge","switchError","isInvalidSessionError","removeItem","filter","session","useEffect","activeSession","find","undefined","currentDeviceId","refreshSessionsWithUser","handleSessionRemoved","handleRemoteSignOut","toast","info","catch","remoteError","useSessionSocket","getBaseURL","onRemoteSignOut","onSessionRemoved","switchSessionForContext","showBottomSheetForContext","screenOrConfig","globalShowBottomSheet","contextValue","isTokenReady","identitySyncState","isSynced","removeSession","showBottomSheet","jsx","Provider","value","exports","OxyContextProvider","useOxy","context","useContext","_default","default"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContext.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_core","_sonner","_authStore","_shallow","_useSessionSocket","_useStorage","_useLanguageManagement","_useSessionManagement","_useAuthOperations","_useDeviceManagement","_storageHelpers","_errorHandlers","_bottomSheetManager","_reactQuery","_queryClient","_accountStore","_keyManager","_jsxRuntime","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OxyContext","createContext","cachedUseFollowHook","loadUseFollowHook","useFollow","error","__DEV__","console","warn","fallback","Error","OxyProvider","children","oxyServices","providedOxyServices","baseURL","storageKeyPrefix","onAuthStateChange","onError","oxyServicesRef","useRef","current","OxyServices","user","isAuthenticated","isLoading","loginSuccess","loginFailure","logoutStore","isIdentitySyncedStore","isSyncing","setIdentitySynced","setSyncing","useAuthStore","useShallow","state","logout","isIdentitySynced","tokenReady","setTokenReady","useState","initializedRef","setAuthState","setState","logger","useCallback","message","err","storageKeys","useMemo","getStorageKeys","storage","isReady","isStorageReady","useStorage","useEffect","checkAndRestoreIdentity","KeyManager","Promise","resolve","then","hasIdentity","isValid","verifyIdentityIntegrity","restored","restoreIdentityFromBackup","backupIdentity","currentLanguage","metadata","currentLanguageMetadata","languageName","currentLanguageName","nativeLanguageName","currentNativeLanguageName","setLanguage","applyLanguagePreference","useLanguageManagement","languageKey","language","queryClient","useQueryClient","sessions","activeSessionId","setActiveSessionId","updateSessions","switchSession","refreshSessions","clearSessionState","saveActiveSessionId","trackRemovedSession","useSessionManagement","setAuthError","createIdentity","importIdentity","signIn","logoutAll","getPublicKey","syncIdentity","syncIdentityBase","useAuthOperations","clearAllAccountData","clear","clearQueryCache","removeItem","getState","useAccountStore","reset","clearCache","deleteIdentityAndClearAccount","skipBackup","force","userConfirmed","deleteIdentity","wasOffline","checkInterval","checkNetworkAndSync","healthCheck","catch","isSynced","getItem","syncError","setInterval","clearInterval","getDeviceSessions","logoutAllDeviceSessions","updateDeviceName","useDeviceManagement","useFollowHook","restoreSessionsFromStorage","storedSessionIdsJson","sessionIds","storedSessionIds","JSON","parse","storedActiveSessionId","validSessions","length","sessionId","validation","validateSession","useHeaderValidation","valid","now","Date","push","deviceId","expiresAt","getTime","toISOString","lastActive","userId","id","toString","isCurrent","validationError","merge","switchError","isInvalidSessionError","filter","session","activeSession","find","undefined","currentDeviceId","refreshSessionsWithUser","handleSessionRemoved","handleRemoteSignOut","toast","info","remoteError","useSessionSocket","getBaseURL","onRemoteSignOut","onSessionRemoved","switchSessionForContext","showBottomSheetForContext","screenOrConfig","globalShowBottomSheet","contextValue","isTokenReady","identitySyncState","removeSession","showBottomSheet","jsx","Provider","value","exports","OxyContextProvider","useOxy","context","useContext","_default"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContext.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -40,18 +40,36 @@ const useAuthOperations = ({
|
|
|
40
40
|
logger
|
|
41
41
|
}) => {
|
|
42
42
|
/**
|
|
43
|
-
* Internal function to perform challenge-response sign in
|
|
43
|
+
* Internal function to perform challenge-response sign in (works offline)
|
|
44
44
|
*/
|
|
45
45
|
const performSignIn = (0, _react.useCallback)(async publicKey => {
|
|
46
46
|
const deviceFingerprintObj = _deviceManager.DeviceManager.getDeviceFingerprint();
|
|
47
47
|
const deviceFingerprint = JSON.stringify(deviceFingerprintObj);
|
|
48
48
|
const deviceInfo = await _deviceManager.DeviceManager.getDeviceInfo();
|
|
49
49
|
const deviceName = deviceInfo.deviceName || _deviceManager.DeviceManager.getDefaultDeviceName();
|
|
50
|
+
let challenge;
|
|
51
|
+
let isOffline = false;
|
|
50
52
|
|
|
51
|
-
//
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
// Try to request challenge from server (online)
|
|
54
|
+
try {
|
|
55
|
+
const challengeResponse = await oxyServices.requestChallenge(publicKey);
|
|
56
|
+
challenge = challengeResponse.challenge;
|
|
57
|
+
} catch (error) {
|
|
58
|
+
// Network error - generate challenge locally for offline sign-in
|
|
59
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
60
|
+
const isNetworkError = errorMessage.includes('Network') || errorMessage.includes('network') || errorMessage.includes('Failed to fetch') || errorMessage.includes('fetch failed') || error?.code === 'NETWORK_ERROR' || error?.status === 0;
|
|
61
|
+
if (isNetworkError) {
|
|
62
|
+
if (__DEV__ && logger) {
|
|
63
|
+
logger('Network unavailable, performing offline sign-in');
|
|
64
|
+
}
|
|
65
|
+
// Generate challenge locally
|
|
66
|
+
challenge = await _crypto.SignatureService.generateChallenge();
|
|
67
|
+
isOffline = true;
|
|
68
|
+
} else {
|
|
69
|
+
// Re-throw non-network errors
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
55
73
|
|
|
56
74
|
// Note: Biometric authentication check should be handled by the app layer
|
|
57
75
|
// (e.g., accounts app) before calling signIn. The biometric preference is stored
|
|
@@ -62,58 +80,118 @@ const useAuthOperations = ({
|
|
|
62
80
|
challenge: signature,
|
|
63
81
|
timestamp
|
|
64
82
|
} = await _crypto.SignatureService.signChallenge(challenge);
|
|
83
|
+
let fullUser;
|
|
84
|
+
let sessionResponse;
|
|
85
|
+
if (isOffline) {
|
|
86
|
+
// Offline sign-in: create local session and minimal user object
|
|
87
|
+
if (__DEV__ && logger) {
|
|
88
|
+
logger('Creating offline session');
|
|
89
|
+
}
|
|
65
90
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
await oxyServices.getTokenBySession(sessionResponse.sessionId);
|
|
91
|
+
// Generate a local session ID
|
|
92
|
+
const localSessionId = `offline_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
93
|
+
const localDeviceId = `device_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
94
|
+
const expiresAt = new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toISOString(); // 7 days
|
|
71
95
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
96
|
+
// Create minimal user object with publicKey as id
|
|
97
|
+
fullUser = {
|
|
98
|
+
id: publicKey,
|
|
99
|
+
// Use publicKey as id (per migration document)
|
|
100
|
+
publicKey,
|
|
101
|
+
username: '',
|
|
102
|
+
privacySettings: {}
|
|
103
|
+
};
|
|
104
|
+
sessionResponse = {
|
|
105
|
+
sessionId: localSessionId,
|
|
106
|
+
deviceId: localDeviceId,
|
|
107
|
+
expiresAt,
|
|
108
|
+
user: {
|
|
109
|
+
id: publicKey,
|
|
110
|
+
username: ''
|
|
111
|
+
}
|
|
112
|
+
};
|
|
76
113
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
114
|
+
// Store offline session locally
|
|
115
|
+
const offlineSession = {
|
|
116
|
+
sessionId: localSessionId,
|
|
117
|
+
deviceId: localDeviceId,
|
|
118
|
+
expiresAt,
|
|
119
|
+
lastActive: new Date().toISOString(),
|
|
120
|
+
userId: publicKey,
|
|
121
|
+
isCurrent: true
|
|
122
|
+
};
|
|
123
|
+
setActiveSessionId(localSessionId);
|
|
124
|
+
await saveActiveSessionId(localSessionId);
|
|
125
|
+
updateSessions([offlineSession], {
|
|
126
|
+
merge: true
|
|
84
127
|
});
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
128
|
+
|
|
129
|
+
// Mark session as offline for later sync
|
|
130
|
+
if (storage) {
|
|
131
|
+
await storage.setItem(`oxy_session_${localSessionId}_offline`, 'true');
|
|
88
132
|
}
|
|
89
|
-
|
|
133
|
+
if (__DEV__ && logger) {
|
|
134
|
+
logger('Offline sign-in successful');
|
|
135
|
+
}
|
|
136
|
+
} else {
|
|
137
|
+
// Online sign-in: use normal flow
|
|
138
|
+
// Verify and create session
|
|
139
|
+
sessionResponse = await oxyServices.verifyChallenge(publicKey, challenge, signature, timestamp, deviceName, deviceFingerprint);
|
|
140
|
+
|
|
141
|
+
// Get token for the session
|
|
142
|
+
await oxyServices.getTokenBySession(sessionResponse.sessionId);
|
|
90
143
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
//
|
|
144
|
+
// Get full user data
|
|
145
|
+
fullUser = await oxyServices.getUserBySession(sessionResponse.sessionId);
|
|
146
|
+
|
|
147
|
+
// Ensure id is set to publicKey (per migration document)
|
|
148
|
+
if (fullUser.id !== fullUser.publicKey) {
|
|
149
|
+
fullUser.id = fullUser.publicKey;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// Fetch device sessions
|
|
153
|
+
let allDeviceSessions = [];
|
|
95
154
|
try {
|
|
96
|
-
await
|
|
97
|
-
|
|
155
|
+
allDeviceSessions = await (0, _sessionHelpers.fetchSessionsWithFallback)(oxyServices, sessionResponse.sessionId, {
|
|
156
|
+
fallbackDeviceId: sessionResponse.deviceId,
|
|
157
|
+
fallbackUserId: fullUser.id,
|
|
158
|
+
logger
|
|
159
|
+
});
|
|
160
|
+
} catch (error) {
|
|
98
161
|
if (__DEV__) {
|
|
99
|
-
console.warn('Failed to
|
|
162
|
+
console.warn('Failed to fetch device sessions after login:', error);
|
|
100
163
|
}
|
|
101
164
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
165
|
+
|
|
166
|
+
// Check for existing session for same user
|
|
167
|
+
const existingSession = allDeviceSessions.find(session => session.userId?.toString() === fullUser.id?.toString() && session.sessionId !== sessionResponse.sessionId);
|
|
168
|
+
if (existingSession) {
|
|
169
|
+
// Logout duplicate session
|
|
170
|
+
try {
|
|
171
|
+
await oxyServices.logoutSession(sessionResponse.sessionId, sessionResponse.sessionId);
|
|
172
|
+
} catch (logoutError) {
|
|
173
|
+
if (__DEV__) {
|
|
174
|
+
console.warn('Failed to logout duplicate session:', logoutError);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
await switchSession(existingSession.sessionId);
|
|
178
|
+
updateSessions(allDeviceSessions.filter(session => session.sessionId !== sessionResponse.sessionId), {
|
|
179
|
+
merge: false
|
|
180
|
+
});
|
|
181
|
+
onAuthStateChange?.(fullUser);
|
|
182
|
+
return fullUser;
|
|
183
|
+
}
|
|
184
|
+
setActiveSessionId(sessionResponse.sessionId);
|
|
185
|
+
await saveActiveSessionId(sessionResponse.sessionId);
|
|
186
|
+
updateSessions(allDeviceSessions, {
|
|
187
|
+
merge: true
|
|
105
188
|
});
|
|
106
|
-
onAuthStateChange?.(fullUser);
|
|
107
|
-
return fullUser;
|
|
108
189
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
updateSessions(allDeviceSessions, {
|
|
112
|
-
merge: true
|
|
113
|
-
});
|
|
190
|
+
await applyLanguagePreference(fullUser);
|
|
191
|
+
loginSuccess(fullUser);
|
|
114
192
|
onAuthStateChange?.(fullUser);
|
|
115
193
|
return fullUser;
|
|
116
|
-
}, [applyLanguagePreference, logger, loginSuccess, onAuthStateChange, oxyServices, saveActiveSessionId, setActiveSessionId, switchSession, updateSessions]);
|
|
194
|
+
}, [applyLanguagePreference, logger, loginSuccess, onAuthStateChange, oxyServices, saveActiveSessionId, setActiveSessionId, switchSession, updateSessions, storage]);
|
|
117
195
|
|
|
118
196
|
/**
|
|
119
197
|
* Create a new identity with recovery phrase (offline-first)
|
|
@@ -163,10 +241,27 @@ const useAuthOperations = ({
|
|
|
163
241
|
};
|
|
164
242
|
}
|
|
165
243
|
} catch (error) {
|
|
166
|
-
//
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
244
|
+
// CRITICAL: Never delete identity on error - it may have been successfully created
|
|
245
|
+
// Only log the error and let the user recover using their recovery phrase
|
|
246
|
+
// Identity deletion should ONLY happen when explicitly requested by the user
|
|
247
|
+
if (__DEV__ && logger) {
|
|
248
|
+
logger('Error during identity creation (identity may still exist):', error);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// Check if identity was actually created (keys exist)
|
|
252
|
+
const hasIdentity = await _crypto.KeyManager.hasIdentity().catch(() => false);
|
|
253
|
+
if (hasIdentity) {
|
|
254
|
+
// Identity exists - don't delete it! Just mark as not synced
|
|
255
|
+
await storage.setItem('oxy_identity_synced', 'false').catch(() => {});
|
|
256
|
+
setIdentitySynced(false);
|
|
257
|
+
if (__DEV__ && logger) {
|
|
258
|
+
logger('Identity was created but sync failed - user can sync later using recovery phrase');
|
|
259
|
+
}
|
|
260
|
+
} else {
|
|
261
|
+
// No identity exists - this was a generation failure, safe to clean up sync flag
|
|
262
|
+
await storage.removeItem('oxy_identity_synced').catch(() => {});
|
|
263
|
+
setIdentitySynced(false);
|
|
264
|
+
}
|
|
170
265
|
const message = (0, _errorHandlers.handleAuthError)(error, {
|
|
171
266
|
defaultMessage: 'Failed to create identity',
|
|
172
267
|
code: REGISTER_ERROR_CODE,
|
|
@@ -198,6 +293,7 @@ const useAuthOperations = ({
|
|
|
198
293
|
|
|
199
294
|
/**
|
|
200
295
|
* Sync local identity with server (call when online)
|
|
296
|
+
* TanStack Query handles offline mutations automatically
|
|
201
297
|
*/
|
|
202
298
|
const syncIdentity = (0, _react.useCallback)(async () => {
|
|
203
299
|
if (!storage) throw new Error('Storage not initialized');
|
|
@@ -215,7 +311,6 @@ const useAuthOperations = ({
|
|
|
215
311
|
// Check if already synced
|
|
216
312
|
const alreadySynced = await storage.getItem('oxy_identity_synced');
|
|
217
313
|
if (alreadySynced === 'true') {
|
|
218
|
-
// Already synced, just sign in
|
|
219
314
|
setIdentitySynced(true);
|
|
220
315
|
return await performSignIn(publicKey);
|
|
221
316
|
}
|
|
@@ -238,7 +333,11 @@ const useAuthOperations = ({
|
|
|
238
333
|
setIdentitySynced(true);
|
|
239
334
|
|
|
240
335
|
// Sign in
|
|
241
|
-
|
|
336
|
+
const user = await performSignIn(publicKey);
|
|
337
|
+
|
|
338
|
+
// TanStack Query will automatically retry any pending mutations
|
|
339
|
+
|
|
340
|
+
return user;
|
|
242
341
|
} catch (error) {
|
|
243
342
|
const message = (0, _errorHandlers.handleAuthError)(error, {
|
|
244
343
|
defaultMessage: 'Failed to sync identity',
|