Skip to content

feat(ui): enhance vessel details in map popups (#1094)#1457

Open
lspassos1 wants to merge 1 commit intokoala73:mainfrom
lspassos1:feat/vessel-popup-enhancements
Open

feat(ui): enhance vessel details in map popups (#1094)#1457
lspassos1 wants to merge 1 commit intokoala73:mainfrom
lspassos1:feat/vessel-popup-enhancements

Conversation

@lspassos1
Copy link
Collaborator

This PR improves the data density and visual presentation of vessel information in the map popups.

Key changes:

  • Added USNI intelligence metadata (ship class description, role).
  • Integrated flag emojis for registry identification.
  • Added support for historical tracking trail toggles.
  • Improved layout for maritime-specific data points.

@vercel
Copy link

vercel bot commented Mar 11, 2026

@lspassos1 is attempting to deploy a commit to the Elie Team on Vercel.

A member of the Team first needs to authorize it.

@chatgpt-codex-connector
Copy link

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@koala73
Copy link
Owner

koala73 commented Mar 12, 2026

Hey @lspassos1, really solid work on this one! The scope is focused, the USNI intel collapsible section is a nice UX touch, and the flag emoji generation with proper error handling is well done. Great additions with nearChokepoint, nearBase, and tracking history.

A few things to address before merge:

Must fix:

  1. Missing i18n keys - New translation keys need to be added to all locale files: popups.militaryVessel.recentTracking, lastReport, nearChokepoint, nearBase, lastSeen. Without these, non-English users see raw key strings.

  2. Type definitions - Properties like vessel.track, vessel.operatorCountry, vessel.nearChokepoint, vessel.nearBase, vessel.aisGapMinutes need to exist on the MilitaryVessel type or TypeScript will fail the build.

  3. Coordinate hemisphere bug - ${tp[1].toFixed(3)}°N, ${tp[0].toFixed(3)}°E assumes northern/eastern hemisphere. A vessel at Sydney would show -33.856°N. Should use N/S and E/W based on sign.

  4. lastAisUpdate null check - new Date(vessel.lastAisUpdate).toLocaleString() shows "Invalid Date" if the field is missing. Needs a guard.

Nice to have:

  1. Duplicate cluster vessel rendering - The flag+name mapping for visibleVessels and hiddenVessels is identical. Could extract a small renderClusterVesselItem(v) helper.

  2. USNI source link discoverability - The article link moved from the popup footer into the collapsible <details>. Users now have to expand to find the source. Consider keeping a small link outside the fold.

Thanks again, this is a quality contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants