CodePage

tcmts.share.CodePage · #ape2inr2 · term · runs on the server

is an async component

The page at a name: its definition's, or the namespace's if it's only that.

import { DefinitionView, Frame, NamespaceView, shareNow } from "#codebase/tcmts/share";

export async function CodePage({ name }: { name: string }) {
  const s = shareNow();
  if (!s.signedIn) return <Frame tab="code" title="Sign in" children={null} />;
  const rows = s.cb.store.names(undefined, true);
  const here = rows.filter((r) => r.path === name);
  if (here.length)
    return (
      <DefinitionView name={name} hash={(here.find((r) => r.kind !== "type") ?? here[0]!).hash} />
    );
  if (rows.some((r) => r.path.startsWith(`${name}.`))) return <NamespaceView ns={name} />;
  return (
    <Frame tab="code" title="Not found">
      <div className="empty">
        Nothing is called <code>{name}</code> here.
      </div>
    </Frame>
  );
}

uses

used by