feat: add rename input focus handling in FileManager component

This commit is contained in:
Jaime Idolpx 2026-06-07 22:08:34 -04:00
parent 8ea3e3bc3c
commit b18f9c685b

View File

@ -102,6 +102,7 @@ export default function FileManager({ initialPath = '/', config, setConfig, onBa
const [renameName, setRenameName] = useState(''); const [renameName, setRenameName] = useState('');
const [mountEntry, setMountEntry] = useState<EntryInfo | null>(null); const [mountEntry, setMountEntry] = useState<EntryInfo | null>(null);
const fileInputRef = useRef<HTMLInputElement>(null); const fileInputRef = useRef<HTMLInputElement>(null);
const renameInputRef = useRef<HTMLInputElement>(null);
const dragCounter = useRef(0); const dragCounter = useRef(0);
const load = useCallback(async (p: string) => { const load = useCallback(async (p: string) => {
@ -270,6 +271,7 @@ export default function FileManager({ initialPath = '/', config, setConfig, onBa
setRenameEntry(entry); setRenameEntry(entry);
setRenameName(entry.name); setRenameName(entry.name);
setActionEntry(null); setActionEntry(null);
setTimeout(() => renameInputRef.current?.focus(), 50);
}; };
const commitRename = async () => { const commitRename = async () => {
@ -607,6 +609,7 @@ export default function FileManager({ initialPath = '/', config, setConfig, onBa
if (e.key === 'Escape') setRenameEntry(null); if (e.key === 'Escape') setRenameEntry(null);
}} }}
onBlur={() => void commitRename()} onBlur={() => void commitRename()}
ref={renameInputRef}
onClick={e => e.stopPropagation()} onClick={e => e.stopPropagation()}
onFocus={e => { onFocus={e => {
const dotIdx = renameName.lastIndexOf('.'); const dotIdx = renameName.lastIndexOf('.');