Make the Class list publicly available, add Class Feed page

This commit is contained in:
2022-01-26 04:21:47 +00:00
parent e6aaef9bf1
commit 987e2a7465
3 changed files with 218 additions and 171 deletions
+37
View File
@@ -50,6 +50,43 @@ function ClassTable(props) {
let classesCache = false;
export function ClassFeed(props) {
const [classes, setClasses] = useState(classesCache);
useEffect(() => {
const get = async() => {
requester('/sessions/', 'GET', '')
.then(res => {
setClasses(res.results);
classesCache = res.results;
})
.catch(err => {
console.log(err);
});
};
get();
const interval = setInterval(get, 60000);
return () => clearInterval(interval);
}, []);
const now = new Date().toISOString();
return (
<Container>
<p/>
<Header size='large'>Upcoming Protospace Classes</Header>
{classes ?
<ClassTable classes={classes.filter(x => x.datetime > now).sort((a, b) => a.datetime > b.datetime ? 1 : -1)} />
:
<p>Loading...</p>
}
</Container>
);
};
export function Classes(props) {
const [classes, setClasses] = useState(classesCache);
const { token } = props;