Commit graph

11 commits

Author SHA1 Message Date
6072eebe5b
vendor heroicons SVGs, remove GitHub dependency
Only the 7 SVGs actually used are vendored into priv/heroicons/.
Also fixes the icon component path resolution (was missing the 24/
size directory) and corrects hero-x-mark/hero-map-pin icon names
that included an erroneous hero- prefix.
2026-03-03 13:34:23 -06:00
d385d1eb75
Default sidebar to open on desktop via CSS
Make the map and panel CSS default to "sidebar open" on desktop
(>= 1024px) without requiring the slideover-open class. Only the
slideover-closed class now hides the sidebar. This prevents a blank
gap when the map and panel states get out of sync after LiveView
reconnects.
2026-02-25 12:25:50 -06:00
6744455ac4
Fix get_received_at to properly handle Packet structs
Structs don't implement the Access behaviour, so packet[:received_at]
doesn't work. Use pattern matching to handle Aprsme.Packet structs
separately with dot notation, and use Map.get for regular maps.

This fixes the UndefinedFunctionError when rendering tracked callsign
information with Packet structs from the database.
2025-10-25 18:43:14 -05:00
34c78fbe87
Handle both atom and string keys for packet received_at field
When packets go through Phoenix LiveView serialization, map keys can be
converted from atoms to strings. Add get_received_at/1 helper that handles
both formats to prevent KeyError when accessing received_at field.

This fixes the crash when the iOS app searches for callsigns and the
LiveView tries to render the tracked callsign's last seen time.
2025-10-25 18:17:03 -05:00
62ada761cd
refactor: improve code quality and fix potential issues
- Remove duplicate time formatting function in components.ex
  - Use existing time_ago_in_words from TimeHelpers instead of custom format_time_ago
- Remove unnecessary Float multiplication in format_coordinates
  - Changed Float.round(lat * 1.0, 4) to Float.round(lat, 4)
- Fix TypeScript type safety issues
  - Add pendingMarkers to LiveViewHookContext interface
  - Add initializationTimeout property for proper cleanup
- Add cleanup for map initialization retry timeout
  - Prevent memory leak by clearing timeout in destroyed() method
- Format code with mix format

All changes maintain backward compatibility while improving code quality.
2025-10-12 14:02:27 -05:00
06a881d63f
fix: pass required map data attributes to map component
The map component requires data-center and data-zoom attributes
for proper initialization.
2025-10-12 12:36:36 -05:00
ff636f6e5e
fix: use correct APRSMap hook name in map component 2025-10-12 12:17:11 -05:00
5491bafc31
fix: remove invalid empty state from stream container
The phx-update="stream" directive requires all direct children to have IDs.
Removed the conditional empty state message that was causing client-side errors.
2025-10-12 12:16:27 -05:00
533061c261
fix: correct remaining class attribute syntax errors
Fixed another incorrect class attribute syntax in connection_indicator component that was causing Protocol.UndefinedError.
2025-10-12 12:04:39 -05:00
1905c6b41a
fix: correct class attribute syntax in components
Fixed incorrect class attribute syntax that was using tuple notation instead of proper conditional class lists. This was causing Protocol.UndefinedError for String.Chars.
2025-10-12 11:58:16 -05:00
070b8870df
refactor 2025-10-12 10:56:49 -05:00