File tree 2 files changed +21
-1
lines changed
lib/banchan_web/live/work_live
2 files changed +21
-1
lines changed Original file line number Diff line number Diff line change @@ -81,10 +81,18 @@ defmodule BanchanWeb.WorkLive.Components.WorkUploads do
81
81
82
82
def handle_event ( "remove_upload" , params , socket ) do
83
83
{ idx , "" } = params [ "idx" ] |> Integer . parse ( )
84
+ to_remove = Enum . at ( socket . assigns . work_uploads , idx )
84
85
new_uploads = List . delete_at ( socket . assigns . work_uploads , idx )
85
-
86
86
notify_changed ( new_uploads , socket )
87
87
88
+ case to_remove do
89
+ { :live , entry } ->
90
+ notify_canceled ( entry . ref , socket )
91
+
92
+ _ ->
93
+ nil
94
+ end
95
+
88
96
{ :noreply , socket }
89
97
end
90
98
@@ -100,6 +108,14 @@ defmodule BanchanWeb.WorkLive.Components.WorkUploads do
100
108
nil
101
109
end
102
110
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
+
103
119
def render ( assigns ) do
104
120
~F"""
105
121
<bc-work-uploads id={@id} class={@class} :hook="SortableHook">
Original file line number Diff line number Diff line change @@ -311,6 +311,10 @@ defmodule BanchanWeb.WorkLive.Work do
311
311
end
312
312
end
313
313
314
+ def handle_info ( { :canceled_upload , _ , ref } , socket ) do
315
+ { :noreply , cancel_upload ( socket , :uploads , ref ) }
316
+ end
317
+
314
318
def handle_info ( { :updated_uploads , _ , uploads } , socket ) do
315
319
uploads_param =
316
320
uploads
You can’t perform that action at this time.
0 commit comments