Server-paged table
The page owns paging, sorting and search state (useList()); the server owns the data. Every change becomesGET /api/notes?page&pageSize&sort&dir&q, validated bylistQuery()and answered in schema mode — rows as positional arrays tagged#notes.v1, decoded by the contract the client already imports.
0 notes
| id | Body | |||
|---|---|---|---|---|
| No notes — seed some, or create one on the Notes example | ||||
GET /api/notes?page=1&pageSize=25&sort=updated_at&dir=descWhat to look at
- Network tab: the response body is
#notes.v1followed by plain JSON with positional rows — no keys repeated per row, no shape declarations. - Sort by a column that is not in
noteSortKeysand the route answers 400 with a valibot-style issue; try/api/notes?sort=password. - Out-of-order responses are dropped: type fast and only the last query lands.