From 68e3e38d75e0a0a4bee0cdc534920749c30b8add Mon Sep 17 00:00:00 2001 From: Vantz Stockwell Date: Tue, 17 Mar 2026 13:39:28 -0400 Subject: [PATCH] feat(sftp): wire toolbar buttons and live transfer progress panel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - S-1 Upload: hidden file input, FileReader reads as text, calls SFTP.WriteFile, refreshes listing - S-2 Download: calls SFTP.ReadFile, creates Blob, triggers browser download via temporary element - S-3 Delete: confirm() dialog, calls SFTP.Delete, clears selection, refreshes listing - S-4 New Folder: prompt() dialog, calls SFTP.Mkdir with full path, refreshes listing - S-5 Transfer Progress: new useTransfers composable (module-level singleton) tracks active transfers; TransferProgress consumes it directly — no prop threading required - Added single-click selection state to file entries; download/delete buttons dim when no valid selection exists Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/components/sftp/FileTree.vue | 132 +++++++++++++++++- .../src/components/sftp/TransferProgress.vue | 16 +-- frontend/src/composables/useTransfers.ts | 40 ++++++ 3 files changed, 173 insertions(+), 15 deletions(-) create mode 100644 frontend/src/composables/useTransfers.ts diff --git a/frontend/src/components/sftp/FileTree.vue b/frontend/src/components/sftp/FileTree.vue index 72bad14..9708f55 100644 --- a/frontend/src/components/sftp/FileTree.vue +++ b/frontend/src/components/sftp/FileTree.vue @@ -21,6 +21,7 @@