sync: feed pane UX from private repo

- Strip kanban, grid, and saved views from ViewsOverlay (1103→631 lines)
- Add sort order dropdown (Updated/Edges/Created) with localStorage persistence
- Polish filter button, dropdown, and filter chips
- Switch to server-side dimension filtering with AND logic (dimensionsMatch=all)
- Add description preview and edge count to node cards
- Add 'created' sort option and dimensionsMatch param to types, service, API

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
“BeeRad”
2026-02-15 13:19:42 +11:00
co-authored by Claude Opus 4.6
parent 86f43c9975
commit 2940e142c8
4 changed files with 251 additions and 695 deletions
+16 -2
View File
@@ -25,12 +25,26 @@ export async function GET(request: NextRequest) {
filters.dimensions = dimensionsParam.split(',').map(dim => dim.trim()).filter(Boolean);
}
// Handle sortBy parameter
// Handle dimensionsMatch parameter (any|all)
const dimensionsMatchParam = searchParams.get('dimensionsMatch');
if (dimensionsMatchParam === 'all') {
filters.dimensionsMatch = 'all';
}
// Handle sortBy parameter (sortBy=edges|updated|created)
const sortByParam = searchParams.get('sortBy');
if (sortByParam === 'edges' || sortByParam === 'updated') {
if (sortByParam === 'edges' || sortByParam === 'updated' || sortByParam === 'created') {
filters.sortBy = sortByParam;
}
// Also support sort=created_at|updated_at with order=asc|desc (used by feed)
const sortParam = searchParams.get('sort');
if (sortParam === 'created_at') {
filters.sortBy = 'created';
} else if (sortParam === 'updated_at') {
filters.sortBy = 'updated';
}
const nodes = await nodeService.getNodes(filters);
return NextResponse.json({