]> git.cworth.org Git - lmno.games/blobdiff - scribe/scribe.jsx
Scribe: Style the board so there are clear gaps between the mini grids
[lmno.games] / scribe / scribe.jsx
index e7654b417eba2dfdc746a07d91f2a021de4bf2bb..d81932b7b847e6bb813993fd06a20a336a90d0ec 100644 (file)
@@ -165,147 +165,59 @@ function Square(props) {
   );
 }
 
-class Board extends React.Component {
-  render_square(i,j) {
-    const value = this.props.squares[i][j];
+function MiniGrid(props) {
+  function grid_square(j) {
+    const value = props.squares[j];
     return (
       <Square
         value={value}
-        active={this.props.active && ! value}
-        onClick={() => this.props.onClick(i,j)}
+        active={props.active}
+        onClick={() => props.onClick(j)}
       />
     );
   }
 
-  render() {
-    return (
-      <div>
-        <div className="board-row">
-          {this.render_square(0,0)}
-          {this.render_square(0,1)}
-          {this.render_square(0,2)}
-          {" "}
-          {this.render_square(1,0)}
-          {this.render_square(1,1)}
-          {this.render_square(1,2)}
-          {" "}
-          {this.render_square(2,0)}
-          {this.render_square(2,1)}
-          {this.render_square(2,2)}
-        </div>
-        <div className="board-row">
-          {this.render_square(0,3)}
-          {this.render_square(0,4)}
-          {this.render_square(0,5)}
-          {" "}
-          {this.render_square(1,3)}
-          {this.render_square(1,4)}
-          {this.render_square(1,5)}
-          {" "}
-          {this.render_square(2,3)}
-          {this.render_square(2,4)}
-          {this.render_square(2,5)}
-        </div>
-        <div className="board-row">
-          {this.render_square(0,6)}
-          {this.render_square(0,7)}
-          {this.render_square(0,8)}
-          {" "}
-          {this.render_square(1,6)}
-          {this.render_square(1,7)}
-          {this.render_square(1,8)}
-          {" "}
-          {this.render_square(2,6)}
-          {this.render_square(2,7)}
-          {this.render_square(2,8)}
-        </div>
-
-        <div className="board-row">
-        </div>
-
-        <div className="board-row">
-          {this.render_square(3,0)}
-          {this.render_square(3,1)}
-          {this.render_square(3,2)}
-          {" "}
-          {this.render_square(4,0)}
-          {this.render_square(4,1)}
-          {this.render_square(4,2)}
-          {" "}
-          {this.render_square(5,0)}
-          {this.render_square(5,1)}
-          {this.render_square(5,2)}
-        </div>
-        <div className="board-row">
-          {this.render_square(3,3)}
-          {this.render_square(3,4)}
-          {this.render_square(3,5)}
-          {" "}
-          {this.render_square(4,3)}
-          {this.render_square(4,4)}
-          {this.render_square(4,5)}
-          {" "}
-          {this.render_square(5,3)}
-          {this.render_square(5,4)}
-          {this.render_square(5,5)}
-        </div>
-        <div className="board-row">
-          {this.render_square(3,6)}
-          {this.render_square(3,7)}
-          {this.render_square(3,8)}
-          {" "}
-          {this.render_square(4,6)}
-          {this.render_square(4,7)}
-          {this.render_square(4,8)}
-          {" "}
-          {this.render_square(5,6)}
-          {this.render_square(5,7)}
-          {this.render_square(5,8)}
-        </div>
+  return (
+    <div className="mini-grid">
+      {grid_square(0)}
+      {grid_square(1)}
+      {grid_square(2)}
+      {grid_square(3)}
+      {grid_square(4)}
+      {grid_square(5)}
+      {grid_square(6)}
+      {grid_square(7)}
+      {grid_square(8)}
+    </div>
+  );
+}
 
-        <div className="board-row">
-        </div>
+class Board extends React.Component {
+  mini_grid(i) {
+    const squares = this.props.squares[i];
+    return (
+      <MiniGrid
+        squares={squares}
+        active={this.props.active}
+        onClick={(j) => this.props.onClick(i,j)}
+      />
+    );
+  }
 
-        <div className="board-row">
-          {this.render_square(6,0)}
-          {this.render_square(6,1)}
-          {this.render_square(6,2)}
-          {" "}
-          {this.render_square(7,0)}
-          {this.render_square(7,1)}
-          {this.render_square(7,2)}
-          {" "}
-          {this.render_square(8,0)}
-          {this.render_square(8,1)}
-          {this.render_square(8,2)}
-        </div>
-        <div className="board-row">
-          {this.render_square(6,3)}
-          {this.render_square(6,4)}
-          {this.render_square(6,5)}
-          {" "}
-          {this.render_square(7,3)}
-          {this.render_square(7,4)}
-          {this.render_square(7,5)}
-          {" "}
-          {this.render_square(8,3)}
-          {this.render_square(8,4)}
-          {this.render_square(8,5)}
-        </div>
-        <div className="board-row">
-          {this.render_square(6,6)}
-          {this.render_square(6,7)}
-          {this.render_square(6,8)}
-          {" "}
-          {this.render_square(7,6)}
-          {this.render_square(7,7)}
-          {this.render_square(7,8)}
-          {" "}
-          {this.render_square(8,6)}
-          {this.render_square(8,7)}
-          {this.render_square(8,8)}
+  render() {
+    return (
+      <div className="board-container">
+        <div className="board">
+          {this.mini_grid(0)}
+          {this.mini_grid(1)}
+          {this.mini_grid(2)}
+          {this.mini_grid(3)}
+          {this.mini_grid(4)}
+          {this.mini_grid(5)}
+          {this.mini_grid(6)}
+          {this.mini_grid(7)}
+          {this.mini_grid(8)}
         </div>
-
       </div>
     );
   }