SPB Git forge

spb/cancerindex

Public
37commits 1branches 0releases
2.9 MBsize
maindefault branch
10 days agolast push
TypeScript 97.2% SQL 1.5% CSS 0.6% JavaScript 0.5%
954 B · 17 lines tsx
Raw Blame History
1/**2 * Completeness dots: one dot per data domain, filled when the entity has ≥1 record in it.3 * Domains: taxonomy, epidemiology, survival, genomics, evidence, drugs, trials, literature.4 */5export const COMPLETENESS_DOMAINS = ['taxonomy', 'epidemiology', 'survival', 'genomics', 'evidence', 'drugs', 'trials', 'literature'] as const;67export function CompletenessDots({ filled, className = '' }: { filled: Record<string, boolean | number>; className?: string }) {8  const on = COMPLETENESS_DOMAINS.filter((d) => Boolean(filled[d]));9  return (10    <span className={`ci-dots ${className}`} role="img" aria-label={`Data completeness: ${on.length} of ${COMPLETENESS_DOMAINS.length} domains — ${on.join(', ') || 'none'}`} title={COMPLETENESS_DOMAINS.map((d) => `${filled[d] ? '●' : '○'} ${d}`).join('  ')}>11      {COMPLETENESS_DOMAINS.map((d) => (12        <span key={d} className={`ci-dot ${filled[d] ? 'on' : ''}`} />13      ))}14    </span>15  );16}17