← TRON examples

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=desc

What 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 innoteSortKeysand 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.
norns-ui v0.0.17 · early access