diff --git a/mobile/api/client.ts b/mobile/api/client.ts index 13df5a2..ceca53b 100644 --- a/mobile/api/client.ts +++ b/mobile/api/client.ts @@ -14,6 +14,10 @@ class ApiClient { this.accessToken = token; } + getAccessToken(): string | null { + return this.accessToken; + } + private async request( endpoint: string, options: RequestInit = {}, diff --git a/mobile/app/file-edit.tsx b/mobile/app/file-edit.tsx index ce7966e..6341649 100644 --- a/mobile/app/file-edit.tsx +++ b/mobile/app/file-edit.tsx @@ -19,6 +19,8 @@ import { useUpload } from '../hooks/useUpload'; import { TagChip } from '../components/TagChip'; import { FileThumbnail } from '../components/FileThumbnail'; import { FileItem } from '../types'; +import { apiClient } from '../api/client'; +import { ENDPOINTS } from '../constants/api'; const NUM_COLUMNS = 3; const SCREEN_WIDTH = Dimensions.get('window').width; @@ -132,8 +134,7 @@ export function FileEditScreen() { const imageUris: { uri: string }[] = []; for (const fileId of targetIds) { - const response = await fetch(`${process.env.EXPO_PUBLIC_API_BASE_URL || 'http://192.168.1.17:8080/api/v1'}/files/${fileId}`); - const data = await response.json(); + const data = await apiClient.get<{ data: { url: string } }>(`${ENDPOINTS.FILES}/${fileId}`); const url = data?.data?.url; if (url) { imageUris.push({ uri: url }); diff --git a/mobile/app/login.tsx b/mobile/app/login.tsx index d53b99a..232a509 100644 --- a/mobile/app/login.tsx +++ b/mobile/app/login.tsx @@ -46,6 +46,7 @@ export function LoginScreen({ navigation }: any) { { const fsFile = new File(file.uri); + const headers: Record = {}; + const token = apiClient.getAccessToken(); + if (token) { + headers['Authorization'] = `Bearer ${token}`; + } const result = await fsFile.upload(`${API_BASE_URL}${ENDPOINTS.UPLOAD}`, { httpMethod: 'POST', uploadType: UploadType.MULTIPART, fieldName: 'file', mimeType: file.type, + headers, }); if (result.status >= 400) {