+ {board.map((row, rowIndex) => (
+
+ {row.map((cell, cellIndex) => (
+
+ ))}
+
+ ))}
+
+ );
+};
+
+export default GameBoard;
diff --git a/src/components/Tetris/Tetris.tsx b/src/components/Tetris/Tetris.tsx
new file mode 100644
index 0000000..4d28a0b
--- /dev/null
+++ b/src/components/Tetris/Tetris.tsx
@@ -0,0 +1,110 @@
+import React, { useCallback, useEffect, useState } from "react";
+import { checkCollision, createBoard, getRandomTetromino } from "./utils";
+
+import GameBoard from "./GameBoard";
+import Tetromino from "./Tetromino";
+
+interface Tetromino {
+ shape: number[][];
+ color: string;
+}
+
+// TODO: does not work
+const Tetris: React.FC = () => {
+ const [board, setBoard] = useState(createBoard());
+ const [tetromino, setTetromino] = useState