refactor: sjednoceni skeleton loading a animaci napric vsemi moduly

- AttendanceAdmin: full-page skeleton misto castecneho (header+filtry+karty+tabulka)
- AttendanceHistory: fond karta vzdy v DOM se skeleton behem loading (fix pozdni animace)
- Trips: skeleton odpovida realne strukture (stat cards + tabulka misto circle rows)
- ReceivedInvoices: 3 skeleton radky zvyseny na 5 (konzistence)
- ProjectDetail: notes spinner nahrazen skeleton bloky
- Settings: 2FA text "Nacitani..." nahrazen skeleton line
- Sjednoceny animation delays: 0.05/0.12 opraveny na standardni 0.1/0.15
- OffersTemplates: pridany chybejici stagger delays
- Invoices: opraveny duplicitni delays na spravny stagger
- Attendance sidebar: delay snizen na 0.1 (soucasne s hlavnim obsahem)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 20:26:34 +01:00
parent b2c2ab6e7a
commit 36a864c852
12 changed files with 121 additions and 103 deletions

View File

@@ -255,15 +255,27 @@ export default function AttendanceHistory() {
</motion.div>
{/* Monthly Fund Card */}
{!loading && data.monthly_fund && (
<motion.div
className="admin-card"
style={{ marginBottom: '1.5rem' }}
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.4, delay: 0.15 }}
>
<div className="admin-card-body">
<motion.div
className="admin-card"
style={{ marginBottom: '1.5rem' }}
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.4, delay: 0.15 }}
>
<div className="admin-card-body">
{loading && (
<div className="admin-skeleton" style={{ gap: '0.5rem' }}>
<div className="admin-skeleton-row" style={{ gap: '1rem' }}>
<div className="admin-skeleton-line" style={{ width: '48px', height: '48px', borderRadius: '12px', flexShrink: 0 }} />
<div style={{ flex: 1 }}>
<div className="admin-skeleton-line w-1/2" style={{ marginBottom: '0.5rem' }} />
<div className="admin-skeleton-line w-full" style={{ height: '6px', borderRadius: '3px' }} />
<div className="admin-skeleton-line w-1/3" style={{ height: '10px', marginTop: '0.5rem' }} />
</div>
</div>
</div>
)}
{!loading && data.monthly_fund && (
<div style={{ display: 'flex', alignItems: 'center', gap: '1rem', flexWrap: 'wrap' }}>
<div className="admin-stat-icon info">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
@@ -310,9 +322,14 @@ export default function AttendanceHistory() {
</div>
</div>
</div>
</div>
</motion.div>
)}
)}
{!loading && !data.monthly_fund && (
<div className="text-muted" style={{ fontSize: '0.875rem', textAlign: 'center', padding: '0.5rem 0' }}>
Fond měsíce není k dispozici
</div>
)}
</div>
</motion.div>
{/* Records Table */}
<motion.div