diff --git a/lib/aprs_web/components/core_components.ex b/lib/aprs_web/components/core_components.ex index 4bfa4b3..f040d34 100644 --- a/lib/aprs_web/components/core_components.ex +++ b/lib/aprs_web/components/core_components.ex @@ -417,6 +417,19 @@ defmodule AprsWeb.CoreComponents do """ end + # Helper function to safely generate row IDs + defp safe_row_id(row) when is_map(row) do + cond do + Map.has_key?(row, :id) -> row.id + Map.has_key?(row, "id") -> row["id"] + true -> :md5 |> :crypto.hash(inspect(row)) |> Base.encode16() |> String.slice(0, 8) + end + end + + defp safe_row_id(row) do + Phoenix.Param.to_param(row) + end + @doc ~S""" Renders a table with generic styling. @@ -450,7 +463,7 @@ defmodule AprsWeb.CoreComponents do