Files
gitlab-instance-0a899031_no…/app/components/HomeBootOverlay.tsx
2026-03-27 18:20:36 -05:00

48 lines
1.5 KiB
TypeScript

"use client";
type HomeBootOverlayProps = {
visible: boolean;
/** 默认:正在同步会员状态… */
subtitle?: string;
};
/**
* 全屏加载(登录验证、首屏等按需使用)
*/
export function HomeBootOverlay({ visible, subtitle }: HomeBootOverlayProps) {
if (!visible) return null;
const line = subtitle ?? "正在同步会员状态…";
return (
<div
className="fixed inset-0 z-[200] flex flex-col items-center justify-center gap-6 bg-[var(--background)]/92 backdrop-blur-md"
aria-busy="true"
aria-live="polite"
>
<div className="relative flex h-20 w-20 items-center justify-center">
<div
className="absolute inset-0 animate-spin rounded-full border-2 border-amber-500/20 border-t-amber-500"
style={{ animationDuration: "1.05s" }}
/>
<div
className="absolute inset-2 animate-spin rounded-full border-2 border-transparent border-b-amber-400/50"
style={{ animationDuration: "0.75s", animationDirection: "reverse" }}
/>
<span
className="animate__animated animate__pulse animate__infinite text-3xl drop-shadow-sm"
aria-hidden
>
🌍
</span>
</div>
<div className="flex flex-col items-center gap-1 px-6 text-center">
<p className="text-base font-semibold tracking-wide text-[var(--foreground)]">
</p>
<p className="text-sm text-[var(--muted-foreground)]">{line}</p>
</div>
</div>
);
}