Packages
phoenix_kit
1.7.78
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
Current section
Files
lib/phoenix_kit_web/live/dashboard/settings.ex
defmodule PhoenixKitWeb.Live.Dashboard.Settings do
@moduledoc """
Settings LiveView for PhoenixKit Dashboard.
Delegates all settings functionality to the `PhoenixKitWeb.Live.Components.UserSettings`
LiveComponent, which can also be used standalone in parent apps.
"""
use PhoenixKitWeb, :live_view
alias PhoenixKit.Users.Auth
alias PhoenixKit.Utils.Routes
@impl true
def mount(%{"token" => token}, _session, socket) do
socket =
case Auth.update_user_email(socket.assigns.phoenix_kit_current_user, token) do
:ok ->
socket
|> assign(:email_success_message, gettext("Email changed successfully."))
:error ->
socket
|> assign(
:email_error_message,
gettext("Email change link is invalid or it has expired.")
)
end
{:ok, push_navigate(socket, to: Routes.path("/dashboard/settings"))}
end
@impl true
def mount(_params, _session, socket) do
socket =
socket
|> assign(:page_title, gettext("Settings"))
|> assign_new(:email_success_message, fn -> nil end)
|> assign_new(:email_error_message, fn -> nil end)
{:ok, socket}
end
@impl true
def handle_info({:phoenix_kit_user_updated, updated_user}, socket) do
{:noreply, assign(socket, :phoenix_kit_current_user, updated_user)}
end
@impl Phoenix.LiveView
def render(assigns) do
~H"""
<PhoenixKitWeb.Layouts.dashboard {dashboard_assigns(assigns)}>
<div class="max-w-6xl mx-auto">
<%!-- Development Mode Notice --%>
<.dev_mailbox_notice class="mb-6 flex w-full sm:w-fit" />
<div class="mb-8">
<h1 class="text-3xl font-bold text-base-content mb-2">Settings</h1>
<p class="text-base-content/70">Manage your account settings and preferences</p>
</div>
<.live_component
module={PhoenixKitWeb.Live.Components.UserSettings}
id="dashboard-user-settings"
user={@phoenix_kit_current_user}
email_success_message={@email_success_message}
email_error_message={@email_error_message}
/>
</div>
</PhoenixKitWeb.Layouts.dashboard>
"""
end
end