Packages

Multi-surface application runtime for Elixir. One TEA module renders to terminal, browser (LiveView), SSH, and MCP (agents). 30+ widgets, flexbox + CSS grid, AI agent runtime, distributed swarm with CRDTs, time-travel debugging, session recording, sandboxed REPL, and agentic commerce.

Current section

Files

Jump to
raxol lib raxol_web live login_live.ex
Raw

lib/raxol_web/live/login_live.ex

defmodule RaxolWeb.LoginLive do
use RaxolWeb, :live_view
alias Raxol.Accounts
@impl true
def mount(_params, _session, socket) do
{:ok,
assign(socket,
username: "",
password: "",
error: nil
)}
end
@impl true
def handle_event(
"login",
%{"username" => username, "password" => password},
socket
) do
case Accounts.authenticate_user(username, password) do
{:ok, _user} ->
{:noreply,
socket
|> put_flash(:info, "Login attempt successful. Redirecting...")
|> redirect(to: "/")}
{:error, _reason} ->
{:noreply,
assign(socket,
error: "Invalid username or password",
password: ""
)}
end
end
@impl true
def handle_event(
"validate",
%{"username" => username, "password" => password},
socket
) do
{:noreply,
assign(socket,
username: username,
password: password,
error: nil
)}
end
end