-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSimulationReviewPage.tsx
More file actions
69 lines (64 loc) · 2 KB
/
SimulationReviewPage.tsx
File metadata and controls
69 lines (64 loc) · 2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import { Button, Stack, Toolbar, Typography, useTheme } from "@mui/material";
import SimulationTable from "./SimulationTable";
import { useQuery } from "@tanstack/react-query";
import { useState } from "react";
import { getSimulationPage } from "../queryfunctions";
import MainPanel from "./MainPanel";
import { useNavigate } from "react-router-dom";
export default function SimulationReviewPage() {
const [cursor, setCursor] = useState<string | null>(null);
const [next, setNext] = useState<string | null>(null);
const [previous, setPrevious] = useState<string | null>(null);
const navigate = useNavigate();
const query = useQuery({
queryKey: ["simulations", cursor],
queryFn: () => getSimulationPage(cursor, 20),
refetchInterval: 10000,
});
if (query.data) {
if (next != query.data.next_page) {
setNext(query.data.next_page);
}
if (previous != query.data.previous_page) {
setPrevious(query.data.previous_page);
}
}
return (
<MainPanel
toolbarElements={
<>
<Typography variant="h5" component="div">
Simulation Results
</Typography>
<Stack direction="row" spacing={2}>
<Button
variant="contained"
disabled={previous == null}
onClick={() => setCursor(previous)}
>
<
</Button>
<Button
variant="contained"
disabled={next == null}
onClick={() => setCursor(next)}
>
>
</Button>
</Stack>
</>
}
>
<Stack overflow="auto" justifyContent="space-between" width={"100%"}>
<SimulationTable
simulations={query.data ? query.data.items : []}
setSelectedSimulation={(simulation) => {
if (simulation != null && simulation.id) {
navigate("/simulations/" + simulation.id);
}
}}
></SimulationTable>
</Stack>
</MainPanel>
);
}