import React, { useState, useEffect, useCallback } from 'react'; import { useCurrentInstance } from '../../../hooks/useCurrentInstance'; import * as teamsbotApi from '../../../api/teamsbotApi'; import type { TeamsbotConfig, ConfigUpdateRequest } from '../../../api/teamsbotApi'; import styles from './Teamsbot.module.css'; /** * TeamsbotSettingsView - Bot configuration for a feature instance. */ export const TeamsbotSettingsView: React.FC = () => { const { instance } = useCurrentInstance(); const instanceId = instance?.id || ''; const [, setConfig] = useState(null); const [loading, setLoading] = useState(true); const [saving, setSaving] = useState(false); const [error, setError] = useState(null); const [successMsg, setSuccessMsg] = useState(null); // Form state const [formData, setFormData] = useState({}); const _loadConfig = useCallback(async () => { if (!instanceId) return; try { setLoading(true); const result = await teamsbotApi.getConfig(instanceId); setConfig(result.config); setFormData(result.config); setError(null); } catch (err: any) { setError(err.message || 'Fehler beim Laden der Konfiguration'); } finally { setLoading(false); } }, [instanceId]); useEffect(() => { _loadConfig(); }, [_loadConfig]); const _handleSave = async () => { if (!instanceId) return; setSaving(true); setError(null); setSuccessMsg(null); try { const result = await teamsbotApi.updateConfig(instanceId, formData); setConfig(result.config); setFormData(result.config); setSuccessMsg('Konfiguration gespeichert'); setTimeout(() => setSuccessMsg(null), 3000); } catch (err: any) { setError(err.message || 'Fehler beim Speichern'); } finally { setSaving(false); } }; const _updateField = (field: keyof ConfigUpdateRequest, value: any) => { setFormData(prev => ({ ...prev, [field]: value })); }; if (loading) return
Lade Konfiguration...
; return (

Bot-Einstellungen

{error &&
{error}
} {successMsg &&
{successMsg}
} {/* Bot Identity */}

Bot-Identitaet

_updateField('botName', e.target.value)} placeholder="AI Assistant" /> Wird als Teilnehmer-Name im Meeting angezeigt
_updateField('backgroundImageUrl', e.target.value)} placeholder="https://example.com/background.jpg" /> Hintergrundbild fuer den Video-Feed des Bots
{/* AI Behavior */}

AI-Verhalten