Failed to load dossier: {error instanceof Error ? error.message : 'unknown error'}
) : (
{dossier.blockers.length > 0 && (
Cannot archive
{dossier.blockers.map((b, i) => (
{b}
))}
)}
{dossier.stakeLevel === 'high' && (
Late-stage deal — confirmation required
This client is at {dossier.highStakesStage}.
Provide a reason explaining why you’re archiving them at this stage. The
reason is recorded in the audit log.
)}
{/* Interests + signed-doc acknowledgment */}
{dossier.interests.length > 0 && (
Pipeline interests ({dossier.interests.length})
{dossier.interests.map((i) => (
{i.interestId.slice(0, 8)}
{i.pipelineStage}
{i.hasSignedEoi && Signed EOI}
))}
)}
{hasSignedDocs && (
)}
{/* Berths */}
{dossier.berths.length > 0 && (
Berths ({dossier.berths.length})
{dossier.berths.map((b) => (
Berth {b.mooringNumber}
{b.status}
{b.status === 'sold' && (
Sold berths stay sold. Process a refund separately if needed.
)}
{b.otherInterests.length > 0 && berthDecisions[b.berthId] === 'release' && (
Releasing will notify the sales rep. Other interests on this berth:{' '}
{b.otherInterests
.slice(0, 3)
.map((o) => `${o.clientName ?? '?'} (${o.pipelineStage})`)
.join(', ')}
{b.otherInterests.length > 3 ? ` +${b.otherInterests.length - 3}` : ''}
)}
))}
)}
{/* Yachts */}
{dossier.yachts.length > 0 && (
Yachts owned ({dossier.yachts.length})
{dossier.yachts.map((y) => (
{y.name}
))}
)}
{/* Reservations */}
{dossier.reservations.length > 0 && (
Active reservations (
{dossier.reservations.length})
{dossier.reservations.map((r) => (
Berth {r.mooringNumber}
))}
)}
{/* Invoices */}
{dossier.invoices.length > 0 && (
Outstanding invoices ({dossier.invoices.length})
{dossier.invoices.map((i) => (
{i.invoiceNumber} · {i.total} {i.currency}
))}
)}
{/* In-flight signing envelopes */}
{dossier.documents.filter((d) => d.isInFlight).length > 0 && (
In-flight signing envelopes
{dossier.documents
.filter((d) => d.isInFlight)
.map((d) => (
{d.templateName ?? d.documentId.slice(0, 8)}
))}
)}
{/* Auto-handled summary */}
Automatically handled
EOI documents — retained for audit (always)
{dossier.hasPortalUser && Portal user — deactivated (login revoked)
}
{dossier.companies.length > 0 && (
Company memberships — end-dated to today (history preserved)
)}
Notes, contacts, tags, addresses — survive on the archived client
{/* Reason field */}
)}