diff --git a/CHANGELOG.md b/CHANGELOG.md index c52f23c..08d7705 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +# v0.6.1 +- Add shading to table component + # v0.6.0 - Update translations - Display used-up date on used-up ammo diff --git a/lib/cannery_web/components/table_component.ex b/lib/cannery_web/components/table_component.ex index 45f1d4f..91ba547 100644 --- a/lib/cannery_web/components/table_component.ex +++ b/lib/cannery_web/components/table_component.ex @@ -21,6 +21,7 @@ defmodule CanneryWeb.Components.TableComponent do use CanneryWeb, :live_component alias Phoenix.LiveView.Socket + require Integer @impl true @spec update( @@ -30,6 +31,8 @@ defmodule CanneryWeb.Components.TableComponent do required(:label) => String.t() | nil, required(:key) => atom() | nil, optional(:class) => String.t(), + optional(:row_class) => String.t(), + optional(:alternate_row_class) => String.t(), optional(:sortable) => false }), required(:rows) => @@ -57,7 +60,7 @@ defmodule CanneryWeb.Components.TableComponent do :asc end - rows = rows |> Enum.sort_by(fn row -> row |> Map.get(initial_key) end, initial_sort_mode) + rows = rows |> sort_by_custom_sort_value_or_value(initial_key, initial_sort_mode) socket = socket @@ -68,6 +71,8 @@ defmodule CanneryWeb.Components.TableComponent do last_sort_key: initial_key, sort_mode: initial_sort_mode ) + |> assign_new(:row_class, fn -> "bg-white" end) + |> assign_new(:alternate_row_class, fn -> "bg-gray-200" end) {:ok, socket} end diff --git a/lib/cannery_web/components/table_component.html.heex b/lib/cannery_web/components/table_component.html.heex index a0f68e3..d2751f7 100644 --- a/lib/cannery_web/components/table_component.html.heex +++ b/lib/cannery_web/components/table_component.html.heex @@ -33,8 +33,8 @@ - <%= for values <- @rows do %> - + <%= for {values, i} <- @rows |> Enum.with_index() do %> + Integer.is_even(), do: @row_class, else: @alternate_row_class}> <%= for %{key: key} = value <- @columns do %> <%= case values |> Map.get(key) do %> diff --git a/lib/cannery_web/live/home_live.ex b/lib/cannery_web/live/home_live.ex index 86cfac9..f944f9d 100644 --- a/lib/cannery_web/live/home_live.ex +++ b/lib/cannery_web/live/home_live.ex @@ -138,7 +138,7 @@ defmodule CanneryWeb.HomeLive do target="_blank" rel="noopener noreferrer" > -

0.6.0

+

0.6.1

diff --git a/mix.exs b/mix.exs index 130c7b8..057991c 100644 --- a/mix.exs +++ b/mix.exs @@ -4,7 +4,7 @@ defmodule Cannery.MixProject do def project do [ app: :cannery, - version: "0.6.0", + version: "0.6.1", elixir: "1.14.1", elixirc_paths: elixirc_paths(Mix.env()), compilers: Mix.compilers(),