Skip to content

Commit f3996e2

Browse files
authored
fix issue with canceled work uploads coming back (#802)
Fixes: #416 They needed to be canceled, not just removed from the list.
1 parent 9acd644 commit f3996e2

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

lib/banchan_web/live/work_live/components/work_uploads/work_uploads.ex

+17-1
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,18 @@ defmodule BanchanWeb.WorkLive.Components.WorkUploads do
8181

8282
def handle_event("remove_upload", params, socket) do
8383
{idx, ""} = params["idx"] |> Integer.parse()
84+
to_remove = Enum.at(socket.assigns.work_uploads, idx)
8485
new_uploads = List.delete_at(socket.assigns.work_uploads, idx)
85-
8686
notify_changed(new_uploads, socket)
8787

88+
case to_remove do
89+
{:live, entry} ->
90+
notify_canceled(entry.ref, socket)
91+
92+
_ ->
93+
nil
94+
end
95+
8896
{:noreply, socket}
8997
end
9098

@@ -100,6 +108,14 @@ defmodule BanchanWeb.WorkLive.Components.WorkUploads do
100108
nil
101109
end
102110

111+
defp notify_canceled(_, %{assigns: %{send_updates_to: nil}}) do
112+
nil
113+
end
114+
115+
defp notify_canceled(ref, %{assigns: %{id: id, send_updates_to: pid}}) do
116+
send(pid, {:canceled_upload, id, ref})
117+
end
118+
103119
def render(assigns) do
104120
~F"""
105121
<bc-work-uploads id={@id} class={@class} :hook="SortableHook">

lib/banchan_web/live/work_live/work.ex

+4
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,10 @@ defmodule BanchanWeb.WorkLive.Work do
311311
end
312312
end
313313

314+
def handle_info({:canceled_upload, _, ref}, socket) do
315+
{:noreply, cancel_upload(socket, :uploads, ref)}
316+
end
317+
314318
def handle_info({:updated_uploads, _, uploads}, socket) do
315319
uploads_param =
316320
uploads

0 commit comments

Comments
 (0)