log-viewer/frontend/src/components/app/App.js

48 lines
1.0 KiB
JavaScript
Raw Normal View History

2022-02-15 16:34:10 +00:00
import React, { useState, useEffect } from 'react';
2022-02-15 19:34:59 +00:00
import { useSSE, SSEProvider } from 'react-hooks-sse';
2022-02-09 11:56:34 +00:00
import './App.css';
import EventList from '../eventList/EventList.js';
2022-02-15 08:55:59 +00:00
2022-02-15 19:34:59 +00:00
import './App.css';
2022-02-15 08:55:59 +00:00
2022-02-15 19:34:59 +00:00
const Component = () => {
const event = useSSE('log-entry')
const [events, setEvents] = useState([])
useEffect(() =>{
console.info(event);
if (event) {
2022-03-06 06:18:01 +00:00
for (var j = 0; j < events.length; j++) {
if (events[j].timestamp <= event.timestamp) {
if (events[j]._id == event._id) {
setEvents([...events.slice(0, j), event, ...events.slice(j+1)]);
return;
} else {
setEvents([...events.slice(0, j), event, ...events.slice(j)]);
return;
}
}
}
setEvents([event, ...events]);
2022-02-15 19:34:59 +00:00
}
}, [event])
return <EventList data={events} />
2022-02-15 16:34:10 +00:00
}
2022-02-15 08:55:59 +00:00
2022-02-15 16:34:10 +00:00
function App() {
return (
2022-02-15 08:55:59 +00:00
2022-02-15 19:34:59 +00:00
<SSEProvider endpoint="/events" >
<Component />
</SSEProvider>
)
2022-02-09 11:56:34 +00:00
}
export default App;