From a1d5ed9cbf4e93955478458ec052c751e8584b9f Mon Sep 17 00:00:00 2001 From: Wout De Puysseleir Date: Tue, 14 Mar 2023 18:11:53 -0700 Subject: [PATCH] Refactor BreakingNewsLive --- examples/breaking_news/live_svelte.ex | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/examples/breaking_news/live_svelte.ex b/examples/breaking_news/live_svelte.ex index f0ebdbc..b70874c 100644 --- a/examples/breaking_news/live_svelte.ex +++ b/examples/breaking_news/live_svelte.ex @@ -1,10 +1,12 @@ -defmodule ExamplesWeb.BreakingNewsLive do +defmodule ExampleWeb.BreakingNewsLive do use ExampleWeb, :live_view @initial_news [ - %{body: "World peace has been achieved!", id: 1}, - %{body: "Some other crazy stuff happened", id: 2}, - %{body: "Car crash in city center", id: 3} + %{id: 1, body: "Giant Pink Elephant Sighted Downtown"}, + %{id: 2, body: "Local Cat Becomes Mayor of Small Town"}, + %{id: 3, body: "Scientists Discover New Flavor of Ice Cream"}, + %{id: 4, body: "World's Largest Pizza Baked in Local Pizzeria, Still Not Big Enough for Customers"}, + %{id: 5, body: "Clown Epidemic Sweeps Through Town, Everyone Laughs Until They Realize the Clowns Aren't Joking"}, ] def render(assigns) do @@ -17,15 +19,14 @@ defmodule ExamplesWeb.BreakingNewsLive do {:ok, assign(socket, :news, @initial_news)} end - def handle_event("remove_news_item", %{"id" => id} = params, socket) do - socket = assign(socket, :news, Enum.reject(socket.assigns.news, fn item -> item.id == id end)) - {:noreply, socket} + def handle_event("remove_news_item", %{"id" => id}, socket) do + updated_news = Enum.reject(socket.assigns.news, fn item -> item.id == id end) + {:noreply, assign(socket, :news, updated_news)} end - def handle_event("add_news_item", %{"body" => item} = params, socket) do - new_item = %{body: item, id: get_id()} - {:noreply, assign(socket, :news, socket.assigns.news ++ [new_item])} + def handle_event("add_news_item", %{"body" => body}, socket) do + new_item = %{id: System.unique_integer([:positive]), body: body} + updated_news = socket.assigns.news ++ [new_item] + {:noreply, assign(socket, :news, updated_news)} end - - def get_id(), do: System.unique_integer([:positive]) end