feat(uat-batch-7): Wave-2 polish — Open-in-Documents, berth label, residential, NotesList parity
- InterestEoiTab history link renamed "Open" → "Open in Documents" so the cross-section nav target is unambiguous. - DocumentDetail Interest link sub-text now shows the derived `berthLabel` (formatBerthRange of the in-EOI-bundle subset, falling back to primary, then all linked berths). The link no longer duplicates the Client name; falls back to clientName or "No berths linked" when no berths exist. - New /<port>/residential/page.tsx redirects to /residential/clients so the breadcrumb's Residential link works. - Residential interests list — whole row is now a Link target (was hidden behind a trailing "View" link); hover + border accent on the full row. - Expenses PageHeader description "Track and manage port expenses" → "Track and manage business expenses" (drop the redundant "port", same audit pattern flagged in the queue). - DropdownMenu base content capped at `max-h-96` (was the Radix available-height variable, which stretched menus edge-to-edge); the existing internal scroll handles overflow. - Yacht Overview Notes block: replaced the legacy single-field textarea with the threaded `<NotesList entityType="yachts">` for parity with clients/interests/companies. Legacy `yacht.notes` column stays in schema for EOI/contract merge-field path. tsc clean. 1419/1419 vitest pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -93,7 +93,7 @@ interface DetailWatcher {
|
||||
}
|
||||
|
||||
interface DetailLinked {
|
||||
interest: { id: string; clientName: string | null } | null;
|
||||
interest: { id: string; clientName: string | null; berthLabel: string | null } | null;
|
||||
client: { id: string; fullName: string } | null;
|
||||
yacht: { id: string; name: string } | null;
|
||||
company: { id: string; name: string } | null;
|
||||
@@ -238,7 +238,11 @@ export function DocumentDetail({ documentId, portSlug }: DocumentDetailProps) {
|
||||
linkedRows.push({
|
||||
href: `/${portSlug}/interests/${linked.interest.id}`,
|
||||
label: 'Interest',
|
||||
sub: linked.interest.clientName,
|
||||
// Show the berth label (e.g. "A1-A3, B5-B7" or "A12") so the
|
||||
// Interest link carries distinct information from the Client
|
||||
// link rendered just below — otherwise both rows show the same
|
||||
// client name and the Interest row reads as duplicate.
|
||||
sub: linked.interest.berthLabel ?? linked.interest.clientName ?? 'No berths linked',
|
||||
});
|
||||
}
|
||||
if (linked.client) {
|
||||
|
||||
Reference in New Issue
Block a user