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%
1.2 KB · 37 lines tsx
Raw Blame History
1import { fmtDate, fmtDateTime, relativeTime } from '@/lib/format';23/**4 * Freshness line under each data module: "Data updated <relative> · Source updated <date>".5 * `dataUpdatedAt` is when CancerIndex last refreshed/ingested; `sourceUpdatedAt` is the upstream6 * dataset date (version or published date). Both are optional and render "unknown" honestly.7 */8export function Freshness({9  dataUpdatedAt,10  sourceUpdatedAt,11  sourceVersion,12  extra,13  className = '',14}: {15  dataUpdatedAt?: Date | string | null;16  sourceUpdatedAt?: Date | string | null;17  sourceVersion?: string | null;18  extra?: string;19  className?: string;20}) {21  return (22    <p className={`mt-2 text-[12px] text-ink-3 ${className}`}>23      <span title={dataUpdatedAt ? fmtDateTime(dataUpdatedAt) : undefined}>Data updated {dataUpdatedAt ? relativeTime(dataUpdatedAt) : 'unknown'}</span>24      <span aria-hidden> · </span>25      <span>26        Source updated {sourceUpdatedAt ? fmtDate(sourceUpdatedAt) : sourceVersion ? <span className="ci-mono">{sourceVersion}</span> : 'unknown'}27      </span>28      {extra ? (29        <>30          <span aria-hidden> · </span>31          <span>{extra}</span>32        </>33      ) : null}34    </p>35  );36}37