Add top navigation
This commit is contained in:
@@ -11,4 +11,13 @@ defmodule MusicLibraryWeb.Layouts do
|
|||||||
use MusicLibraryWeb, :html
|
use MusicLibraryWeb, :html
|
||||||
|
|
||||||
embed_templates "layouts/*"
|
embed_templates "layouts/*"
|
||||||
|
|
||||||
|
@base_classes "inline-flex items-center border-b-2 px-1 pt-1 text-sm font-medium"
|
||||||
|
def nav_link_class(current_section, section) when current_section == section do
|
||||||
|
[@base_classes, "border-zinc-500 text-gray-900"]
|
||||||
|
end
|
||||||
|
|
||||||
|
def nav_link_class(_current_section, _section) do
|
||||||
|
[@base_classes, "border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700"]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,3 +1,20 @@
|
|||||||
|
<nav class="bg-white shadow">
|
||||||
|
<div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
|
||||||
|
<div class="flex h-16 justify-between">
|
||||||
|
<div class="flex">
|
||||||
|
<div class="ml-6 flex space-x-8">
|
||||||
|
<!-- Current: "border-indigo-500 text-gray-900", Default: "border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700" -->
|
||||||
|
<a href="/" class={nav_link_class(assigns[:nav_section], :dashboard)}>
|
||||||
|
Dashboard
|
||||||
|
</a>
|
||||||
|
<a href={~p"/records"} class={nav_link_class(assigns[:nav_section], :records)}>
|
||||||
|
Records
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
<main class="px-4 py-20 max-sm:py-4 sm:px-6 lg:px-8">
|
<main class="px-4 py-20 max-sm:py-4 sm:px-6 lg:px-8">
|
||||||
<div class="mx-auto max-w-5xl">
|
<div class="mx-auto max-w-5xl">
|
||||||
<.flash_group flash={@flash} />
|
<.flash_group flash={@flash} />
|
||||||
|
|||||||
@@ -6,6 +6,6 @@ defmodule MusicLibraryWeb.StatsController do
|
|||||||
def index(conn, _params) do
|
def index(conn, _params) do
|
||||||
records_count = Records.count_records()
|
records_count = Records.count_records()
|
||||||
record = Records.get_latest_record!()
|
record = Records.get_latest_record!()
|
||||||
render(conn, :index, records_count: records_count, record: record)
|
render(conn, :index, records_count: records_count, record: record, nav_section: :dashboard)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
<div>
|
<div>
|
||||||
<h1 class="text-base font-semibold leading-6 text-gray-900">Music Library</h1>
|
|
||||||
|
|
||||||
<dl class="mt-5 grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3">
|
<dl class="mt-5 grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3">
|
||||||
<div class="relative overflow-hidden rounded-lg bg-white px-4 pb-12 pt-5 shadow sm:px-6 sm:pt-6">
|
<div class="relative overflow-hidden rounded-lg bg-white px-4 pb-12 pt-5 shadow sm:px-6 sm:pt-6">
|
||||||
<dt>
|
<dt>
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ defmodule MusicLibraryWeb.RecordLive.Index do
|
|||||||
|
|
||||||
{:ok,
|
{:ok,
|
||||||
socket
|
socket
|
||||||
|
|> assign(:nav_section, :records)
|
||||||
|> assign(:record_list_params, record_list_params)
|
|> assign(:record_list_params, record_list_params)
|
||||||
|> stream(:records, records)}
|
|> stream(:records, records)}
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ defmodule MusicLibraryWeb.RecordLive.Show do
|
|||||||
def handle_params(%{"id" => id}, _, socket) do
|
def handle_params(%{"id" => id}, _, socket) do
|
||||||
{:noreply,
|
{:noreply,
|
||||||
socket
|
socket
|
||||||
|
|> assign(:nav_section, :records)
|
||||||
|> assign(:page_title, page_title(socket.assigns.live_action))
|
|> assign(:page_title, page_title(socket.assigns.live_action))
|
||||||
|> assign(:record, Records.get_record!(id))}
|
|> assign(:record, Records.get_record!(id))}
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user