Description
Dotabase Row and Page Editing is the universal detail experience for structured records and standalone pages. It combines schema-driven property fields with a rich body editor, title hero, connected entities, history, presence, comments, media, page properties, and feature-specific body panels. The same detail content mounts on a full route, side peek, center peek, or injected row-detail slot, preserving behavior across navigation contexts.
Property types dispatch through one UI registry, while Dotabase-specific body renderers, title adornments, layouts, editor parts, and panels arrive through the module registry. Large markdown bodies open in an efficient read-only representation and hydrate the full editor only when the user chooses to edit, protecting responsiveness without hiding content.
Selling Points
- Gives every Dotabase a capable record editor without requiring a bespoke form for each schema.
- Keeps row behavior consistent across full-page and peek contexts, reducing relearning and duplicate implementations.
- Combines structured properties with rich narrative bodies, supporting both database rigor and document depth.
- Preserves provenance through history, relations, comments, presence, and connected-entity views.
- Defers heavyweight editing for outsized bodies, keeping large knowledge records usable.
User Story
A researcher opens a result from Search in a side peek, edits its status and assignee, follows a connected entity, and reviews the body’s history. For a longer report they move to the full-page route, add a table and media, and continue with the same record and controls.
Extension Surface
The detail surface is extensible through designed in-repo registries. apps/web/src/modules/dotabases/properties/registry.tsx maps property types to display and edit behavior, while apps/web/src/modules/registry.tsx accepts body renderers, editor parts, title adornments, panels, and layouts. These seams are not a documented external plugin axis, so the rating is extensible.
Capabilities & Limits
- Edits schema properties and rich bodies across route, side-peek, center-peek, and slot mounts.
- Supports history, relations, comments, presence, media, layouts, and specialized registered renderers.
- Defers expensive editor hydration for very large content.
- Limit: a read-only or import-only Dotabase can suppress mutation affordances, and unknown renderer keys fall back to the universal editor rather than guessed behavior.
Implementation Map
apps/web/src/modules/dotabases/pages/RowDetailContent.tsxapps/web/src/modules/dotabases/pages/RowDetailEditor.tsxapps/web/src/modules/dotabases/properties/registry.tsxapps/web/src/modules/dotabases/slots/RowDetailSlot.tsx