defmodule BerrypodWeb.Shop.Pages.Cart do @moduledoc """ Cart page handler for the unified Shop.Page LiveView. """ import Phoenix.Component, only: [assign: 3] alias Berrypod.Pages def init(socket, _params, _uri) do page = Pages.get_page("cart") socket = socket |> assign(:page_title, "Cart") |> assign(:page, page) {:noreply, socket} end def handle_params(_params, _uri, socket) do {:noreply, socket} end def handle_event(_event, _params, _socket), do: :cont # Called from render to compute the subtotal def compute_assigns(assigns) do Map.put(assigns, :cart_page_subtotal, Berrypod.Cart.calculate_subtotal(assigns.cart_items)) end end