fixes commcoach

This commit is contained in:
ValueOn AG 2026-03-28 22:29:18 +01:00
parent 4e2510c38b
commit e9f7b2016f
3 changed files with 26 additions and 2 deletions

View file

@ -79,6 +79,14 @@ const FilesTab: React.FC<FilesTabProps> = ({ context, onFileSelect }) => {
_loadFiles();
}, [_loadFiles]);
useEffect(() => {
const _onFileUploaded = () => {
setTimeout(() => _loadFiles(), 150);
};
window.addEventListener('fileUploaded', _onFileUploaded as EventListener);
return () => window.removeEventListener('fileUploaded', _onFileUploaded as EventListener);
}, [_loadFiles]);
const _folderNodes = useMemo(() =>
folders.map(f => ({
id: f.id,

View file

@ -360,8 +360,10 @@ const NeutralizationMappingsTab: React.FC = () => {
<section className={styles.section}>
<h2 className={styles.sectionTitle}>Platzhalter-Mappings</h2>
<p className={styles.settingDescription} style={{ marginBottom: '1rem' }}>
Bei der Datenneutralisierung werden personenbezogene Daten durch Platzhalter ersetzt.
Hier sehen Sie Ihre gespeicherten Mappings und koennen sie loeschen.
Bei der Datenneutralisierung werden personenbezogene Daten durch Platzhalter ersetzt, bevor Text an KI-Modelle
geht; die Antwort wird anschliessend wieder mit Ihren Originalbegriffen angereichert (zentrale Pipeline ueber
den AI-Service). Diese Liste betrifft nur Ihre gespeicherten Platzhalter-Zuordnungen hier einsehbar und
loeschbar.
</p>
{mappings.length === 0 ? (
@ -537,6 +539,11 @@ export const SettingsPage: React.FC = () => {
{activeTab === 'privacy' && (
<section className={styles.section}>
<h2 className={styles.sectionTitle}>Datenschutz</h2>
<p className={styles.settingDescription} style={{ marginBottom: '1rem' }}>
Feature-Daten (z.&nbsp;B. Workspace, CommCoach, Automation) liegen mandantenbezogen; Zugriff richtet sich
nach Ihren Rollen im Mandanten und an Feature-Instanzen. Allgemeine Rechte (Auskunft, Export,
Loeschung) finden Sie unter GDPR.
</p>
<div className={styles.settingRow}>
<div className={styles.settingInfo}><label className={styles.settingLabel}>GDPR / Privacy</label><p className={styles.settingDescription}>Datenexport, Portabilitaet und Kontoloeschung.</p></div>
<div className={styles.settingControl}><Link className={`${styles.button} ${styles.linkButton}`} to="/gdpr">GDPR oeffnen</Link></div>

View file

@ -111,6 +111,15 @@ export const CommcoachDossierView: React.FC = () => {
}
}, [activeTab, coach.session?.id, voice]);
useEffect(() => {
coach.onDocumentCreatedRef.current = () => {
window.dispatchEvent(new CustomEvent('fileUploaded', { detail: { source: 'commcoachDocument' } }));
};
return () => {
coach.onDocumentCreatedRef.current = null;
};
}, [coach]);
const handleStopTts = useCallback(() => coach.stopTts(), [coach]);
const handlePauseTts = useCallback(() => coach.pauseTts(), [coach]);
const handleResumeTts = useCallback(() => coach.resumeTts(), [coach]);