defmodule DaProductAppWeb.TransactionLive.Show do use DaProductAppWeb, :live_view use PetalComponents alias DaProductApp.Transactions alias DaProductApp.Providers def mount(%{"id" => transaction_id} = params, session, socket) do if connected?(socket), do: DaProductAppWeb.Endpoint.subscribe("transaction:#{transaction_id}") transaction = Transactions.get_transaction!(transaction_id) #providers = Providers.list_providers_for_user(if transaction.user_id, do: transaction.user_id, else: 1) providers = Providers.list_providers_for_user( if transaction.user_id, do: transaction.user_id, else: 1 ) |> case do [] -> [ %{id: "momentPay", name: "momentPay"}, %{id: "Innoviti", name: "Innoviti"}, %{id: "Pinelabs", name: "Pinelabs"} ] list -> list end # Get container_max_width from URL params if provided; default to 500px width container_max_width = Map.get(params, "container_max_width", "max-w-[500px]") # Set container_override to true so that our custom container is rendered {:ok, assign(socket, transaction: transaction, providers: providers, container_max_width: container_max_width, container_override: true )} end def handle_info(%{event: "transaction_updated", payload: updated_tx}, socket) do {:noreply, assign(socket, transaction: updated_tx)} end def render(assigns) do ~H"""