photum/frontend/components/LoadingScreen.tsx
NANDO9322 a6ba63203a feat(agenda): Implementação completa da Importação de Agenda e melhorias de UX
- Backend: Implementada lógica de importação de Agenda (Upsert) em `internal/agenda`.
- Backend: Criadas queries SQL para busca de FOT e Tipos de Evento.
- Frontend: Adicionada aba de Importação de Agenda em `ImportData.tsx`.
- Frontend: Implementado Parser de Excel para Agenda com tratamento de datas.
- UX: Adicionada Barra de Rolagem Superior Sincronizada na Tabela de Eventos.
- UX: Implementado `LoadingScreen` global unificado (Auth + DataContext).
- Perf: Adicionada Paginação no `EventTable` para resolver travamentos com grandes listas.
- Security: Proteção de rotas de importação (RequireWriteAccess).
2026-02-02 12:10:13 -03:00

21 lines
931 B
TypeScript

import React from 'react';
export const LoadingScreen: React.FC = () => {
return (
<div className="fixed inset-0 bg-white z-50 flex flex-col items-center justify-center">
<div className="relative w-20 h-20">
{/* Animated Rings */}
<div className="absolute inset-0 border-4 border-gray-100 rounded-full"></div>
<div className="absolute inset-0 border-4 border-brand-gold rounded-full border-t-transparent animate-spin"></div>
{/* Logo or Icon in Center */}
<div className="absolute inset-0 flex items-center justify-center">
<div className="w-8 h-8 bg-brand-black rounded-sm transform rotate-45 flex items-center justify-center">
<div className="w-3 h-3 bg-white rounded-full"></div>
</div>
</div>
</div>
<p className="mt-4 text-gray-500 text-sm font-medium animate-pulse">Carregando...</p>
</div>
);
};