From 9cd24bad17554260e6bcc07a754c176e6e1a1f9e Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Mon, 30 Sep 2024 13:50:07 +0100 Subject: [PATCH] No need to keep uploaded images in the socket As images are only processed on save AFTER validation, we can avoid keeping them in the socket, with the only downside of losing a little resilience in case the save operation errors out (in which case the upload would be lost). --- .../live/record_live/form_component.ex | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/lib/music_library_web/live/record_live/form_component.ex b/lib/music_library_web/live/record_live/form_component.ex index ea660e54..c473e544 100644 --- a/lib/music_library_web/live/record_live/form_component.ex +++ b/lib/music_library_web/live/record_live/form_component.ex @@ -7,7 +7,6 @@ defmodule MusicLibraryWeb.RecordLive.FormComponent do def mount(socket) do {:ok, socket - |> assign(:uploaded_images, []) |> allow_upload(:image_data, accept: ~w(.jpg .jpeg), max_entries: 1)} end @@ -74,14 +73,12 @@ defmodule MusicLibraryWeb.RecordLive.FormComponent do {:ok, File.read!(path)} end) - socket - |> assign(:uploaded_images, uploaded_images) - |> save_record(socket.assigns.action, record_params) + save_record(socket, record_params, uploaded_images) end - defp save_record(socket, :edit, record_params) do + defp save_record(socket, record_params, uploaded_images) do params = - case socket.assigns.uploaded_images do + case uploaded_images do [] -> record_params [image_path] -> Map.put(record_params, "image_data", image_path) end @@ -92,7 +89,6 @@ defmodule MusicLibraryWeb.RecordLive.FormComponent do {:noreply, socket - |> assign(:uploaded_images, []) |> put_flash(:info, "Record updated successfully") |> push_patch(to: socket.assigns.patch)}