folderview: implement drop handler

This commit is contained in:
Girish Ramakrishnan
2026-02-12 23:44:23 +01:00
parent 627b1fe33f
commit 3e09bef613
+24
View File
@@ -163,6 +163,28 @@ function onTreeNavigate(event) {
router.push(`/home/${resourceType.value}/${resourceId.value}${sanitize(event.path)}`);
}
async function onTreeDrop(targetPath, event) {
// check if this is an internal pankow drag (files from DirectoryView)
if (event.dataTransfer.getData('application/x-pankow') === 'selected') {
const files = selectedItems.value;
if (!files || !files.length) return;
window.addEventListener('beforeunload', beforeUnloadListener, { capture: true });
pasteInProgressDialog.value.open();
try {
await directoryModel.paste(targetPath, 'cut', files);
} catch (e) {
window.pankow.notify({ type: 'danger', text: e, persistent: true });
}
await loadCwd();
window.removeEventListener('beforeunload', beforeUnloadListener, { capture: true });
pasteInProgressDialog.value.close();
}
}
function treeListFiles(path) {
if (!directoryModel) return [];
return directoryModel.listFiles(path);
@@ -544,6 +566,8 @@ onMounted(async () => {
:list-files="treeListFiles"
:active-path="cwd"
:fallback-icon="fallbackIcon"
root-label="/app/data"
:drop-handler="onTreeDrop"
@navigate="onTreeNavigate"
/>
</div>