mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-07-02 10:33:00 +08:00
32 lines
1.4 KiB
TypeScript
32 lines
1.4 KiB
TypeScript
const loadingDotAnimationDelays = ['0s', '0.15s', '0.3s'];
|
|
|
|
export default function AuthLoadingScreen() {
|
|
return (
|
|
<div className="relative flex min-h-screen items-center justify-center overflow-hidden bg-background p-4">
|
|
<div aria-hidden className="pointer-events-none absolute inset-0">
|
|
<div className="absolute -top-40 left-1/2 h-[36rem] w-[36rem] -translate-x-1/2 rounded-full bg-primary/10 blur-3xl" />
|
|
</div>
|
|
|
|
<div className="relative text-center" role="status" aria-live="polite">
|
|
<div className="mb-5 flex justify-center">
|
|
<div className="flex h-16 w-16 items-center justify-center rounded-2xl bg-gradient-to-br from-primary to-primary/80 shadow-lg shadow-primary/25 ring-1 ring-inset ring-white/20">
|
|
<img src="/logo.svg" alt="CloudCLI" className="h-9 w-9" />
|
|
</div>
|
|
</div>
|
|
|
|
<h1 className="mb-4 font-serif text-2xl font-bold tracking-tight text-foreground">CloudCLI</h1>
|
|
<p className="sr-only">Loading authentication state…</p>
|
|
<div aria-hidden className="flex items-center justify-center gap-2">
|
|
{loadingDotAnimationDelays.map((delay) => (
|
|
<div
|
|
key={delay}
|
|
className="h-2 w-2 animate-bounce rounded-full bg-primary"
|
|
style={{ animationDelay: delay }}
|
|
/>
|
|
))}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|