import { useState } from 'react'; import type { VesselPosition } from '@common/types/vessel'; import { getShipKindLabel } from './VesselLayer'; export interface VesselHoverInfo { x: number; y: number; vessel: VesselPosition; } function formatDateTime(iso: string): string { const d = new Date(iso); if (Number.isNaN(d.getTime())) return '-'; const pad = (n: number) => String(n).padStart(2, '0'); return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}`; } function displayVal(v: unknown): string { if (v === undefined || v === null || v === '') return '-'; return String(v); } export function VesselHoverTooltip({ hover }: { hover: VesselHoverInfo }) { const v = hover.vessel; const speed = v.sog !== undefined ? `${v.sog.toFixed(1)} kn` : '- kn'; const heading = v.heading ?? v.cog; const headingText = heading !== undefined ? `HDG ${Math.round(heading)}°` : 'HDG -'; const typeText = [getShipKindLabel(v.shipKindCode) ?? v.shipTy ?? '-', v.nationalCode] .filter(Boolean) .join(' · '); return (