Display questions

This commit is contained in:
Dane Johnson 2023-02-15 13:36:16 -06:00
parent a7b56ebbf9
commit 9e03336d1a
5 changed files with 47 additions and 14 deletions

View File

@ -20,7 +20,9 @@ module.exports = {
tsconfigRootDir: __dirname, tsconfigRootDir: __dirname,
}, },
plugins: ["react", "@typescript-eslint"], plugins: ["react", "@typescript-eslint"],
rules: {}, rules: {
"@typescript-eslint/no-unsafe-return": "off", // Allow quick oners
},
settings: { settings: {
react: { react: {
version: "detect", version: "detect",

View File

@ -6,14 +6,16 @@ import { socket } from "./socket";
import { useAppSelector } from "./hooks"; import { useAppSelector } from "./hooks";
import { selectRoomCode } from "./store/socketSlice"; import { selectRoomCode } from "./store/socketSlice";
import { selectContestants } from "./store/displaySlice"; import { selectContestants } from "./store/displaySlice";
import { selectCategories } from "./store/cluesSlice"; import { selectCategories, selectActiveClue } from "./store/cluesSlice";
import ContestantWidget from "./ContestantWidget"; import ContestantWidget from "./ContestantWidget";
import Gameboard from "./display/Gameboard"; import Gameboard from "./display/Gameboard";
import ClueDisplay from "./display/ClueDisplay";
const Display = () => { const Display = () => {
const roomCode = useAppSelector(selectRoomCode); const roomCode = useAppSelector(selectRoomCode);
const contestants = useAppSelector(selectContestants); const contestants = useAppSelector(selectContestants);
const categories = useAppSelector(selectCategories); const categories = useAppSelector(selectCategories);
const activeClue = useAppSelector(selectActiveClue);
useEffect(() => { useEffect(() => {
socket.emit("new-game"); socket.emit("new-game");
@ -25,7 +27,12 @@ const Display = () => {
<h1 className="text-center">Room code is: {roomCode}</h1> <h1 className="text-center">Room code is: {roomCode}</h1>
</Container> </Container>
{!isEmpty(categories) && <Gameboard categories={categories} />} {!isEmpty(categories) && !activeClue && (
<Gameboard categories={categories} />
)}
{!isEmpty(categories) && activeClue && (
<ClueDisplay activeClue={activeClue} />
)}
<Stack <Stack
direction="horizontal" direction="horizontal"

View File

@ -0,0 +1,11 @@
import type { Clue } from "../store/cluesSlice";
interface Props {
activeClue: Clue;
}
const ClueDisplay = ({ activeClue }: Props) => {
return <div className="text-center fs-1">{activeClue.question}</div>;
};
export default ClueDisplay;

View File

@ -6,14 +6,30 @@ interface Props {
categories: Category[]; categories: Category[];
} }
const values = [200, 400, 600, 800, 1000];
const Gameboard = ({ categories }: Props) => { const Gameboard = ({ categories }: Props) => {
return ( return (
<Container fluid> <Container fluid>
<Row> <Row>
{categories.map(({ name }) => ( {categories.map(({ name }) => (
<Col key={name}>{name}</Col> <Col
key={name}
className="fw-bolder border border-primary text-center"
>
{name}
</Col>
))} ))}
</Row> </Row>
{values.map((value) => (
<Row key={value}>
{categories.map(({ name }) => (
<Col key={name} className="text-center border border-primary">
{value}
</Col>
))}
</Row>
))}
</Container> </Container>
); );
}; };

View File

@ -3,20 +3,17 @@ import { checker } from "vite-plugin-checker";
import react from "@vitejs/plugin-react"; import react from "@vitejs/plugin-react";
import eslint from "vite-plugin-eslint"; import eslint from "vite-plugin-eslint";
// https://vitejs.dev/config/
export default defineConfig({ export default defineConfig({
server: { server: {
host: true, host: true,
}, },
plugins: [ plugins: [
{ react(),
...react(), checker({
...checker({ typescript: true,
typescript: true, eslint: {
eslint: { lintCommand: 'eslint "./src/**/*.{ts,tsx}"',
lintCommand: 'eslint "./src/**/*.{ts,tsx}"', },
}, }),
}),
},
], ],
}); });