remove initiating ES multiple times, may fix the collisions on slow networks

This commit is contained in:
proddy
2024-03-30 18:56:10 +01:00
parent d9a5232293
commit a3511724f3

View File

@@ -93,17 +93,6 @@ const SystemLog: FC = () => {
document.body.removeChild(a); document.body.removeChild(a);
}; };
const onMessage = (event: MessageEvent) => {
const rawData = event.data;
if (typeof rawData === 'string' || rawData instanceof String) {
const logentry = JSON.parse(rawData as string) as LogEntry;
if (logentry.i > lastIndex) {
setLastIndex(logentry.i);
setLogEntries((log) => [...log, logentry]);
}
}
};
const saveSettings = async () => { const saveSettings = async () => {
await saveData(); await saveData();
}; };
@@ -121,16 +110,26 @@ const SystemLog: FC = () => {
useEffect(() => { useEffect(() => {
const es = new EventSource(addAccessTokenParameter(LOG_EVENTSOURCE_URL)); const es = new EventSource(addAccessTokenParameter(LOG_EVENTSOURCE_URL));
es.onmessage = onMessage; es.onmessage = (event: MessageEvent) => {
const rawData = event.data;
if (typeof rawData === 'string' || rawData instanceof String) {
const logentry = JSON.parse(rawData as string) as LogEntry;
if (logentry.i > lastIndex) {
setLastIndex(logentry.i);
setLogEntries((log) => [...log, logentry]);
}
}
};
es.onerror = () => { es.onerror = () => {
es.close(); es.close();
toast.error('EventSource failed'); toast.error('No connection to Log server');
}; };
return () => { return () => {
es.close(); es.close();
}; };
}); // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
const content = () => { const content = () => {
if (!data) { if (!data) {