Skip to content

Commit 58e5472

Browse files
committed
Add RaceEvents table for visualizing data in the race events slice
1 parent 2482714 commit 58e5472

File tree

2 files changed

+68
-0
lines changed
  • examples/iracing-ui/src

2 files changed

+68
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import React from "react";
2+
import {
3+
Table,
4+
TableCaption,
5+
TableContainer,
6+
Tbody,
7+
Td,
8+
Th,
9+
Thead,
10+
Tr,
11+
} from "@chakra-ui/react";
12+
import { RaceEvent } from "../../features/raceEventsSlice";
13+
14+
export interface RaceEventsTableProps {
15+
events: RaceEvent[];
16+
onPressEvent?: (raceEventId: string) => void;
17+
}
18+
19+
export const RaceEventsTable: React.FC<RaceEventsTableProps> = ({
20+
events,
21+
onPressEvent = () => {},
22+
}) => {
23+
// TODO: Session number filter
24+
// TODO: Session time range filter
25+
// TODO: Type filter
26+
return (
27+
<TableContainer>
28+
<Table variant="striped">
29+
<TableCaption>Race events</TableCaption>
30+
<Thead>
31+
<Tr>
32+
<Th>ID</Th>
33+
<Th>Session Number</Th>
34+
<Th>Session time</Th>
35+
<Th>Type</Th>
36+
</Tr>
37+
</Thead>
38+
39+
<Tbody>
40+
{events.map(({ id, sessionNumber, sessionTime, type }) => (
41+
<Tr onClick={() => onPressEvent(id)}>
42+
<Td>{id}</Td>
43+
<Td>{sessionNumber}</Td>
44+
<Td>{sessionTime}</Td>
45+
<Td>{type}</Td>
46+
</Tr>
47+
))}
48+
</Tbody>
49+
</Table>
50+
</TableContainer>
51+
);
52+
};
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import React from "react";
2+
import { useSelector } from "react-redux";
3+
import { allRaceEvents } from "src/features/raceEventsSlice";
4+
import {
5+
RaceEventsTable as RaceEventsTableUI,
6+
RaceEventsTableProps as RaceEventsTableUIProps,
7+
} from "../../components/RaceEventsTable";
8+
9+
export interface RaceEventsTableProps {}
10+
11+
export const RaceEventsTable: React.FC<RaceEventsTableProps> = () => {
12+
const raceEvents = useSelector(allRaceEvents);
13+
return <RaceEventsTableUI events={raceEvents} />;
14+
};
15+
16+
export default RaceEventsTable;

0 commit comments

Comments
 (0)