I’m installing the Phoenix LiveView and I want help with the part Live Layouts
.
The app on github
I create the 3 files on templates/layout
:
* root.html.eex
* app.html.eex
* live.html.leex
I add on my routes:
pipeline :browser do
...
plug :put_root_layout, {MyAppWeb.LayoutView, :root}
end
I notice on the Doc’s they forget the MyAppWeb.
on
plug :put_root_layout, {MyApp.LayoutView, :root}
then on these 3 files I created on the layout.
I put on the:
root.html.eex
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title><%= assigns[:page_title] || "MyApp · Phoenix Framework" %></title>
<link rel="stylesheet" href="<%= Routes.static_path(@conn, "/css/app.css") %>"/>
<%= csrf_meta_tag() %>
</head>
<body>
<header>
<section class="container">
<nav role="navigation">
<ul>
<li><a href="https://hexdocs.pm/phoenix/overview.html">Get Started</a></li>
</ul>
</nav>
<a href="https://phoenixframework.org/" class="phx-logo">
<img src="<%= Routes.static_path(@conn, "/images/phoenix.png") %>" alt="Phoenix Framework Logo"/>
</a>
</section>
</header>
<%= @inner_content %>
<script type="text/javascript" src="<%= Routes.static_path(@conn, "/js/app.js") %>"></script>
</body>
</html>
app.html.eex
<main role="main" class="container">
<p class="alert alert-info" role="alert"><%= get_flash(@conn, :info) %></p>
<p class="alert alert-danger" role="alert"><%= get_flash(@conn, :error) %></p>
<%= render @view_module, @view_template, assigns %>
</main>
live.html.leex
<p><%= live_flash(@flash, :notice) %></p>
<p><%= live_flash(@flash, :error) %></p>
<%= @inner_content %>
And where I put this?
use Phoenix.LiveView, layout: {AppWeb.LayoutView, "live.html"}
I need to create a new views for these files?
In my views I have just these:
lib/my_app_web/views
├── error_helpers.ex
├── error_view.ex
├── layout_view.ex
└── page_view.ex