'use client'
import { useTheme } from '@/lib/ThemeContext'
import { lehrerThemen, AlertImportance } from '@/lib/AlertsContext'
import { InfoBox, TipBox, StepBox } from '../InfoBox'
// =============================================================================
// Step 1: Topic Selection
// =============================================================================
interface Step1Props {
selectedTopics: string[]
onToggleTopic: (name: string) => void
customTopic: { name: string; keywords: string }
onCustomTopicChange: (topic: { name: string; keywords: string }) => void
isDark: boolean
}
export function Step1TopicSelection({ selectedTopics, onToggleTopic, customTopic, onCustomTopicChange, isDark }: Step1Props) {
return (
Welche Themen interessieren Sie?
Waehlen Sie Themen, ueber die Sie informiert werden moechten
{lehrerThemen.map((topic) => {
const isSelected = selectedTopics.includes(topic.name)
return (
onToggleTopic(topic.name)}
className={`p-4 rounded-xl border-2 transition-all hover:scale-105 text-left ${isSelected ? 'border-amber-500 bg-amber-500/20 shadow-lg' : isDark ? 'border-white/10 bg-white/5 hover:bg-white/10 hover:border-white/20' : 'border-slate-200 bg-white hover:bg-slate-50 hover:border-slate-300'}`}>
{topic.icon}
{topic.name}
{topic.keywords.slice(0, 2).join(', ')}
{isSelected && (
)}
)
})}
)
}
// =============================================================================
// Step 2: Google Alerts Instructions
// =============================================================================
export function Step2Instructions({ selectedTopics, isDark }: { selectedTopics: string[]; isDark: boolean }) {
return (
Google Alerts einrichten
Google sendet Alerts per E-Mail - wir verarbeiten sie fuer Sie
Google Alerts versendet Benachrichtigungen per E-Mail an Ihr Konto. Sie richten einfach eine Weiterleitung ein - wir uebernehmen die Auswertung, Filterung und Zusammenfassung.
Besuchen Sie google.de/alerts und melden Sie sich mit Ihrem Google-Konto an.
Geben Sie Suchbegriffe ein (z.B. "{selectedTopics[0] || 'Bildungspolitik'}") und erstellen Sie Alerts.
Im naechsten Schritt richten Sie eine automatische Weiterleitung der Google Alert E-Mails an uns ein.
Sie koennen beliebig viele Google Alerts erstellen. Alle werden per E-Mail an Sie gesendet und durch die Weiterleitung automatisch verarbeitet.
)
}
// =============================================================================
// Step 3: Email Forwarding
// =============================================================================
export function Step3Forwarding({ rssFeedUrl, onRssFeedUrlChange, isDark }: { rssFeedUrl: string; onRssFeedUrlChange: (url: string) => void; isDark: boolean }) {
return (
E-Mail Weiterleitung einrichten
Leiten Sie Ihre Google Alert E-Mails automatisch an uns weiter
📧
E-Mail Weiterleitung
Empfohlen
Richten Sie in Gmail einen Filter ein, der Google Alert E-Mails automatisch weiterleitet.
Ihre Weiterleitungsadresse:
alerts@breakpilot.de
navigator.clipboard.writeText('alerts@breakpilot.de')} className="px-3 py-2 rounded-lg bg-amber-500 text-white text-sm hover:bg-amber-600 transition-all">Kopieren
So richten Sie die Weiterleitung in Gmail ein:
1. Oeffnen Sie Gmail → Einstellungen → Filter
2. Neuer Filter: Von "googlealerts-noreply@google.com"
3. Aktion: Weiterleiten an "alerts@breakpilot.de"
Sie koennen diesen Schritt auch ueberspringen und die Weiterleitung spaeter einrichten.
)
}
// =============================================================================
// Step 4: Notification Settings
// =============================================================================
interface Step4Props {
notificationFrequency: 'realtime' | 'hourly' | 'daily'
onFrequencyChange: (freq: 'realtime' | 'hourly' | 'daily') => void
minImportance: AlertImportance
onMinImportanceChange: (imp: AlertImportance) => void
selectedTopics: string[]
customTopic: { name: string; keywords: string }
rssFeedUrl: string
isDark: boolean
}
export function Step4Settings({ notificationFrequency, onFrequencyChange, minImportance, onMinImportanceChange, selectedTopics, customTopic, rssFeedUrl, isDark }: Step4Props) {
return (
Benachrichtigungen einstellen
Wie moechten Sie informiert werden?
Wie oft moechten Sie Alerts erhalten?
{([{ id: 'realtime', label: 'Sofort', icon: '⚡', desc: 'Bei jedem neuen Alert' }, { id: 'hourly', label: 'Stuendlich', icon: '🕐', desc: 'Zusammenfassung pro Stunde' }, { id: 'daily', label: 'Taeglich', icon: '📅', desc: 'Einmal am Tag' }] as const).map((freq) => (
onFrequencyChange(freq.id)}
className={`p-4 rounded-xl border-2 transition-all text-center ${notificationFrequency === freq.id ? 'border-amber-500 bg-amber-500/20' : isDark ? 'border-white/10 bg-white/5 hover:bg-white/10' : 'border-slate-200 bg-white hover:bg-slate-50'}`}>
{freq.icon}
{freq.label}
{freq.desc}
))}
Mindest-Wichtigkeit fuer Benachrichtigungen
{([{ id: 'KRITISCH', label: 'Kritisch' }, { id: 'DRINGEND', label: 'Dringend' }, { id: 'WICHTIG', label: 'Wichtig' }, { id: 'PRUEFEN', label: 'Pruefen' }, { id: 'INFO', label: 'Info' }] as const).map((imp) => (
onMinImportanceChange(imp.id as AlertImportance)}
className={`p-2 rounded-lg border-2 transition-all text-center text-xs ${minImportance === imp.id ? 'border-amber-500 bg-amber-500/20' : isDark ? 'border-white/10 bg-white/5 hover:bg-white/10' : 'border-slate-200 bg-white hover:bg-slate-50'}`}>
{imp.label}
))}
Sie erhalten nur Benachrichtigungen fuer Alerts mit dieser Wichtigkeit oder hoeher.
Ihre Einstellungen
- {selectedTopics.length + (customTopic.name ? 1 : 0)} Themen ausgewaehlt
- Benachrichtigungen: {notificationFrequency === 'realtime' ? 'Sofort' : notificationFrequency === 'hourly' ? 'Stuendlich' : 'Taeglich'}
- Mindest-Wichtigkeit: {minImportance}
{rssFeedUrl && - RSS-Feed verbunden }
)
}