Add simple sidebar
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Rafael Epplée 2025-12-03 21:25:39 +01:00
parent 3d4020cf27
commit 2f6d5ff818
No known key found for this signature in database
GPG key ID: B4EFE6DC59FAE118
6 changed files with 162 additions and 67 deletions

View file

@ -10,6 +10,7 @@ defmodule MvWeb.Layouts do
use MvWeb, :html
use Gettext, backend: MvWeb.Gettext
import MvWeb.Layouts.Navbar
import MvWeb.Layouts.Sidebar
embed_templates "layouts/*"
@ -39,20 +40,39 @@ defmodule MvWeb.Layouts do
slot :inner_block, required: true
def app(assigns) do
club_name = get_club_name()
assigns = assign(assigns, :club_name, club_name)
~H"""
<%= if @current_user do %>
<.navbar current_user={@current_user} />
<% end %>
<main class="px-4 py-20 sm:px-6 lg:px-16">
<div class="mx-auto max-full space-y-4">
{render_slot(@inner_block)}
<div class="drawer lg:drawer-open">
<input id="main-drawer" type="checkbox" class="drawer-toggle" />
<div class="drawer-content">
<%= if @current_user do %>
<.navbar current_user={@current_user} />
<% end %>
<main class="px-4 py-20 sm:px-6 lg:px-16">
<div class="mx-auto space-y-4 max-full">
{render_slot(@inner_block)}
</div>
</main>
</div>
</main>
<.sidebar current_user={@current_user} club_name={@club_name} />
</div>
<.flash_group flash={@flash} />
"""
end
# Helper function to get club name from settings
# Falls back to "Mitgliederverwaltung" if settings can't be loaded
defp get_club_name do
case Mv.Membership.get_settings() do
{:ok, settings} -> settings.club_name
_ -> "Mitgliederverwaltung"
end
end
@doc """
Shows the flash group with standard titles and content.
@ -65,7 +85,7 @@ defmodule MvWeb.Layouts do
def flash_group(assigns) do
~H"""
<div id={@id} aria-live="polite" class="toast toast-top toast-end z-50 flex flex-col gap-2">
<div id={@id} aria-live="polite" class="z-50 flex flex-col gap-2 toast toast-top toast-end">
<.flash kind={:success} flash={@flash} />
<.flash kind={:warning} flash={@flash} />
<.flash kind={:info} flash={@flash} />