overengineeringstudio / overengineeringstudio/effect-utils
notion-react: add coverage for table / table_row
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 82
- Forks
- 2
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 121
Description
Part of v0.1 block-coverage epic (see context/notion-block-coverage/).
Problem
- table_row currently routes through TEXT_LEAF (rich_text) instead of Notion's cells: rich_text[][].
- table component does not expose table_width, has_column_header, has_row_header.
- No E2E for tables.
Net effect: a table authored through the library is not a valid Notion table.
Deliverables
- components/blocks.tsx: Table props { width, hasColumnHeader, hasRowHeader }. TableRow accepts cells prop (ReactNode[]), each cell flattened to rich_text.
- renderer/host-config.ts: project table/table_row payloads to the Notion shape; remove table_row from TEXT_LEAF.
- web/blocks.tsx: mirror new props (render headers, multi-cell rows).
- web/styles.css: verify .notion-simple-table styling for headers.
- E2E: one table round-trip with 2 cols x 2 rows, column header on.
Acceptance
- Table round-trips without Notion API rejection.
- Cells render per-column in web mirror.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in components/blocks.tsx and renderer/host-config.ts to trace Table and TableRow props and the current TEXT_LEAF routing. Then inspect web/blocks.tsx and web/styles.css for the mirrored table behavior and header styling. Done means a 2-column, 2-row table with column headers round-trips without Notion API rejection and renders cells in separate columns in the web mirror.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- full-stack, testing, web-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 65/100