backend-lehrer (5 files): - alerts_agent/db/repository.py (992 → 5), abitur_docs_api.py (956 → 3) - teacher_dashboard_api.py (951 → 3), services/pdf_service.py (916 → 3) - mail/mail_db.py (987 → 6) klausur-service (5 files): - legal_templates_ingestion.py (942 → 3), ocr_pipeline_postprocess.py (929 → 4) - ocr_pipeline_words.py (876 → 3), ocr_pipeline_ocr_merge.py (616 → 2) - KorrekturPage.tsx (956 → 6) website (5 pages): - mail (985 → 9), edu-search (958 → 8), mac-mini (950 → 7) - ocr-labeling (946 → 7), audit-workspace (871 → 4) studio-v2 (5 files + 1 deleted): - page.tsx (946 → 5), MessagesContext.tsx (925 → 4) - korrektur (914 → 6), worksheet-cleanup (899 → 6) - useVocabWorksheet.ts (888 → 3) - Deleted dead page-original.tsx (934 LOC) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
57 lines
2.2 KiB
TypeScript
57 lines
2.2 KiB
TypeScript
'use client'
|
||
|
||
import { INTERNET_REQUIRED_ACTIONS } from '../constants'
|
||
|
||
export default function InternetStatus({ internet }: { internet?: boolean }) {
|
||
return (
|
||
<div className={`rounded-xl border p-4 mb-6 ${
|
||
internet
|
||
? 'bg-green-50 border-green-200'
|
||
: 'bg-amber-50 border-amber-200'
|
||
}`}>
|
||
<div className="flex items-start justify-between">
|
||
<div className="flex gap-3">
|
||
<span className="text-2xl">{internet ? '🌐' : '📴'}</span>
|
||
<div>
|
||
<h3 className={`font-semibold ${internet ? 'text-green-900' : 'text-amber-900'}`}>
|
||
Internet: {internet ? 'Verbunden' : 'Offline (Normalbetrieb)'}
|
||
</h3>
|
||
<p className={`text-sm mt-1 ${internet ? 'text-green-700' : 'text-amber-700'}`}>
|
||
{internet
|
||
? 'Mac Mini hat Internet-Zugang. LLM-Downloads und Updates möglich.'
|
||
: 'Mac Mini arbeitet offline. Für bestimmte Aktionen muss Internet aktiviert werden.'}
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<span className={`px-3 py-1 rounded-full text-sm font-semibold ${
|
||
internet
|
||
? 'bg-green-100 text-green-800'
|
||
: 'bg-amber-100 text-amber-800'
|
||
}`}>
|
||
{internet ? 'Online' : 'Offline'}
|
||
</span>
|
||
</div>
|
||
|
||
{!internet && (
|
||
<div className="mt-4 pt-4 border-t border-amber-200">
|
||
<h4 className="font-medium text-amber-900 mb-2">⚠️ Diese Aktionen benötigen Internet:</h4>
|
||
<div className="grid grid-cols-1 md:grid-cols-2 gap-2">
|
||
{INTERNET_REQUIRED_ACTIONS.map((item, idx) => (
|
||
<div key={idx} className="flex items-start gap-2 text-sm">
|
||
<span className="text-amber-600 mt-0.5">•</span>
|
||
<div>
|
||
<span className="font-medium text-amber-800">{item.action}</span>
|
||
<span className="text-amber-600 ml-1">– {item.description}</span>
|
||
</div>
|
||
</div>
|
||
))}
|
||
</div>
|
||
<p className="text-xs text-amber-600 mt-3 italic">
|
||
💡 Tipp: Internet am Router/Switch nur bei Bedarf für den Mac Mini aktivieren.
|
||
</p>
|
||
</div>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|