defmodule LiveDebuggerWeb.Layout do @moduledoc """ Inspiration was taken from Phoenix LiveDashboard https://github.com/phoenixframework/phoenix_live_dashboard/blob/main/lib/phoenix/live_dashboard/layout_view.ex https://github.com/phoenixframework/phoenix_live_dashboard/blob/main/lib/phoenix/live_dashboard/layouts/dash.html.heex """ use Phoenix.Component import LiveDebuggerWeb.Components @doc false def render(template, assigns) def render("root.html", assigns) do ~H""" <%= custom_head_tags(assigns, :after_opening_head_tag) %> LiveDebugger <%= custom_head_tags(assigns, :before_closing_head_tag) %> <%= @inner_content %> """ end def render("app.html", assigns) do ~H"""
<.flash flash={@flash} /> <%= @inner_content %>
""" end defp custom_head_tags(assigns, key) do case assigns do %{^key => components} when is_list(components) -> assigns = assign(assigns, :components, components) ~H""" <%= for component <- @components do %> <%= component.(assigns) %> <% end %> """ _ -> nil end end end