@oxyhq/services 5.16.4 → 5.16.7
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/OxyServices.base.js +3 -1
- package/lib/commonjs/core/OxyServices.base.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.assets.js +20 -330
- package/lib/commonjs/core/mixins/OxyServices.assets.js.map +1 -1
- package/lib/commonjs/index.js +156 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +45 -7
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/index.js +60 -20
- package/lib/commonjs/ui/hooks/mutations/index.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +230 -1
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/index.js +96 -30
- package/lib/commonjs/ui/hooks/queries/index.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/queryKeys.js +5 -0
- package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +75 -1
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +50 -2
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/useAssets.js +8 -29
- package/lib/commonjs/ui/hooks/useAssets.js.map +1 -1
- package/lib/commonjs/ui/screens/FileManagementScreen.js +14 -10
- package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/module/core/OxyServices.base.js +3 -1
- package/lib/module/core/OxyServices.base.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.assets.js +20 -331
- package/lib/module/core/mixins/OxyServices.assets.js.map +1 -1
- package/lib/module/index.js +17 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +45 -7
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/hooks/mutations/index.js +12 -3
- package/lib/module/ui/hooks/mutations/index.js.map +1 -1
- package/lib/module/ui/hooks/mutations/useAccountMutations.js +227 -0
- package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/module/ui/hooks/queries/index.js +15 -4
- package/lib/module/ui/hooks/queries/index.js.map +1 -1
- package/lib/module/ui/hooks/queries/queryKeys.js +5 -0
- package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
- package/lib/module/ui/hooks/queries/useAccountQueries.js +73 -0
- package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/module/ui/hooks/queries/useServicesQueries.js +50 -2
- package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
- package/lib/module/ui/hooks/useAssets.js +8 -29
- package/lib/module/ui/hooks/useAssets.js.map +1 -1
- package/lib/module/ui/screens/FileManagementScreen.js +12 -10
- package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/typescript/core/OxyServices.base.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.assets.d.ts +1 -70
- package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
- package/lib/typescript/core/mixins/index.d.ts +4 -14
- package/lib/typescript/core/mixins/index.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +2 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/mutations/index.d.ts +8 -2
- package/lib/typescript/ui/hooks/mutations/index.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +19 -0
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/index.d.ts +9 -3
- package/lib/typescript/ui/hooks/queries/index.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/queryKeys.d.ts +4 -0
- package/lib/typescript/ui/hooks/queries/queryKeys.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +6 -0
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useAssets.d.ts.map +1 -1
- package/lib/typescript/ui/screens/FileManagementScreen.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/OxyServices.base.ts +5 -1
- package/src/core/mixins/OxyServices.assets.ts +21 -338
- package/src/index.ts +49 -2
- package/src/ui/context/OxyContext.tsx +49 -7
- package/src/ui/hooks/mutations/index.ts +24 -3
- package/src/ui/hooks/mutations/useAccountMutations.ts +205 -0
- package/src/ui/hooks/queries/index.ts +29 -4
- package/src/ui/hooks/queries/queryKeys.ts +6 -0
- package/src/ui/hooks/queries/useAccountQueries.ts +69 -0
- package/src/ui/hooks/queries/useServicesQueries.ts +49 -2
- package/src/ui/hooks/useAssets.ts +8 -28
- package/src/ui/screens/FileManagementScreen.tsx +10 -11
|
@@ -96,12 +96,60 @@ export const useDeviceSessions = options => {
|
|
|
96
96
|
export const useUserDevices = options => {
|
|
97
97
|
const {
|
|
98
98
|
oxyServices,
|
|
99
|
-
isAuthenticated
|
|
99
|
+
isAuthenticated,
|
|
100
|
+
activeSessionId,
|
|
101
|
+
syncIdentity
|
|
100
102
|
} = useOxy();
|
|
101
103
|
return useQuery({
|
|
102
104
|
queryKey: queryKeys.devices.list(),
|
|
103
105
|
queryFn: async () => {
|
|
104
|
-
|
|
106
|
+
// Ensure we have a valid token before making the request
|
|
107
|
+
if (!oxyServices.hasValidToken() && activeSessionId) {
|
|
108
|
+
try {
|
|
109
|
+
// Try to get token for the session
|
|
110
|
+
await oxyServices.getTokenBySession(activeSessionId);
|
|
111
|
+
} catch (tokenError) {
|
|
112
|
+
// If getting token fails, might be an offline session - try syncing
|
|
113
|
+
const errorMessage = tokenError instanceof Error ? tokenError.message : String(tokenError);
|
|
114
|
+
if (errorMessage.includes('AUTH_REQUIRED_OFFLINE_SESSION') || errorMessage.includes('offline')) {
|
|
115
|
+
try {
|
|
116
|
+
await syncIdentity();
|
|
117
|
+
// Retry getting token after sync
|
|
118
|
+
await oxyServices.getTokenBySession(activeSessionId);
|
|
119
|
+
} catch (syncError) {
|
|
120
|
+
throw new Error('Session needs to be synced. Please try again.');
|
|
121
|
+
}
|
|
122
|
+
} else {
|
|
123
|
+
throw tokenError;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
return await oxyServices.getUserDevices();
|
|
129
|
+
} catch (error) {
|
|
130
|
+
const errorMessage = error?.message || '';
|
|
131
|
+
const status = error?.status || error?.response?.status;
|
|
132
|
+
|
|
133
|
+
// Handle authentication errors
|
|
134
|
+
if (status === 401 || errorMessage.includes('Authentication required') || errorMessage.includes('Invalid or missing authorization header')) {
|
|
135
|
+
// Try to sync session and get token
|
|
136
|
+
if (activeSessionId) {
|
|
137
|
+
try {
|
|
138
|
+
await syncIdentity();
|
|
139
|
+
await oxyServices.getTokenBySession(activeSessionId);
|
|
140
|
+
// Retry the request after getting token
|
|
141
|
+
return await oxyServices.getUserDevices();
|
|
142
|
+
} catch (retryError) {
|
|
143
|
+
throw new Error('Authentication failed. Please sign in again.');
|
|
144
|
+
}
|
|
145
|
+
} else {
|
|
146
|
+
throw new Error('No active session. Please sign in.');
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// TanStack Query will automatically retry on network errors
|
|
151
|
+
throw error;
|
|
152
|
+
}
|
|
105
153
|
},
|
|
106
154
|
enabled: options?.enabled !== false && isAuthenticated,
|
|
107
155
|
staleTime: 5 * 60 * 1000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useQuery","queryKeys","useOxy","fetchSessionsWithFallback","mapSessionsToClient","useSessions","userId","options","oxyServices","activeSessionId","queryKey","sessions","list","queryFn","Error","fallbackDeviceId","undefined","fallbackUserId","enabled","staleTime","gcTime","useSession","sessionId","detail","validation","validateSession","useHeaderValidation","valid","user","now","Date","deviceId","expiresAt","getTime","toISOString","lastActive","lastActivity","id","toString","isCurrent","useDeviceSessions","active","getDeviceSessions","useUserDevices","isAuthenticated","devices","getUserDevices","useSecurityInfo","all","getSecurityInfo"],"sourceRoot":"../../../../../src","sources":["ui/hooks/queries/useServicesQueries.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["useQuery","queryKeys","useOxy","fetchSessionsWithFallback","mapSessionsToClient","useSessions","userId","options","oxyServices","activeSessionId","queryKey","sessions","list","queryFn","Error","fallbackDeviceId","undefined","fallbackUserId","enabled","staleTime","gcTime","useSession","sessionId","detail","validation","validateSession","useHeaderValidation","valid","user","now","Date","deviceId","expiresAt","getTime","toISOString","lastActive","lastActivity","id","toString","isCurrent","useDeviceSessions","active","getDeviceSessions","useUserDevices","isAuthenticated","syncIdentity","devices","hasValidToken","getTokenBySession","tokenError","errorMessage","message","String","includes","syncError","getUserDevices","error","status","response","retryError","useSecurityInfo","all","getSecurityInfo"],"sourceRoot":"../../../../../src","sources":["ui/hooks/queries/useServicesQueries.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -47,44 +47,23 @@ export const useAssets = () => {
|
|
|
47
47
|
clearErrors();
|
|
48
48
|
setUploading(true);
|
|
49
49
|
|
|
50
|
-
//
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
// Initialize progress tracking
|
|
54
|
-
const initialProgress = {
|
|
55
|
-
fileId: '',
|
|
56
|
-
// Will be set after init
|
|
57
|
-
uploaded: 0,
|
|
58
|
-
total: file.size,
|
|
59
|
-
percentage: 0,
|
|
60
|
-
status: 'uploading'
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
// Upload with progress callback (visibility undefined, metadata, then onProgress)
|
|
64
|
-
const result = await oxyInstance.assetUpload(file, undefined, metadata, percentage => {
|
|
65
|
-
if (initialProgress.fileId) {
|
|
66
|
-
setUploadProgress(initialProgress.fileId, {
|
|
67
|
-
...initialProgress,
|
|
68
|
-
uploaded: Math.round(percentage / 100 * file.size),
|
|
69
|
-
percentage,
|
|
70
|
-
status: percentage < 100 ? 'uploading' : 'processing'
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
});
|
|
50
|
+
// Upload file (progress tracking simplified for now)
|
|
51
|
+
const result = await oxyInstance.assetUpload(file, undefined, metadata);
|
|
74
52
|
|
|
75
53
|
// Update progress with final status
|
|
76
|
-
if (result
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
fileId
|
|
54
|
+
if (result?.file) {
|
|
55
|
+
const fileId = result.file.id;
|
|
56
|
+
setUploadProgress(fileId, {
|
|
57
|
+
fileId,
|
|
80
58
|
uploaded: file.size,
|
|
59
|
+
total: file.size,
|
|
81
60
|
percentage: 100,
|
|
82
61
|
status: 'complete'
|
|
83
62
|
});
|
|
84
63
|
|
|
85
64
|
// Remove progress after a short delay
|
|
86
65
|
setTimeout(() => {
|
|
87
|
-
removeUploadProgress(
|
|
66
|
+
removeUploadProgress(fileId);
|
|
88
67
|
}, 2000);
|
|
89
68
|
}
|
|
90
69
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useAssetStore","oxyInstance","setOxyAssetInstance","instance","useAssets","assets","uploadProgress","loading","errors","setAsset","setAssets","removeAsset","setUploadProgress","removeUploadProgress","addLink","removeLink","setUploading","setLinking","setDeleting","setUploadError","setLinkError","setDeleteError","clearErrors","getAssetsByApp","getAssetsByEntity","getAssetUsageCount","isAssetLinked","reset","upload","file","metadata","Error","
|
|
1
|
+
{"version":3,"names":["useCallback","useAssetStore","oxyInstance","setOxyAssetInstance","instance","useAssets","assets","uploadProgress","loading","errors","setAsset","setAssets","removeAsset","setUploadProgress","removeUploadProgress","addLink","removeLink","setUploading","setLinking","setDeleting","setUploadError","setLinkError","setDeleteError","clearErrors","getAssetsByApp","getAssetsByEntity","getAssetUsageCount","isAssetLinked","reset","upload","file","metadata","Error","result","assetUpload","undefined","fileId","id","uploaded","size","total","percentage","status","setTimeout","error","message","link","assetId","app","entityType","entityId","visibility","assetLink","createdBy","createdAt","Date","toISOString","unlink","assetUnlink","getUrl","variant","expiresIn","assetGetUrl","url","getAsset","assetGet","deleteAsset","force","assetDelete","restore","assetRestore","getVariants","assetGetVariants","Object","values"],"sourceRoot":"../../../../src","sources":["ui/hooks/useAssets.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import React, { useState, useEffect, useCallback, useMemo, useRef } from 'react';
|
|
4
4
|
import { View, Text, TouchableOpacity, StyleSheet, ScrollView, ActivityIndicator, RefreshControl, TextInput, Image, Animated, Easing, Alert } from 'react-native';
|
|
5
5
|
import { Image as ExpoImage } from 'expo-image';
|
|
6
|
+
import * as DocumentPicker from 'expo-document-picker';
|
|
6
7
|
import { toast } from '../../lib/sonner';
|
|
7
8
|
import { Ionicons } from '@expo/vector-icons';
|
|
8
9
|
// @ts-ignore - MaterialCommunityIcons is available at runtime
|
|
@@ -15,7 +16,8 @@ import { useThemeStyles } from '../hooks/useThemeStyles';
|
|
|
15
16
|
import { useColorScheme } from '../hooks/use-color-scheme';
|
|
16
17
|
import { normalizeTheme } from '../utils/themeUtils';
|
|
17
18
|
import { useOxy } from '../context/OxyContext';
|
|
18
|
-
import {
|
|
19
|
+
import { useUploadFile } from '../hooks/mutations/useAccountMutations';
|
|
20
|
+
import { confirmAction, convertDocumentPickerAssetToFile, formatFileSize, getFileIcon, getSafeDownloadUrl } from '../utils/fileManagement';
|
|
19
21
|
import { FileViewer } from '../components/fileManagement/FileViewer';
|
|
20
22
|
import { FileDetailsModal } from '../components/fileManagement/FileDetailsModal';
|
|
21
23
|
import { UploadPreview } from '../components/fileManagement/UploadPreview';
|
|
@@ -89,6 +91,7 @@ const FileManagementScreen = ({
|
|
|
89
91
|
user,
|
|
90
92
|
oxyServices
|
|
91
93
|
} = useOxy();
|
|
94
|
+
const uploadFileMutation = useUploadFile();
|
|
92
95
|
const files = useFiles();
|
|
93
96
|
// Ensure containerWidth is a number (TypeScript guard)
|
|
94
97
|
const safeContainerWidth = typeof containerWidth === 'number' ? containerWidth : 400;
|
|
@@ -494,7 +497,12 @@ const FileManagementScreen = ({
|
|
|
494
497
|
useFileStore.getState().addFile(optimisticFile, {
|
|
495
498
|
prepend: true
|
|
496
499
|
});
|
|
497
|
-
|
|
500
|
+
|
|
501
|
+
// Use the mutation hook with authentication handling
|
|
502
|
+
const result = await uploadFileMutation.mutateAsync({
|
|
503
|
+
file: raw,
|
|
504
|
+
visibility: defaultVisibility
|
|
505
|
+
});
|
|
498
506
|
|
|
499
507
|
// Attempt to refresh file list incrementally – fetch single file metadata if API allows
|
|
500
508
|
if (result?.file || result?.files?.[0]) {
|
|
@@ -725,14 +733,8 @@ const FileManagementScreen = ({
|
|
|
725
733
|
try {
|
|
726
734
|
setIsPickingDocument(true);
|
|
727
735
|
|
|
728
|
-
//
|
|
729
|
-
|
|
730
|
-
if (!DocumentPicker || !DocumentPicker.getDocumentAsync) {
|
|
731
|
-
toast.error('File picker not available. Please install expo-document-picker');
|
|
732
|
-
return;
|
|
733
|
-
}
|
|
734
|
-
|
|
735
|
-
// Use getDocumentAsync directly - it will handle platform availability
|
|
736
|
+
// Use expo-document-picker (works on all platforms including web)
|
|
737
|
+
// On web, it uses the native file input and provides File objects directly
|
|
736
738
|
const result = await DocumentPicker.getDocumentAsync({
|
|
737
739
|
type: '*/*',
|
|
738
740
|
multiple: true,
|