overengineeringstudio / overengineeringstudio/effect-utils

notion-react: add coverage for table / table_row

Open
#586 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type:chore type:feature
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.