diff --git a/src/app/components/MediaManager.tsx b/src/app/components/MediaManager.tsx index b127c68..47d8566 100644 --- a/src/app/components/MediaManager.tsx +++ b/src/app/components/MediaManager.tsx @@ -676,7 +676,8 @@ export default function MediaManager({ initialPath = '/', rootPath, title, confi try { await movePath(renameEntry.path, dest); toast.success(`Renamed to "${newName}"`); - void load(path); + if (renameEntry.path === path) navigateTo(dest); + else void load(path); } catch (e: any) { toast.error(`Rename failed: ${e?.message ?? e}`); } finally { setRenameEntry(null); } }; @@ -883,17 +884,37 @@ export default function MediaManager({ initialPath = '/', rootPath, title, confi - {pathParts.map((part, i) => ( -
- - -
- ))} + {pathParts.map((part, i) => { + const isLast = i === pathParts.length - 1; + const isEditing = isLast && renameEntry !== null && renameEntry.path === path; + return ( +
+ + {isEditing ? ( + setRenameName(e.target.value)} + onKeyDown={e => { + if (e.key === 'Enter') void commitRename(); + if (e.key === 'Escape') setRenameEntry(null); + }} + onBlur={() => void commitRename()} + onFocus={e => e.currentTarget.select()} + className="px-1 py-0 border border-blue-400 rounded text-sm max-w-[120px] min-w-[60px]" + autoFocus + /> + ) : ( + + )} +
+ ); + })} {deviceBaseUrl && (
Base: {deviceBaseUrl}