@@ -18,6 +18,7 @@ defmodule TaniaCoreWeb.TaskLive.Index do
1818 |> assign ( :active_page , :tasks )
1919 |> assign ( :farm , farm )
2020 |> assign ( :filter , "all" )
21+ |> assign ( :tasks_count , length ( tasks ) )
2122 |> stream ( :tasks , tasks )
2223 |> assign ( :task , nil )
2324 |> assign ( :show_form , false ) }
@@ -45,6 +46,7 @@ defmodule TaniaCoreWeb.TaskLive.Index do
4546 { :noreply ,
4647 socket
4748 |> assign ( :filter , filter )
49+ |> assign ( :tasks_count , length ( tasks ) )
4850 |> stream ( :tasks , tasks , reset: true ) }
4951 end
5052
@@ -75,6 +77,7 @@ defmodule TaniaCoreWeb.TaskLive.Index do
7577 { :noreply ,
7678 socket
7779 |> stream_insert ( :tasks , task )
80+ |> update ( :tasks_count , & ( & 1 + 1 ) )
7881 |> assign ( :show_form , false )
7982 |> put_flash ( :info , "Task created" ) }
8083
@@ -124,6 +127,7 @@ defmodule TaniaCoreWeb.TaskLive.Index do
124127 { :noreply ,
125128 socket
126129 |> stream_delete ( :tasks , task )
130+ |> update ( :tasks_count , & ( & 1 - 1 ) )
127131 |> put_flash ( :info , "Task deleted" ) }
128132
129133 { :error , _ } ->
@@ -210,7 +214,7 @@ defmodule TaniaCoreWeb.TaskLive.Index do
210214
211215 <%!-- Task list --%>
212216 < div class = "flex-1 min-w-0 " >
213- < div :if = { @ streams . tasks |> Enum . any? ( ) } class = "space-y-3 " >
217+ < div :if = { @ tasks_count > 0 } class = "space-y-3 " >
214218 < div
215219 :for = { { dom_id , task } <- @ streams . tasks }
216220 id = { dom_id }
@@ -272,7 +276,7 @@ defmodule TaniaCoreWeb.TaskLive.Index do
272276 </ div >
273277
274278 < . empty_state
275- :if = { ! ( @ streams . tasks |> Enum . any? ( ) ) }
279+ :if = { @ tasks_count == 0 }
276280 icon = "hero-clipboard-document-list "
277281 message = { gettext ( "No tasks found." ) }
278282 >
0 commit comments