import { useDocument } from "@/context/document/hooks"; import { displayName, relationshipsForDocument } from "@/lib/relationships"; import { RelationshipType, type DocumentId } from "@/lib/types"; import { Route as CampaignRoute } from "@/routes/_app/_authenticated/campaigns.$campaignId"; import { Link } from "@tanstack/react-router"; import _ from "lodash"; import { Loader } from "../Loader"; import { DocumentTitle } from "./DocumentTitle"; import { Tab, TabbedLayout } from "../layout/TabbedLayout"; import { DocumentEditForm } from "./DocumentEditForm"; import { RelatedDocumentList } from "./RelatedDocumentList"; import { DocumentPreview } from "./DocumentPreview"; export function DocumentView({ documentId, relationshipType, childDocId, }: { documentId: DocumentId; relationshipType: RelationshipType | null; childDocId: DocumentId | null; }) { const { docResult } = useDocument(documentId); if (docResult?.type !== "ready") { return ; } const doc = docResult.value.doc; const relationshipCounts = _.mapValues(docResult.value.relationships, (v) => { if (v.type === "ready") { return v.value.secondary.length.toString(); } return "..."; }); const relationshipList = relationshipsForDocument(doc); return ( ← Back to campaign Print } title={} tabs={[ , ...relationshipList.map((relationshipEntry) => ( )), ]} content={ relationshipType === null ? ( ) : ( ) } flyout={childDocId && } /> ); } function Flyout({ docId }: { docId: DocumentId }) { const { docResult } = useDocument(docId); if (docResult?.type !== "ready") { return ; } const doc = docResult.value.doc; return ; }