Make folder nodes in the "Geprüfte Dateien" tree on the scan report
collapsible/expandable (artifacts/skillguard/src/pages/scan-report.tsx).
Changes to the FilesTree component:
- Track collapsed folders in a Set<string> keyed by full folder path.
- flattenFileTree now takes the collapsed set, computes each node's full
path and depth, and skips children of collapsed folders. Folder rows
carry a fileCount (via new countFiles helper) and a collapsed flag.
- FlatFileRow became a discriminated union (file | dir) so folder rows
expose path/fileCount/collapsed.
- Folder rows are now <button> elements with aria-expanded; clicking
toggles collapse. They show a chevron (ChevronDown expanded /
ChevronRight collapsed), the folder icon/name, and a localized file
count "(N Datei/Dateien)".
- Folders start expanded by default (empty collapsed set).
- Added ChevronRight/ChevronDown to the lucide-react import.
Verification:
- Type-check passes for scan-report.tsx after rebuilding the
api-client-react lib declarations (known stale-codegen issue in
isolated task envs; pre-existing errors in other pages remain).
- Interactive Playwright test on a temporary nested-folder scan
confirmed default-expanded tree, file counts, collapsing hides nested
files/folders, chevron state flips, and re-expanding restores them.
Temporary demo scan was deleted afterward.
No backend or API changes.
Replit-Task-Id: 7afa9ec3-c857-4581-b0d2-da12dbcac46e