import { Box, Button, Chip, Divider, Typography } from '@mui/material' import { Bookmark, Columns2 } from 'lucide-react' import { PropertyMap } from '../shared' import { MatchScoreDisplay } from '../match-card/MatchScoreDisplay' import { useMatchDetail } from '../../hooks/useMatches' import type { Property } from '../../domain/property' import type { FutureSignal } from '../../domain/futureSignal' type Match = NonNullable['data']> interface MatchDetailHeroProps { match: Match property: Property | undefined signal: FutureSignal | null isFuture: boolean title: string location: string rt: { label: string; color: string } keyFacts: Array<{ label: string; value: string }> onCompare: () => void onShortlist: () => void searchCenterLat?: number searchCenterLng?: number searchRadiusKm?: number searchLabel?: string } export function MatchDetailHero({ match, property, signal: _signal, isFuture, title, location, rt, keyFacts, onCompare, onShortlist, searchCenterLat, searchCenterLng, searchRadiusKm, searchLabel, }: MatchDetailHeroProps) { return ( <> {/* Hero: image first, map fallback */} {!isFuture && ( property?.images?.[0] ? ( {property.title} ) : property?.location?.coordinates ? ( ) : null )} {/* Property header — white section below hero */} {/* Left: title + address + chips */} {title} {location} {property?.assetType && ( )} {/* Right: score + actions */} {/* Key facts strip */} {keyFacts.map((fact, i) => ( {fact.label} {fact.value} ))} ) }