diff --git a/lib/music_library_web/components/chart_components.ex b/lib/music_library_web/components/chart_components.ex index adc4c16b..3dd8d065 100644 --- a/lib/music_library_web/components/chart_components.ex +++ b/lib/music_library_web/components/chart_components.ex @@ -28,73 +28,79 @@ defmodule MusicLibraryWeb.ChartComponents do assigns |> assign(:padding, 40) |> assign(:max_value, max_value(assigns.data, assigns.value_fn)) - # Account for labels - |> assign(:chart_width, assigns.width - 150) + # Account for labels and padding + |> assign(:chart_width, assigns.width - 150 - 40) # Account for bottom padding |> assign(:chart_height, assigns.height - 40) |> assign(:bar_height, calculate_bar_height(assigns.data, assigns.height - 40)) ~H""" - - <%!-- X-axis labels and lines --%> - <%= for {value, x} <- x_axis_values(@max_value, @chart_width) do %> - - {value} - - - <% end %> +
+ + <%!-- X-axis labels and lines --%> + <%= for {value, x} <- x_axis_values(@max_value, @chart_width) do %> + + {value} + + + <% end %> - <%!-- Bars and labels --%> - <%= for {datum, index} <- Enum.with_index(@data) do %> - <% bar_width = @chart_width * @value_fn.(datum) / @max_value %> - <% y = @padding / 2 + index * (@bar_height + 4) %> + <%!-- Bars and labels --%> + <%= for {datum, index} <- Enum.with_index(@data) do %> + <% bar_width = @chart_width * @value_fn.(datum) / @max_value %> + <% y = @padding / 2 + index * (@bar_height + 4) %> - <%!-- Label --%> - - {truncate_label(@label_fn.(datum), 20)} - + <%!-- Label --%> + + {truncate_label(@label_fn.(datum), 20)} + - <%!-- Bar --%> - - {@label_fn.(datum)}: {@value_fn.(datum)} - + <%!-- Bar --%> + + {@label_fn.(datum)}: {@value_fn.(datum)} + - <%!-- Value label --%> - - {@value_fn.(datum)} - - <% end %> - + <%!-- Value label --%> + + {@value_fn.(datum)} + + <% end %> + +
""" end