Simplify form and handling of record dominant colors

This commit is contained in:
Claudio Ortolina
2025-07-13 11:05:16 +01:00
parent fea5e3e862
commit e887addaf2
@@ -63,13 +63,10 @@ defmodule MusicLibraryWeb.FormComponent do
{gettext("Dominant Colors")} {gettext("Dominant Colors")}
</.label> </.label>
<div class="mt-2 grid grid-cols-5 gap-2"> <div class="mt-2 grid grid-cols-5 gap-2">
<div <div :for={color <- @form[:dominant_colors].value} class="flex flex-col items-center">
:for={{color, index} <- Enum.with_index(@form[:dominant_colors].value, 0)}
class="flex flex-col items-center"
>
<input <input
type="color" type="color"
name={"record[dominant_colors][#{index}]"} name="record[dominant_colors][]"
value={color} value={color}
class="size-8 rounded border border-zinc-300 cursor-pointer" class="size-8 rounded border border-zinc-300 cursor-pointer"
/> />
@@ -166,9 +163,6 @@ defmodule MusicLibraryWeb.FormComponent do
@impl true @impl true
def handle_event("validate", %{"record" => record_params}, socket) do def handle_event("validate", %{"record" => record_params}, socket) do
record_params =
Map.update!(record_params, "dominant_colors", fn colors -> Map.values(colors) end)
changeset = Records.change_record(socket.assigns.record, record_params) changeset = Records.change_record(socket.assigns.record, record_params)
{:noreply, assign(socket, form: to_form(changeset, action: :validate))} {:noreply, assign(socket, form: to_form(changeset, action: :validate))}
end end
@@ -187,9 +181,6 @@ defmodule MusicLibraryWeb.FormComponent do
end end
defp save_record(socket, record_params, uploaded_covers) do defp save_record(socket, record_params, uploaded_covers) do
record_params =
Map.update!(record_params, "dominant_colors", fn colors -> Map.values(colors) end)
params = params =
case uploaded_covers do case uploaded_covers do
[] -> [] ->