39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
'use client';
|
||
|
||
import { Loader2 } from 'lucide-react';
|
||
import { Button } from '@/components/ui/button';
|
||
|
||
export function AppBootstrapScreen({
|
||
error,
|
||
onRetry
|
||
}: {
|
||
error?: string | null;
|
||
onRetry?: () => void;
|
||
}) {
|
||
return (
|
||
<div className="fixed inset-0 z-[120] flex min-h-screen flex-col items-center justify-center bg-white px-6">
|
||
{error ? (
|
||
<>
|
||
<p className="max-w-md text-center text-base font-medium text-[#101828]">{error}</p>
|
||
<p className="mt-2 max-w-sm text-center text-sm text-[#667085]">
|
||
Сервер авторизации временно недоступен. Обычно помогает повтор через несколько секунд.
|
||
</p>
|
||
{onRetry ? (
|
||
<Button className="mt-6 rounded-xl" onClick={onRetry}>
|
||
Повторить подключение
|
||
</Button>
|
||
) : null}
|
||
</>
|
||
) : (
|
||
<>
|
||
<Loader2 className="h-10 w-10 animate-spin text-[#3390ec]" aria-hidden />
|
||
<p className="mt-5 text-base font-medium text-[#101828]">Подключение к серверу</p>
|
||
<p className="mt-2 max-w-sm text-center text-sm text-[#667085]">
|
||
Подготавливаем ваш профиль и сервисы. Это займёт несколько секунд.
|
||
</p>
|
||
</>
|
||
)}
|
||
</div>
|
||
);
|
||
}
|