Packages

phoenix_kit

1.2.5
1.7.208 1.7.207 1.7.206 1.7.205 1.7.204 1.7.203 1.7.202 1.7.201 1.7.200 1.7.199 1.7.198 1.7.197 1.7.196 1.7.194 1.7.193 1.7.192 1.7.191 1.7.190 1.7.189 1.7.187 1.7.186 1.7.185 1.7.184 1.7.183 1.7.182 1.7.181 1.7.180 1.7.179 1.7.178 1.7.177 1.7.176 1.7.175 1.7.174 1.7.173 1.7.172 1.7.171 1.7.170 1.7.169 1.7.168 1.7.167 1.7.166 1.7.165 1.7.164 1.7.162 1.7.161 1.7.160 1.7.159 1.7.157 1.7.156 1.7.155 1.7.154 1.7.153 1.7.152 1.7.151 1.7.150 1.7.149 1.7.146 1.7.145 1.7.144 1.7.143 1.7.138 1.7.133 1.7.132 1.7.131 1.7.130 1.7.128 1.7.126 1.7.125 1.7.121 1.7.120 1.7.119 1.7.118 1.7.117 1.7.116 1.7.115 1.7.114 1.7.113 1.7.112 1.7.111 1.7.110 1.7.109 1.7.108 1.7.107 1.7.106 1.7.105 1.7.104 1.7.103 1.7.102 1.7.101 1.7.100 1.7.99 1.7.98 1.7.97 1.7.96 1.7.95 1.7.94 1.7.93 1.7.92 1.7.91 1.7.90 1.7.89 1.7.88 1.7.87 1.7.86 1.7.85 1.7.84 1.7.83 1.7.82 1.7.81 1.7.80 1.7.79 1.7.78 1.7.77 1.7.76 1.7.75 1.7.74 1.7.71 1.7.70 1.7.69 1.7.66 1.7.65 1.7.64 1.7.63 1.7.62 1.7.61 1.7.59 1.7.58 1.7.57 1.7.56 1.7.55 1.7.54 1.7.53 1.7.52 1.7.51 1.7.49 1.7.44 1.7.43 1.7.42 1.7.41 1.7.39 1.7.38 1.7.37 1.7.36 1.7.34 1.7.33 1.7.31 1.7.30 1.7.29 1.7.28 1.7.27 1.7.26 1.7.25 1.7.24 1.7.23 1.7.22 1.7.21 1.7.20 1.7.19 1.7.18 1.7.17 1.7.16 1.7.15 1.7.14 1.7.13 1.7.12 1.7.11 1.7.10 1.7.9 1.7.8 1.7.7 1.7.6 1.7.5 1.7.4 1.7.3 1.7.2 1.7.1 1.7.0 1.6.20 1.6.19 1.6.18 1.6.17 1.6.16 1.6.15 1.6.14 1.6.13 1.6.12 1.6.11 1.6.10 1.6.9 1.6.8 1.6.7 1.6.6 1.6.5 1.6.4 1.6.3 1.5.2 1.5.1 1.5.0 1.4.9 1.4.8 1.4.7 1.4.6 1.4.5 1.4.4 1.4.3 1.4.2 1.4.1 1.4.0 1.3.2 1.3.1 1.3.0 1.2.10 1.2.9 1.2.8 1.2.7 1.2.5 1.2.4 1.2.2 1.2.1 1.2.0 1.1.0 1.0.0

A foundation for building Elixir Phoenix apps — SaaS, social networks, ERP systems, marketplaces, and more

Current section

Files

Jump to
phoenix_kit lib phoenix_kit_web components layouts app.html.heex
Raw

lib/phoenix_kit_web/components/layouts/app.html.heex

<%!--
PhoenixKit App Layout Example
This layout demonstrates how to access PhoenixKit authentication data
within your application layouts. This example shows both traditional
and scope-based approaches for accessing user information.
--%>
<%!-- Only show header on non-admin pages --%>
<%!--= if not String.contains?(assigns[:current_path] || "", "/admin/") do %>
<header class="px-4 sm:px-6 lg:px-8">
<div class="flex items-center justify-between border-b border-zinc-100 py-3 text-sm">
<div class="flex items-center gap-4">
<a href="/" class="text-lg font-semibold">
PhoenixKit
</a>
<p class="bg-blue-50 text-blue-700 rounded-full px-2 font-medium leading-6">
v{Application.spec(:phoenix_kit, :vsn)}
</p>
</div>
<div class="flex items-center gap-2 text-sm text-zinc-600">
<%= if assigns[:phoenix_kit_current_scope] && PhoenixKit.Users.Auth.Scope.authenticated?(@phoenix_kit_current_scope) do %>
<span class="bg-green-100 text-green-800 px-2 py-1 rounded">
Logged in as: {PhoenixKit.Users.Auth.Scope.user_email(@phoenix_kit_current_scope)}
</span>
<% else %>
<span class="bg-gray-100 text-gray-600 px-2 py-1 rounded">
Not authenticated
</span>
<% end %>
<%!--
Legacy option: Basic user check (backwards compatibility)
If you're still using :phoenix_kit_mount_current_user, this approach works:
<%= if @phoenix_kit_current_user do %>
<span class="bg-green-100 text-green-800 px-2 py-1 rounded">
Logged in as: {@phoenix_kit_current_user.email}
</span>
<% else %>
<span class="bg-gray-100 text-gray-600 px-2 py-1 rounded">
Not authenticated
</span>
<% end %>
To use scope approach, update your router:
live_session :default,
layout: {MyAppWeb.Layouts, :app},
on_mount: [{PhoenixKitWeb.Users.Auth, :phoenix_kit_mount_current_scope}] do
# your routes
end
Benefits of scope approach:
- Better encapsulation of authentication state
- Explicit authentication checks
- Ready for future extensions (roles, permissions, etc.)
- Type safety with proper struct
</div>
</div>
</header>
<% end %>
<main class="px-4 sm:px-6 lg:px-8">
<div class="mx-auto max-w-2xl">
<.flash_group flash={@flash} />
{@inner_content}
</div>
</main>--%>
{@inner_content}