Skip to content

Commit a24ca30

Browse files
committed
Add simple filter to /feeds
1 parent 4d33128 commit a24ca30

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

lib/ex_rss_web/feed_live/index.ex

+15-1
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,21 @@ defmodule ExRssWeb.FeedLive.Index do
1717
|> assign(:current_user, current_user)
1818
|> assign(:form, to_form(%{}))
1919
|> assign(:discovered_feeds, [])
20+
|> assign(:filter, :all)
2021
|> assign_feeds()
2122

2223
{:ok, socket}
2324
end
2425

2526
@impl true
26-
def handle_params(_params, _url, socket) do
27+
def handle_params(params, _url, socket) do
28+
socket =
29+
case params["filter"] do
30+
"unread" -> assign(socket, :filter, :unread)
31+
_ -> assign(socket, :filter, :all)
32+
end
33+
|> assign_feeds(reset: true)
34+
2735
{:noreply, socket}
2836
end
2937

@@ -74,6 +82,12 @@ defmodule ExRssWeb.FeedLive.Index do
7482
number_of_feeds_with_error =
7583
feeds |> Enum.count(& &1.has_error)
7684

85+
feeds =
86+
case socket.assigns.filter do
87+
:unread -> feeds |> Enum.filter(&(&1.unread_entries_count > 0))
88+
:all -> feeds
89+
end
90+
7791
socket
7892
|> assign(:page_title, "#{number_of_unread_entries} unread")
7993
|> assign(:newest_unread_entry, newest_unread_entry)

lib/ex_rss_web/feed_live/index.html.heex

+4-2
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,12 @@
6565

6666
<ul class="my-2 flex flex-wrap gap-x-2 gap-y-2">
6767
<li class="inline-block px-3 py-1 border rounded-full border-blue-500 bg-blue-200">
68-
{@number_of_unread_entries + @number_of_read_entries} entries
68+
<.link patch={~p"/feeds?filter=all"}>
69+
{@number_of_unread_entries + @number_of_read_entries} entries
70+
</.link>
6971
</li>
7072
<li class="inline-block px-3 py-1 border rounded-full border-lime-400 bg-lime-100">
71-
{@number_of_unread_entries} unread
73+
<.link patch={~p"/feeds?filter=unread"}>{@number_of_unread_entries} unread</.link>
7274
</li>
7375
<li
7476
:if={@number_of_feeds_with_error > 0}

0 commit comments

Comments
 (0)