refactor(frontend): extract FilesTab from App.svelte
• Create lib/components/files/FilesTab.svelte (616 lines)
- Self-contained file browser with internal state
- Folder navigation, breadcrumbs, file list
- File preview with CheckFileAction for .md → note editor flow
- Import dialog (copy/link)
- Drag-and-drop, selection, keyboard shortcuts
- Cut/copy/paste, rename, delete, duplicate
- Public API: resetToNode(), filesHandleKeydown()
• Remove ~594 lines from App.svelte (4794 → 4200)
- Removed: loadingFiles, currentFolderId, folderStack, fileItems,
previewItem/Content/Loading/Error, clipboard, selectedIds, dragIds,
importing, importSummary, showImportDialog, pendingImportPath/Parent,
treeItems, expanded, childrenMap, dropRootValid, inboxDropValid,
captureDropActive/Label/DragDepth/lastCaptureDragOverAt/captureDragResetTimer
- Removed: loadTree, loadFolder, navigateToFolder, navigateBack,
navigateToBreadcrumb, openPreview, closePreview, createFile,
duplicateItem, renameItem, cutItem, copyItem, pasteItem,
toggleSelection, selectOne, selectAll, rangeSelect, clearSelection,
getTargetIds, deleteSelected, cutSelected, copySelected,
onDragStart, onDragOver, onDrop, openSelected, openSelectedExternal,
addFile, addFolder, startImport, confirmImport, cancelImport, deleteFile
- Keyboard handler delegates to filesTabRef.filesHandleKeydown()
- selectNode() calls filesTabRef.resetToNode()
• Update docs/frontend-architecture.md — Files Flow section
• Update docs/frontend-change-map.md — Phase 2 & 5 marked complete
• Build passes: npm run build ✓, go test ✓, build.sh gui ✓
This commit is contained in:
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -19,8 +19,8 @@
|
||||
background: #13131f;
|
||||
}
|
||||
</style>
|
||||
<script type="module" crossorigin src="/assets/main-CzfuqGWF.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/main-bQpH1es2.css">
|
||||
<script type="module" crossorigin src="/assets/main-DTT9uc7y.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/main-Bl-yCbt2.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
Reference in New Issue
Block a user