MCPcopy Create free account
hub / github.com/error311/FileRise / wireFolderStripItems

Function wireFolderStripItems

public/js/fileListView.js:282–402  ·  view source on GitHub ↗
(strip, sourceId = '')

Source from the content-addressed store, hash-verified

280}
281
282function wireFolderStripItems(strip, sourceId = '') {
283 if (!strip) return;
284 const paneSourceId = sourceId || getActivePaneSourceId();
285
286 // Click / DnD / context menu
287 strip.querySelectorAll(".folder-item").forEach(el => {
288 // 1) click to navigate
289 el.addEventListener("click", () => {
290 const dest = el.dataset.folder;
291 if (!dest) return;
292
293 setCurrentFolderContext(dest, { resetPage: true });
294
295 document.querySelectorAll(".folder-option.selected")
296 .forEach(o => o.classList.remove("selected"));
297 document
298 .querySelector(`.folder-option[data-folder="${dest}"]`)
299 ?.classList.add("selected");
300
301 loadFileList(dest);
302 });
303
304 // 2) drag & drop
305 el.addEventListener("dragover", folderDragOverHandler);
306 el.addEventListener("dragleave", folderDragLeaveHandler);
307 el.addEventListener("drop", folderDropHandler);
308
309 // 3) right-click context menu
310 el.addEventListener("contextmenu", async e => {
311 e.preventDefault();
312 e.stopPropagation();
313
314 const dest = el.dataset.folder;
315 if (!dest) return;
316
317 strip.querySelectorAll(".folder-item.selected")
318 .forEach(i => i.classList.remove("selected"));
319 el.classList.add("selected");
320
321 let caps = null;
322 try {
323 caps = await fetchFolderCaps(dest, paneSourceId);
324 } catch (e2) { /* ignore */ }
325 const enc = (caps && caps.encryption) ? caps.encryption : {};
326 const canEncrypt = !!enc.canEncrypt;
327 const canDecrypt = !!enc.canDecrypt;
328
329 const menuItems = [
330 {
331 label: t("create_folder"),
332 action: () => {
333 // Create inside this folder (without changing the current view yet)
334 window.currentFolder = dest;
335 const modal = document.getElementById("createFolderModal");
336 if (modal) modal.style.display = "block";
337 const input = document.getElementById("newFolderName");
338 if (input) input.focus();
339 }

Callers 1

drawPageFunction · 0.85

Calls 13

setCurrentFolderContextFunction · 0.85
loadFileListFunction · 0.85
fetchFolderCapsFunction · 0.85
tFunction · 0.85
openMoveFolderUIFunction · 0.85
openRenameFolderModalFunction · 0.85
openColorFolderModalFunction · 0.85
startFolderCryptoJobFlowFunction · 0.85
openFolderShareModalFunction · 0.85
openDeleteFolderModalFunction · 0.85
attachStripIconAsyncFunction · 0.85

Tested by

no test coverage detected