Replies: 2 comments
|
Superseded by Discussion #3993 (Source-Check → Sourcing Rename — Implementation Plan). The architecture and naming decisions in this discussion have been consolidated into the 7-phase sourcing rename plan. Key changes: routes become |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Standardize Record Status Indicators — Implementation Plan
TL;DR
Source-check dots (
RecordVerificationDot) are inconsistently placed across 12+ tables — sometimes inline-left in the name cell, sometimes as a dedicated 2nd column, only once on the right. Coverage dots (data completeness indicators) only exist on the/organizationslist page. This plan creates a unifiedRecordStatusCellcomponent that places both indicators as the rightmost column in all record tables, with coverage dots added where useful.Problem
Users see source-check verification dots in different positions across different tables, making them hard to scan consistently. The dot position should be standardized to always appear on the right side of tables. Additionally, data completeness indicators (coverage dots) should be shown alongside source-check dots where records have meaningful variation in metadata completeness.
Current State
people-section.tsxdivisions-section.tsxprograms-section.tsxmain-content-sections.tsxmain-content-sections.tsxequity-section.tsxinteractive-grants-table.tsxcareer-history.tsxdivisions-table.tsxfunding-programs-table.tsxfunding-rounds-table.tsxentity-profile-viewer.tsxorganizations-table.tsxCompletionDotscolumn ✓Proposed Approach
Create a unified
RecordStatusCellcomponent combining:RecordVerificationDotwithvariant="dot") — colored dot indicating verification statusAlways rendered as the rightmost column in tables. Two layout modes:
as="td"for tables,as="inline"for card/flex layouts.Coverage dots included where records have meaningful variation in completeness:
Architecture
components/verification/RecordStatusCell.tsxcomponents/verification/coverage-scoring.tsorganizations/[slug]/people-section.tsxorganizations/[slug]/divisions-section.tsxorganizations/[slug]/programs-section.tsxorganizations/[slug]/main-content-sections.tsxorganizations/[slug]/equity-section.tsxorganizations/[slug]/interactive-grants-table.tsxpeople/[slug]/career-history.tsxdivisions/divisions-table.tsxfunding-programs/funding-programs-table.tsxfunding-rounds/funding-rounds-table.tsxorganizations/organizations-table.tsxImplementation Phases
Phase 1: Shared components
coverage-scoring.tswith per-record-type scoring functionsRecordStatusCell.tsxwith unified component + exportedCoverageDotsPhase 2: Server-component HTML tables (mechanical migration)
people-section.tsx,divisions-section.tsx,programs-section.tsx,main-content-sections.tsx,equity-section.tsx<th>+<td>as last columnPhase 3: Client-component tables
divisions-table.tsx,funding-programs-table.tsx,funding-rounds-table.tsxPhase 4: Complex table
interactive-grants-table.tsx— move column in ALL_COLUMNS array, update cell renderingPhase 5: Card layouts
career-history.tsx— move to right withml-autoPhase 6: Extract shared CompletionDots
organizations-table.tsx— replace local function with shared importRisks & Mitigations
Scope Cuts
entity-profile-viewer.tsx): Left as-is — different purpose, usesVerdictBadgewith confidence scoresCompletionDotscolumn unchanged, only extract shared componentAll reactions