defmodule SimpleshopThemeWeb.Admin.Dashboard do use SimpleshopThemeWeb, :live_view alias SimpleshopTheme.{Cart, Orders, Setup} @impl true def mount(_params, _session, socket) do status = Setup.setup_status() status_counts = Orders.count_orders_by_status() paid_count = Map.get(status_counts, "paid", 0) recent_orders = Orders.list_orders(status: "paid") |> Enum.take(5) {:ok, socket |> assign(:page_title, "Dashboard") |> assign(:setup, status) |> assign(:paid_count, paid_count) |> assign(:revenue, Orders.total_revenue()) |> assign(:recent_orders, recent_orders)} end @impl true def render(assigns) do ~H""" <.header> Dashboard <%!-- Setup checklist (when not fully set up) --%> <.setup_checklist :if={!@setup.site_live} setup={@setup} /> <%!-- Stats --%>
No orders yet
Orders will appear here once customers check out.
| Order | Date | Customer | Total | Fulfilment |
|---|---|---|---|---|
| {order.order_number} | {format_date(order.inserted_at)} | {order.customer_email || "—"} | {Cart.format_price(order.total)} | <.fulfilment_pill status={order.fulfilment_status} /> |
{@value}
{@label}