fix: My Computer client-side tự động quét cây không mở picker

This commit is contained in:
2026-08-02 18:41:54 +07:00
parent dc384b3102
commit 4a04bc04ef
4 changed files with 25 additions and 13 deletions
+16 -9
View File
@@ -9353,6 +9353,22 @@ const MediaExplorerPanel = ({ height }) => {
}
}
} catch (e) {}
// Ưu tiên client-side: nếu có root handle đã lưu (File System Access API) t đng quét cây client
let savedHandle = null;
try { savedHandle = await loadClientRootHandle(); } catch (e) {}
if (savedHandle && savedHandle.kind === 'directory') {
setComputerMode('client');
setClientRoot(savedHandle);
const rootEntry = { name: savedHandle.name, path: 'root', is_dir: true, handle: savedHandle };
setComputerRoots([rootEntry]);
setComputerPath('root');
setComputerFiles([]);
const browsed = await browseComputerDir(rootEntry);
if (browsed && browsed.dirs) {
browsed.dirs.slice(0, 10).forEach(d => browseComputerDir(d));
}
return;
}
// Auto-scan đĩa/thư mc h thng (server API = máy local), không m hp thoi picker
setComputerMode('server');
setComputerRoots(null);
@@ -9371,15 +9387,6 @@ const MediaExplorerPanel = ({ height }) => {
res.dirs.slice(0, 8).forEach(d => browseComputerDir(d));
}
});
// Nếu có root handle đã lưu (File System Access API), cũng t đng quét client tree
const savedHandle = await loadClientRootHandle();
if (savedHandle && savedHandle.kind === 'directory' && !computerRoots) {
setClientRoot(savedHandle);
setComputerRoots([{ name: savedHandle.name, path: 'root', is_dir: true, handle: savedHandle }]);
setComputerMode('client');
const browsed = await browseComputerDir({ name: savedHandle.name, path: 'root', is_dir: true, handle: savedHandle });
if (browsed && browsed.dirs) browsed.dirs.slice(0, 10).forEach(d => browseComputerDir(d));
}
} catch (e) {
setComputerRoots([{ path: '/', name: 'Root (/)', is_dir: true }]);
window.showToast && window.showToast('Không thể truy cập My Computer: ' + e.message, 'error');