defmodule Phoenix.LiveDashboard.ChartComponent do use Phoenix.LiveDashboard.Web, :live_component @impl true def mount(socket) do {:ok, socket, temporary_assigns: [data: []]} end @impl true def update(assigns, socket) do socket = assign(socket, assigns) validate_assigns!(socket.assigns) {:ok, socket} end defp validate_assigns!(assigns) do validate_positive_integer_or_nil!(assigns[:bucket_size], :bucket_size) validate_positive_integer_or_nil!(assigns[:prune_threshold], :prune_threshold) :ok end defp validate_positive_integer_or_nil!(nil, _field), do: nil defp validate_positive_integer_or_nil!(value, field) do unless is_integer(value) and value > 0 do raise ArgumentError, "#{inspect(field)} must be a positive integer, got: #{inspect(value)}" end value end @impl true def render(assigns) do ~H"""