fix: My Computer client-side tự động quét cây không mở picker
This commit is contained in:
+16
-9
@@ -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ư mục hệ thống (server API = máy local), không mở hộp thoại 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');
|
||||
|
||||
Reference in New Issue
Block a user