Workaround for incorrect detection of viewport bottom

See https://gist.github.com/cloud8421/80c1a89be9f5e4f5db13d798cdba0071
This commit is contained in:
Claudio Ortolina
2025-05-16 08:32:42 +01:00
parent 99d8e6a58b
commit bd74809092
@@ -40,12 +40,6 @@ defmodule MusicLibraryWeb.AddRecordComponent do
role="list" role="list"
class="divide-y divide-zinc-100 dark:divide-slate-300/30 mt-5" class="divide-y divide-zinc-100 dark:divide-slate-300/30 mt-5"
> >
<li
id="release-groups-empty"
class="only:flex hidden items-center justify-center h-32 text-md text-zinc-500"
>
{gettext("No results")}
</li>
<.result <.result
:for={{id, release_group} <- @streams.release_groups} :for={{id, release_group} <- @streams.release_groups}
id={id} id={id}
@@ -53,6 +47,13 @@ defmodule MusicLibraryWeb.AddRecordComponent do
icon_name={@icon_name} icon_name={@icon_name}
/> />
</ul> </ul>
<div
:if={@release_groups_count == 0}
id="release-groups-empty"
class="flex items-center justify-center h-32 text-md text-zinc-500"
>
{gettext("No results")}
</div>
</div> </div>
""" """
end end
@@ -151,6 +152,7 @@ defmodule MusicLibraryWeb.AddRecordComponent do
|> stream_configure(:release_groups, |> stream_configure(:release_groups,
dom_id: fn rg -> "musicbrainz_#{rg.id}" end dom_id: fn rg -> "musicbrainz_#{rg.id}" end
) )
|> assign(:release_groups_count, 0)
|> stream(:release_groups, []) |> stream(:release_groups, [])
|> assign(:loaded_all_results?, false)} |> assign(:loaded_all_results?, false)}
end end
@@ -164,7 +166,9 @@ defmodule MusicLibraryWeb.AddRecordComponent do
{:ok, release_groups} = {:ok, release_groups} =
MusicBrainz.search_release_group(mb_query, limit: @batch_size, offset: 0) MusicBrainz.search_release_group(mb_query, limit: @batch_size, offset: 0)
stream(socket, :release_groups, release_groups, reset: true) socket
|> assign(:release_groups_count, Enum.count(release_groups))
|> stream(:release_groups, release_groups, reset: true)
else else
socket socket
end end
@@ -185,6 +189,7 @@ defmodule MusicLibraryWeb.AddRecordComponent do
{:noreply, {:noreply,
socket socket
|> assign(:offset, 0) |> assign(:offset, 0)
|> assign(:release_groups_count, length(release_groups))
|> stream(:release_groups, release_groups, reset: true) |> stream(:release_groups, release_groups, reset: true)
|> assign(:form, to_form(%{"mb_query" => mb_query}))} |> assign(:form, to_form(%{"mb_query" => mb_query}))}
end end
@@ -199,6 +204,7 @@ defmodule MusicLibraryWeb.AddRecordComponent do
socket socket
|> assign(:offset, offset) |> assign(:offset, offset)
|> assign(:loaded_all_results?, length(release_groups) < @batch_size) |> assign(:loaded_all_results?, length(release_groups) < @batch_size)
|> assign(:release_groups_count, length(release_groups))
|> stream(:release_groups, release_groups)} |> stream(:release_groups, release_groups)}
{:error, _reason} -> {:error, _reason} ->