diff --git a/src/admin/api.js b/src/admin/api.js index a7cc946..e99dc25 100644 --- a/src/admin/api.js +++ b/src/admin/api.js @@ -79,8 +79,18 @@ export const adminApi = { apiFetch('/api/auth/password', { method: 'PUT', body: JSON.stringify({ currentPassword, newPassword }) }), upload: async (file) => { - const form = new FormData(); - form.append('file', file); - return apiFetch('/api/upload', { method: 'POST', body: form }); + // Try Node API first; fall back to local data URL when server is unavailable. + try { + const form = new FormData(); + form.append('file', file); + return await apiFetch('/api/upload', { method: 'POST', body: form }); + } catch { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = () => resolve({ url: reader.result, filename: file.name }); + reader.onerror = () => reject(new Error('Failed to read file')); + reader.readAsDataURL(file); + }); + } }, };