/** * CommCoach Settings View * * Coaching-specific settings: reminders, email notifications, stats. * Voice/language settings are in user-level settings (/settings -> "Stimme & Sprache"). */ import React, { useState, useEffect, useCallback } from 'react'; import { Link } from 'react-router-dom'; import { useApiRequest } from '../../../hooks/useApi'; import { useInstanceId } from '../../../hooks/useCurrentInstance'; import { getProfileApi, updateProfileApi, type CoachingUserProfile, } from '../../../api/commcoachApi'; import styles from './CommcoachSettingsView.module.css'; export const CommcoachSettingsView: React.FC = () => { const { request } = useApiRequest(); const instanceId = useInstanceId(); const [profile, setProfile] = useState(null); const [loading, setLoading] = useState(true); const [saving, setSaving] = useState(false); const [error, setError] = useState(null); const [success, setSuccess] = useState(null); const [reminderEnabled, setReminderEnabled] = useState(false); const [reminderTime, setReminderTime] = useState('09:00'); const [emailEnabled, setEmailEnabled] = useState(true); useEffect(() => { if (!instanceId) return; const loadData = async () => { setLoading(true); try { const profileData = await getProfileApi(request, instanceId); setProfile(profileData); if (profileData) { setReminderEnabled(profileData.dailyReminderEnabled || false); setReminderTime(profileData.dailyReminderTime || '09:00'); setEmailEnabled(profileData.emailSummaryEnabled !== false); } } catch (err: any) { setError(err.message || 'Fehler beim Laden'); } finally { setLoading(false); } }; loadData(); }, [request, instanceId]); const handleSave = useCallback(async () => { if (!instanceId) return; setSaving(true); setError(null); setSuccess(null); try { const updated = await updateProfileApi(request, instanceId, { dailyReminderEnabled: reminderEnabled, dailyReminderTime: reminderTime, emailSummaryEnabled: emailEnabled, }); setProfile(updated); setSuccess('Einstellungen gespeichert'); setTimeout(() => setSuccess(null), 3000); } catch (err: any) { setError(err.message || 'Fehler beim Speichern'); } finally { setSaving(false); } }, [request, instanceId, reminderEnabled, reminderTime, emailEnabled]); if (loading) { return
Einstellungen werden geladen...
; } return (

Coaching-Einstellungen

{error &&
{error}
} {success &&
{success}
}

Stimme & Sprache

Stimme und Sprache werden zentral in den Benutzereinstellungen konfiguriert.

{}} style={{ fontSize: '0.85rem', color: 'var(--primary-color, #2563eb)' }}> Benutzereinstellungen oeffnen (Tab "Stimme & Sprache")

Erinnerungen

{reminderEnabled && (
setReminderTime(e.target.value)} />
)}
{profile && (

Statistik

{profile.totalSessions}Sessions gesamt
{profile.totalMinutes}Minuten gesamt
{profile.streakDays}Aktueller Streak
{profile.longestStreak}Laengster Streak
)}
); }; export default CommcoachSettingsView;