defmodule ChickenEggWeb.IndexLive do
use ChickenEggWeb, :live_view
alias ChickenEggWeb.ChickenComponents
def render(assigns) do
~H"""
"""
end
def mount(_params, _session, socket) do
{:ok,
socket
|> assign(:chicken, %{x: 42, y: 47})
|> assign(:score, 0)
|> stream(:eggs, [])}
end
def handle_event("boak", _params, socket) do
score = socket.assigns.score
%{x: cx, y: cy} = socket.assigns.chicken
new_egg = %{id: "egg#{cx}#{cy}", x: cx, y: cy}
new_chicken = %{x: Enum.random(1..99), y: Enum.random(1..99)}
{:noreply,
socket
|> assign(:chicken, new_chicken)
|> assign(:score, score + 1)
|> stream_insert(:eggs, new_egg)}
end
end