40 lines
998 B
Elixir
40 lines
998 B
Elixir
|
defmodule Bones73kWeb.UserLive.Settings do
|
||
|
use Bones73kWeb, :live_view
|
||
|
|
||
|
alias Bones73k.Accounts.User
|
||
|
|
||
|
@impl true
|
||
|
def mount(_params, session, socket) do
|
||
|
socket
|
||
|
|> assign_defaults(session)
|
||
|
|> alert_email_verified?()
|
||
|
|> live_okreply()
|
||
|
end
|
||
|
|
||
|
defp alert_email_verified?(socket) do
|
||
|
case socket.assigns.current_user do
|
||
|
%{confirmed_at: nil} ->
|
||
|
put_flash(socket, :warning, [
|
||
|
"Your email hasn't been confirmed, some areas may be restricted. Shall we ",
|
||
|
link("resend the verification email?",
|
||
|
to: Routes.user_confirmation_path(socket, :new),
|
||
|
class: "alert-link"
|
||
|
)
|
||
|
])
|
||
|
|
||
|
_ ->
|
||
|
socket
|
||
|
end
|
||
|
end
|
||
|
|
||
|
@impl true
|
||
|
def handle_info({:put_flash_message, {flash_type, msg}}, socket) do
|
||
|
socket |> put_flash(flash_type, msg) |> live_noreply()
|
||
|
end
|
||
|
|
||
|
@impl true
|
||
|
def handle_info({:clear_flash_message, flash_type}, socket) do
|
||
|
socket |> clear_flash(flash_type) |> live_noreply()
|
||
|
end
|
||
|
end
|