diff --git a/src/app/components/MediaBrowser.tsx b/src/app/components/MediaBrowser.tsx index 79eb251..deab65b 100644 --- a/src/app/components/MediaBrowser.tsx +++ b/src/app/components/MediaBrowser.tsx @@ -14,6 +14,7 @@ import { import { createFolder, deletePath, + fileExists, humanFileSize, joinPath, listDirectory, @@ -99,7 +100,11 @@ export default function MediaBrowser({ currentPath, onSelect, onClose }: MediaBr const handleUpload = async (file: File) => { if (!path) return; - try { await putFileContents(joinPath(path, file.name), await file.arrayBuffer()); toast.success(`Uploaded ${file.name}`); void load(path); } + const target = joinPath(path, file.name); + if (await fileExists(target)) { + if (!window.confirm(`"${file.name}" already exists. Overwrite?`)) return; + } + try { await putFileContents(target, await file.arrayBuffer()); toast.success(`Uploaded ${file.name}`); void load(path); } catch (e: any) { toast.error(`Failed to upload ${file.name}: ${e?.message ?? e}`); } }; diff --git a/src/app/components/MediaManager.tsx b/src/app/components/MediaManager.tsx index 164f065..05933f2 100644 --- a/src/app/components/MediaManager.tsx +++ b/src/app/components/MediaManager.tsx @@ -876,8 +876,12 @@ export default function MediaManager({ initialPath = '/', rootPath, title, confi // ── Upload ─────────────────────────────────────────────────────────────── const handleUpload = async (file: File) => { + const target = joinPath(path, file.name); + if (await fileExists(target)) { + if (!window.confirm(`"${file.name}" already exists. Overwrite?`)) return; + } try { - await putFileContents(joinPath(path, file.name), await file.arrayBuffer()); + await putFileContents(target, await file.arrayBuffer()); toast.success(`Uploaded ${file.name}`); void load(path); } catch (e: any) { toast.error(`Upload failed for ${file.name}: ${e?.message ?? e}`); }