From fa013166df45ebc0f23eff5328c9051454cd3d01 Mon Sep 17 00:00:00 2001 From: Domenico Garofoli Date: Fri, 9 Jul 2021 17:58:59 +0200 Subject: [PATCH] Add filters --- lib/todo_app/todos.ex | 4 ++++ lib/todo_app_web/live/todo_live.ex | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/lib/todo_app/todos.ex b/lib/todo_app/todos.ex index efa616a..4128b71 100644 --- a/lib/todo_app/todos.ex +++ b/lib/todo_app/todos.ex @@ -21,6 +21,10 @@ defmodule TodoApp.Todos do Repo.all(Todo) end + def list_completed_todos do + from(t in Todo, where: t.completed) |> Repo.all + end + @doc """ Gets a single todo. diff --git a/lib/todo_app_web/live/todo_live.ex b/lib/todo_app_web/live/todo_live.ex index 1f0a185..b77a91b 100644 --- a/lib/todo_app_web/live/todo_live.ex +++ b/lib/todo_app_web/live/todo_live.ex @@ -43,6 +43,14 @@ defmodule TodoAppWeb.TodoLive do <% end %> + <%= if @show_edit_modal do %> <%= live_modal @socket, TodoAppWeb.FormComponent, @@ -106,6 +114,14 @@ defmodule TodoAppWeb.TodoLive do end end + def handle_params(%{"filter" => filter}, _uri, socket) do + {:noreply, + socket + |> assign(:todos, Todos.list_completed_todos()) + |> assign(:filter, filter) + } + end + def handle_params(_params, _uri, socket) do {:noreply, fetch(socket)} end