← Files Biological Sequence & Alignment ViewerARCHIVED FILE

src/sequence/metadata-panel.tsx

1.04 KB · Sep 30, 2026 · 23:01 UTC

↓ Download file

import { WorkbenchDisclosure } from "../ui/workbench-disclosure";
import type { SequenceRecord } from "./types";

export function MetadataPanel({
  record,
}: {
  record: SequenceRecord;
}): React.ReactElement | null {
  const entries = Object.entries(record.metadata).filter(
    ([, value]) => String(value).length > 0,
  );
  if (entries.length === 0) {
    return null;
  }

  return (
    <WorkbenchDisclosure
      className="border-t border-token-border pt-3"
      id="sequence.record-metadata"
      label="Record metadata"
      summaryClassName="cursor-pointer text-sm font-medium text-token-text-primary"
    >
      <dl className="mt-3 grid gap-2 text-sm">
        {entries.map(([key, value]) => (
          <div className="grid grid-cols-[7rem_1fr] gap-3" key={key}>
            <dt className="text-token-text-tertiary">{key}</dt>
            <dd className="break-words text-token-text-primary">
              {Array.isArray(value) ? value.join("; ") : value}
            </dd>
          </div>
        ))}
      </dl>
    </WorkbenchDisclosure>
  );
}

SHA-256: 888bef299935a81900a96874aa09256e7d2438493998964fc33e0ed83ccfbdc6