From df4ca83aeb98c943f90093d919824d5c33ec94c1 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Wed, 27 Aug 2025 21:11:13 +0300 Subject: [PATCH] Add ability to rotate dominant colors --- lib/music_library/records/record.ex | 12 +++++++++++ .../components/form_component.ex | 17 +++++++++++++--- priv/gettext/default.pot | 5 +++++ priv/gettext/en/LC_MESSAGES/default.po | 5 +++++ test/music_library/records/record_test.exs | 20 +++++++++++++++++++ 5 files changed, 56 insertions(+), 3 deletions(-) diff --git a/lib/music_library/records/record.ex b/lib/music_library/records/record.ex index 9d29de20..bad7f517 100644 --- a/lib/music_library/records/record.ex +++ b/lib/music_library/records/record.ex @@ -188,6 +188,18 @@ defmodule MusicLibrary.Records.Record do end end + def rotate_dominant_colors(%__MODULE__{dominant_colors: dominant_colors} = record) do + change(record, dominant_colors: rotate(dominant_colors)) + end + + def rotate_dominant_colors(changeset) do + dominant_colors = get_field(changeset, :dominant_colors) + put_change(changeset, :dominant_colors, rotate(dominant_colors)) + end + + defp rotate([]), do: [] + defp rotate([first | rest]), do: rest ++ [first] + defp update_release_ids(changeset) do case get_change(changeset, :musicbrainz_data) do nil -> diff --git a/lib/music_library_web/components/form_component.ex b/lib/music_library_web/components/form_component.ex index e80edd2c..04ccf6eb 100644 --- a/lib/music_library_web/components/form_component.ex +++ b/lib/music_library_web/components/form_component.ex @@ -60,9 +60,15 @@ defmodule MusicLibraryWeb.FormComponent do />
- <.label for="dominant_colors"> - {gettext("Dominant Colors")} - +
+ <.label for="dominant_colors"> + {gettext("Dominant Colors")} + + <.button type="button" size="sm" phx-click="rotate_dominant_colors" phx-target={@myself}> + <.icon name="hero-arrows-right-left" class="icon" aria-hidden="true" data-slot="icon" /> + {gettext("Rotate colors")} + +