| ... | ... | @@ -1,5 +1,6 @@ |
| 1 | 1 | import { createEffect, createResource, createSignal, For, onCleanup, onMount, Show } from "solid-js"; |
| 2 | 2 | import { authReason, authRequest } from "../auth.ts"; |
| 3 | import ArrowLeft from "lucide-solid/icons/arrow-left"; |
| 3 | 4 | import Stone from "lucide-solid/icons/stone"; |
| 4 | 5 | import githubIcon from "../sso/github.svg"; |
| 5 | 6 | import theme from "../sso/css/styles.css?inline"; |
| ... | ... | @@ -86,7 +87,7 @@ export function SignIn() { |
| 86 | 87 | <Show when={status.error || error()}><div class="alert-error pf-v5-c-alert" role="alert"><span class="pf-v5-c-alert__title">{status.error ? authReason(status.error) : error()}</span></div></Show> |
| 87 | 88 | <Show when={notice()}><div class="alert-info pf-v5-c-alert" role="status"><span class="pf-v5-c-alert__title">{notice()}</span></div></Show> |
| 88 | 89 | <Show when={!status.error} fallback={<button class="pf-v5-c-button pf-m-primary pf-m-block" onClick={() => refetch()}>try again</button>}> |
| 89 | | <Show when={!setup && status()?.providers?.length}> |
| 90 | <Show when={!setup && !passwordStep() && status()?.providers?.length}> |
| 90 | 91 | <div id="kc-social-providers" class="guest-providers"> |
| 91 | 92 | <For each={status()?.providers}>{(provider) => <a rel="external" data-provider={provider.id} class="pf-v5-c-button pf-m-primary pf-m-block" href={`/auth/guest/start/${provider.id}?next=${encodeURIComponent(params.get("next") ?? "")}`}>{provider.id === "astheno" ? <Stone size={18} aria-hidden="true" /> : <img src={githubIcon} width="18" height="18" alt="" />}<span>continue with {provider.name}</span></a>}</For> |
| 92 | 93 | </div> |
| ... | ... | @@ -94,7 +95,7 @@ export function SignIn() { |
| 94 | 95 | <div id="kc-form"><div id="kc-form-wrapper"> |
| 95 | 96 | <form id="kc-form-login" onSubmit={(event) => { event.preventDefault(); void complete(); }}> |
| 96 | 97 | <Show when={setup} fallback={ |
| 97 | | <Show when={!passwordStep()} fallback={<div class="sign-in-account"><span>{username()}</span><button type="button" onClick={() => { setPassword(""); setVisible(false); setError(""); setNotice(""); setPasswordStep(false); }}>change</button><input name="username" type="hidden" autocomplete="username" value={username()} /></div>}> |
| 98 | <Show when={!passwordStep()} fallback={<div class="sign-in-account"><button type="button" onClick={() => { setPassword(""); setVisible(false); setError(""); setNotice(""); setPasswordStep(false); }}><ArrowLeft size={18} aria-hidden="true" />back</button><h2>{username()}</h2><input name="username" type="hidden" autocomplete="username" value={username()} /></div>}> |
| 98 | 99 | <div class="pf-v5-c-form__group"> |
| 99 | 100 | <label for="username" class="pf-v5-c-form__label">username or email</label> |
| 100 | 101 | <input id="username" class="pf-v5-c-form-control" name="username" type="text" required autocomplete="username webauthn" value={username()} onInput={(event) => setUsername(event.currentTarget.value)} autofocus ref={(input) => queueMicrotask(() => input.focus())} /> |