Map records to generic browser rows.
CONTENT-WP-0002-T03 renders manifest columns through a pure row mapper and replaceable cell renderers. Assistant: grok Assistant-Session: 01a1346c-fdff-7741-b1af-b7283661554b
This commit is contained in:
parent
e16aa03393
commit
d92eb25f92
12 changed files with 237 additions and 53 deletions
|
|
@ -16,7 +16,7 @@ state_hub_workstream_id: "55c1d92f-fe1a-552a-998d-2d6905fb6b99"
|
|||
|
||||
# UI extraction and experience skeleton
|
||||
|
||||
Deliver the strongest OnCo-style interaction patterns on generic data. CONTENT-WP-0000 and CONTENT-WP-0001 are finished, so this plan is eligible. T01 and T02 have landed under `ui/`. T02 adds a kind index and an entity page driven by each snapshot's kind registry, for both example dataspaces. T03 is next. See `workplans/evidence/CONTENT-WP-0002-ImplementationNotes.md`.
|
||||
Deliver the strongest OnCo-style interaction patterns on generic data. CONTENT-WP-0000 and CONTENT-WP-0001 are finished, so this plan is eligible. T01 through T03 have landed under `ui/`. T03 maps each record to a generic browser row and renders the columns named by that kind's manifest view. T04 is next. See `workplans/evidence/CONTENT-WP-0002-ImplementationNotes.md`.
|
||||
|
||||
## Work packages
|
||||
|
||||
|
|
@ -42,7 +42,7 @@ state_hub_task_id: "3a8dcdb5-f4b0-5a5d-99e6-7fd62ea7d002"
|
|||
|
||||
```task
|
||||
id: CONTENT-WP-0002-T03
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "f3ccb974-153a-5dae-aa52-7a985175ca52"
|
||||
```
|
||||
|
|
|
|||
|
|
@ -49,4 +49,18 @@ Checks on 2026-10-13, after T02:
|
|||
- `python3 scripts/check_ui_boundary.py`, fixture validation, and `tests.test_contract` / `tests.test_ingest` passed.
|
||||
- `next dev` on `127.0.0.1:3400` returned HTTP 200 for `/`, `/systems-thinking/concept/`, `/systems-thinking/concept/feedback/`, `/systems-thinking/concept/system-boundary/`, `/software-architecture/pattern/`, and `/software-architecture/concept/coupling/`. Unknown kind and slug returned 404. The rendered pages did not contain the words oncology or cancer. The server was stopped. No browser pane was available, so this was an HTTP render check.
|
||||
|
||||
Not done: BrowserRow mapper, URL facets and sort, keyboard search and empty/error states, the T06 both-dataspace gate for search and filter, the formal import gate, provenance gate, or keyboard and small-screen smoke.
|
||||
Not done after T02: BrowserRow mapper, URL facets and sort, keyboard search and empty/error states, the T06 both-dataspace gate for search and filter, the formal import gate, provenance gate, or keyboard and small-screen smoke.
|
||||
|
||||
## T03 — generic browser row and cell renderers
|
||||
|
||||
`mapBrowserRow` is a pure function. It copies the OnCo row fields `id`, `name`, `tldr`, `route`, `facets`, `cols`, and `sortKeys`. It does not copy molecule, target, schematic, cancer-icon, or section-icon fields. Known cells are a name link, summary text, tag chips, and a kind link. A facet key other than `tags` is an empty list. A column key with no cell renders nothing.
|
||||
|
||||
Kind pages show the columns named in that kind's `kindViews` entry (`name`, `tldr`, `tags` in both fixtures). The dataspace home shows name, kind, and summary because that table mixes kinds. `renderCell` uses a renderer registry keyed by column or cell kind, so a caller can replace one cell without a domain widget.
|
||||
|
||||
Checks on 2026-10-13, after T03:
|
||||
|
||||
- `npm test` in `ui/`: 10 tests passed. The new tests cover the Feedback tag facet, an empty unknown facet, a replaced tag renderer, and the name link.
|
||||
- `npm run typecheck`, `scripts/check_ui_boundary.py`, fixture validation, and the contract and ingest tests passed.
|
||||
- `next dev` on `127.0.0.1:3400` returned the home table with a Kind column, and the concept and pattern indexes with Tags (`regulation`, `translation`). The server was stopped. No browser pane was available.
|
||||
|
||||
Not done: URL facets and sort, keyboard search and empty/error states, the T06 gate for search and filter, the formal import gate, the provenance gate, or keyboard and small-screen smoke. Facet values are on the row for T04; they do not filter the table yet.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue