Skip to content

Collection-view record row (open/delete + PropertyValueCell) duplicated across Board/Table/Calendar #265

Description

@brylie

Board, Table, and Calendar collection views each independently reimplement the same "record row" rendering unit — hover-reveal open/delete buttons, PropertyValueCell, and their own local openRecordId state — instead of sharing one component. This is the same class of duplication #239 already tracks for the Document editor's block-row rendering (move handle/action menu/selection highlighting duplicated between +page.svelte and ColumnsBlock.svelte), just on the Collection-view side.

All three use identical class patterns (opacity-0 transition-opacity group-hover:opacity-100) and the same icon/aria-label conventions, but there's no shared CollectionRecordRow component — CollectionViewBlock.svelte only wires connection/config, not row rendering. Nothing stops a future per-row feature (a new action, a new hover state) from needing to land in 4 places instead of 1.

Surfaced during the 2026-09-12 architecture audit (code-level scan of src/lib/components); the title-cell conditional's duplication added during #268 confirms the same file set is the fix boundary.

Not in scope: #239's Document-editor block-row duplication — related pattern, different surface, tracked separately.

Done when: a new per-row action or visual state needs exactly one implementation site to reach Board, Table, and Calendar.

Priority: P2 — internal consistency/maintainability, no user-facing bug today, but the same compounding-duplication risk #239 already describes for its own surface. Added to 0.5.0 — Stability, Reliability, and QA.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions