38 lines
2.7 KiB
Plaintext
38 lines
2.7 KiB
Plaintext
component VerifyPhone {
|
|
props {
|
|
kind = "phone"
|
|
action = "/api/auth/verify/phone"
|
|
schema = "auth-verification-token"
|
|
token = ""
|
|
identifier = ""
|
|
title = "Verify your phone"
|
|
description = "Enter the verification token sent to your phone."
|
|
submitLabel = "Verify phone"
|
|
resendAction = "/api/auth/verification/request"
|
|
resendSchema = "auth-verification-request"
|
|
successMessage = "Your phone number has been verified."
|
|
color = "primary"
|
|
size = "md"
|
|
class = ""
|
|
}
|
|
view {
|
|
<section {...attrs} data-wrnexus-runtime="auth" class='w-full max-w-md rounded-[var(--wire-radius-lg)] border border-[var(--wire-color-border)] bg-[var(--wire-color-surface)] p-6 text-[var(--wire-color-text)] shadow-[var(--wire-shadow-2)] {class}'>
|
|
<h1 class="m-0 text-2xl font-semibold">{title}</h1>
|
|
<p class="mt-2 text-sm text-[var(--wire-color-muted)]">{description}</p>
|
|
<form method="post" action='{action}' data-schema='{schema}' novalidate class="mt-6 space-y-4">
|
|
<div class="space-y-1.5"><label for="auth-phone-token" class="block text-sm font-medium">Verification token</label><input id="auth-phone-token" name="token" value='{token}' autocomplete="one-time-code" inputmode="numeric" class="h-11 w-full rounded-[var(--wire-radius-sm)] border border-[var(--wire-color-border)] bg-[var(--wire-color-surface-2)] px-3" /><p data-error="token" class="m-0 min-h-4 text-xs text-[var(--wire-color-danger)]"></p></div>
|
|
<p data-error="_form" role="alert" class="m-0 hidden rounded-[var(--wire-radius-sm)] bg-[color-mix(in_srgb,var(--wire-color-danger)_10%,transparent)] p-3 text-sm text-[var(--wire-color-danger)]"></p>
|
|
<p data-success='{successMessage}' role="status" hidden class="m-0 rounded-[var(--wire-radius-sm)] bg-[color-mix(in_srgb,var(--wire-color-success)_10%,transparent)] p-3 text-sm text-[var(--wire-color-success)]">{successMessage}</p>
|
|
<button type="submit" class="h-11 w-full rounded-[var(--wire-radius-sm)] bg-[var(--wire-color-primary)] font-semibold text-white disabled:cursor-wait disabled:opacity-60">{submitLabel}</button>
|
|
</form>
|
|
<form method="post" action='{resendAction}' data-schema='{resendSchema}' novalidate class="mt-3">
|
|
<input type="hidden" name="type" value='{kind}' />
|
|
<input type="hidden" name="identifier" value='{identifier}' />
|
|
<p data-error="type" class="m-0 min-h-4 text-xs text-[var(--wire-color-danger)]"></p>
|
|
<p data-error="_form" role="alert" class="m-0 hidden text-xs text-[var(--wire-color-danger)]"></p>
|
|
<button type="submit" class="text-sm text-[var(--wire-color-primary)] hover:underline disabled:opacity-60">Send a new code</button>
|
|
</form>
|
|
</section>
|
|
}
|
|
}
|