fixed auto download
This commit is contained in:
@@ -125,7 +125,30 @@ const ChatScreen: React.FC = () => {
|
||||
isInitialLoad.current = false;
|
||||
}
|
||||
};
|
||||
loadMessages();
|
||||
loadMessages().then(async () => {
|
||||
// Auto-Re-Download: fehlende Anhänge vom Server nachladen (wenn aktiviert)
|
||||
const autoDownload = await AsyncStorage.getItem('aria_auto_download');
|
||||
if (autoDownload === 'false') return;
|
||||
setTimeout(() => {
|
||||
setMessages(prev => {
|
||||
const missing: {id: string, serverPath: string}[] = [];
|
||||
for (const msg of prev) {
|
||||
for (const att of msg.attachments || []) {
|
||||
if (att.serverPath && !att.uri) {
|
||||
missing.push({ id: msg.id, serverPath: att.serverPath });
|
||||
}
|
||||
}
|
||||
}
|
||||
if (missing.length > 0) {
|
||||
console.log(`[Chat] ${missing.length} fehlende Anhaenge — lade nach...`);
|
||||
for (const m of missing) {
|
||||
rvs.send('file_request' as any, { serverPath: m.serverPath, requestId: m.id });
|
||||
}
|
||||
}
|
||||
return prev;
|
||||
});
|
||||
}, 2000); // Warten bis RVS verbunden ist
|
||||
});
|
||||
}, []);
|
||||
|
||||
// RVS-Nachrichten abonnieren
|
||||
@@ -165,20 +188,23 @@ const ChatScreen: React.FC = () => {
|
||||
return;
|
||||
}
|
||||
|
||||
// STT-Ergebnis: Transkribierten Text unter den Placeholder schreiben
|
||||
if (message.type === 'stt_result') {
|
||||
const sttText = (message.payload.text as string) || '';
|
||||
setMessages(prev => prev.map(m =>
|
||||
m.sender === 'user' && m.text.includes('Spracheingabe wird verarbeitet')
|
||||
? { ...m, text: sttText ? `\uD83C\uDFA4 ${sttText}` : '\uD83C\uDFA4 (nicht erkannt)' }
|
||||
: m
|
||||
));
|
||||
return;
|
||||
}
|
||||
|
||||
if (message.type === 'chat') {
|
||||
// Nur Nachrichten von ARIA anzeigen — eigene Nachrichten werden lokal hinzugefuegt
|
||||
const sender = (message.payload.sender as string) || '';
|
||||
|
||||
// STT-Ergebnis: Transkribierten Text in die Sprach-Bubble schreiben
|
||||
if (sender === 'stt') {
|
||||
const sttText = (message.payload.text as string) || '';
|
||||
if (sttText) {
|
||||
setMessages(prev => prev.map(m =>
|
||||
m.sender === 'user' && m.text.includes('Spracheingabe wird verarbeitet')
|
||||
? { ...m, text: `\uD83C\uDFA4 ${sttText}` }
|
||||
: m
|
||||
));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Eigene Nachrichten ignorieren (werden lokal hinzugefuegt)
|
||||
if (sender === 'user' || sender === 'diagnostic') return;
|
||||
|
||||
const text = (message.payload.text as string) || '';
|
||||
|
||||
Reference in New Issue
Block a user