defmodule ChickenEggWeb.IndexLive do use ChickenEggWeb, :live_view alias ChickenEggWeb.ChickenComponents def render(assigns) do ~H"""
<%= @score %>
""" 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