Packages

phoenix_kit

2.22.7
2.22.7 2.22.6 2.22.5 2.22.4 2.22.3 2.22.2 2.22.1 2.22.0 2.21.5 2.21.4 2.21.3 2.21.2 2.21.1 2.21.0 2.20.0 2.19.0 2.18.1 2.18.0 2.17.0 2.16.0 2.15.1 2.15.0 2.14.2 2.14.1 2.14.0 2.13.19 2.13.18 2.13.17 2.13.16 2.13.15 2.13.13 2.13.12 2.13.11 2.13.10 2.13.9 2.13.8 2.13.7 2.13.6 2.13.5 2.13.4 2.13.3 2.13.2 2.13.1 2.13.0 2.12.1 2.12.0 2.11.0 2.10.0 2.9.0 2.8.1 2.8.0 2.7.0 2.6.0 2.5.0 2.4.0 2.3.0 2.2.0 2.1.0 2.0.1 2.0.0 1.7.236 1.7.235 1.7.234 1.7.233 1.7.232 1.7.231 1.7.230 1.7.229 1.7.228 1.7.227 1.7.226 1.7.225 1.7.224 1.7.223 1.7.222 1.7.221 1.7.220 1.7.219 1.7.218 1.7.217 1.7.216 1.7.215 1.7.214 1.7.213 1.7.212 1.7.211 1.7.210 1.7.209 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 users confirmation_instructions.html.heex
Raw

lib/phoenix_kit_web/users/confirmation_instructions.html.heex

<PhoenixKitWeb.Components.AuthPageWrapper.auth_page_wrapper
flash={@flash}
phoenix_kit_current_scope={assigns[:phoenix_kit_current_scope]}
page_title={gettext("Resend confirmation")}
current_path={assigns[:url_path] || "/users/confirm"}
dev_mailbox_message={gettext("confirmation emails")}
>
<%= if @awaiting_confirmation? do %>
<h1 class="text-2xl font-bold text-center mb-2">
{gettext("Confirm your email to continue")}
</h1>
<p class="text-center text-base-content/60 text-sm mb-1">
{gettext(
"We emailed a confirmation link to %{email}. Open it to continue — you'll land back in the app automatically, no need to come back to this page.",
email: @phoenix_kit_current_user.email
)}
</p>
<p class="text-center text-base-content/40 text-xs mb-6">
<%= if @confirmation_sent_at do %>
{gettext("Sent")}
<.time_ago
datetime={@confirmation_sent_at}
class="text-base-content/40 text-xs"
id="confirmation-sent-at"
/>
<% else %>
{gettext("No confirmation email on record — use Resend below.")}
<% end %>
</p>
<% else %>
<h1 class="text-2xl font-bold text-center mb-2">
{gettext("No confirmation instructions received?")}
</h1>
<p class="text-center text-base-content/60 text-sm mb-6">
{gettext("We'll send a new confirmation link to your inbox")}
</p>
<% end %>
<.form for={@form} id="resend_confirmation_form" phx-submit="send_instructions">
<fieldset class="fieldset min-w-0">
<legend class="fieldset-legend sr-only">{gettext("Resend Confirmation")}</legend>
<%= if @awaiting_confirmation? do %>
<div>
<label class="label mb-2">
<span class="font-semibold">{gettext("Email")}</span>
</label>
<p class="text-base-content/80 font-medium break-all">
{@form[:email].value}
</p>
<input type="hidden" name="user[email]" value={@form[:email].value} />
</div>
<% else %>
<.input field={@form[:email]} type="email" label={gettext("Email")} required />
<% end %>
<button
type="submit"
phx-disable-with={gettext("Sending...")}
class="btn btn-primary w-full mt-4 transition-all hover:scale-[1.02] active:scale-[0.98]"
>
{gettext("Resend email")}
</button>
</fieldset>
</.form>
<%= if @awaiting_confirmation? do %>
<div class="text-center mt-4">
<button
type="button"
phx-click="toggle_change_email"
class="text-sm font-semibold text-primary hover:underline"
>
{if @change_email?, do: gettext("Cancel"), else: gettext("Wrong email? Change it")}
</button>
</div>
<%= if @change_email? do %>
<.form
for={@email_form}
id="change_email_form"
phx-submit="update_email"
phx-change="validate_email_change"
class="mt-4"
>
<fieldset class="fieldset min-w-0">
<legend class="fieldset-legend sr-only">{gettext("Change Email")}</legend>
<.input field={@email_form[:email]} type="email" label={gettext("New email")} required />
<.input
field={@email_form[:current_password]}
name="current_password"
id="change-email-current-password"
type="password"
label={gettext("Current password")}
value={@email_form_current_password}
required
/>
<p class="text-xs text-base-content/50 mt-1">
{gettext(
"We ask for your password again as a safety check before moving your account to a new email address."
)}
</p>
<button
type="submit"
phx-disable-with={gettext("Updating...")}
class="btn btn-secondary w-full mt-4"
>
{gettext("Update email & resend confirmation")}
</button>
</fieldset>
</.form>
<% end %>
<% end %>
<div class="text-center mt-4 text-sm">
<%= if @awaiting_confirmation? do %>
<.link
href={Routes.path("/users/log-out")}
method="delete"
class="font-semibold text-primary hover:underline"
>
{gettext("Log out")}
</.link>
<% else %>
<.link
href={Routes.path("/users/register")}
class="font-semibold text-primary hover:underline"
>
{gettext("Register")}
</.link>
<span class="mx-2 text-base-content/40">|</span>
<.link
href={Routes.path("/users/log-in")}
class="font-semibold text-primary hover:underline"
>
{gettext("Log in")}
</.link>
<% end %>
</div>
</PhoenixKitWeb.Components.AuthPageWrapper.auth_page_wrapper>