Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .jules/palette.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@
## 2024-05-24 - Empty States in Process Lists
**Learning:** Users can misinterpret an empty dynamic list (like processes) as a broken UI or a frozen app if there's no visual feedback indicating that the list is intentionally empty.
**Action:** Always provide a clear, empty state with an icon and brief text for dynamic lists that might temporarily yield no results, preventing user confusion.

## 2024-05-25 - Consistency in Empty States
**Learning:** Standardizing visual empty states across an app creates a more predictable and polished experience. Plain text empty states (e.g. "No items found") feel unpolished compared to the rest of the application.
**Action:** When working on lists or dynamic content, ensure empty states match the established pattern (usually a centered VStack with a large tertiary icon and callout secondary text).
14 changes: 10 additions & 4 deletions Sources/Cacheout/Views/NodeModulesSection.swift
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,16 @@ struct NodeModulesSection: View {
}

if isExpanded && !viewModel.isNodeModulesScanning && viewModel.nodeModulesItems.isEmpty {
Text("No node_modules directories found")
.font(.caption)
.foregroundStyle(.tertiary)
.padding(.vertical, 8)
VStack(spacing: 8) {
Image(systemName: "shippingbox")
.font(.largeTitle)
.foregroundStyle(.tertiary)
Text("No node_modules directories found")
.font(.callout)
.foregroundStyle(.secondary)
}
.frame(maxWidth: .infinity, alignment: .center)
.padding(.vertical, 24)
}
}
}
Expand Down