34 lines
1.1 KiB
Elixir
34 lines
1.1 KiB
Elixir
|
|
defmodule PostlandWeb.UserLoginLive do
|
||
|
|
use PostlandWeb, :live_view
|
||
|
|
|
||
|
|
def render(assigns) do
|
||
|
|
~H"""
|
||
|
|
<div class="mx-auto max-w-sm">
|
||
|
|
<.header class="text-center">
|
||
|
|
Log in to account
|
||
|
|
</.header>
|
||
|
|
|
||
|
|
<.simple_form for={@form} id="login_form" action={~p"/users/log_in"} phx-update="ignore">
|
||
|
|
<.input field={@form[:username]} type="text" label="Username" required />
|
||
|
|
<.input field={@form[:password]} type="password" label="Password" required />
|
||
|
|
|
||
|
|
<:actions>
|
||
|
|
<.input field={@form[:remember_me]} type="checkbox" label="Keep me logged in" />
|
||
|
|
</:actions>
|
||
|
|
<:actions>
|
||
|
|
<.button phx-disable-with="Logging in..." class="w-full">
|
||
|
|
Log in <span aria-hidden="true">→</span>
|
||
|
|
</.button>
|
||
|
|
</:actions>
|
||
|
|
</.simple_form>
|
||
|
|
</div>
|
||
|
|
"""
|
||
|
|
end
|
||
|
|
|
||
|
|
def mount(_params, _session, socket) do
|
||
|
|
username = Phoenix.Flash.get(socket.assigns.flash, :username)
|
||
|
|
form = to_form(%{"username" => username}, as: "user")
|
||
|
|
{:ok, assign(socket, form: form), temporary_assigns: [form: form]}
|
||
|
|
end
|
||
|
|
end
|