feat: add rename input focus handling in FileManager component
This commit is contained in:
parent
8ea3e3bc3c
commit
b18f9c685b
|
|
@ -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('.');
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user