diff --git a/public/index.html b/public/index.html index ec54be0..62dbf42 100644 --- a/public/index.html +++ b/public/index.html @@ -3,10 +3,46 @@ - React Mini + Grid Maker + -
+ +
+

Grid Maker

+ + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
diff --git a/src/app.jsx b/src/app.jsx index 1eebc0c..f2d0a78 100644 --- a/src/app.jsx +++ b/src/app.jsx @@ -12,3 +12,42 @@ const App = () => { const root = createRoot(document.getElementById("root")); root.render(); + +const addRow = () => { + setNumRows(prevNumRows => { + const newNumRows = prevNumRows + 1; + const newRow = Array(numCols).fill('white'); + setGrid(prevGrid => [...prevGrid, newRow]); + return newNumRows; + }); + }; + + const deleteRow = () => { + setNumRows(prevNumRows => { + if (prevNumRows > 1) { + const newNumRows = prevNumRows - 1; + setGrid(prevGrid => prevGrid.slice(0, newNumRows)); + return newNumRows; + } + return prevNumRows; + }); + }; + + const addColumn = () => { + setNumCols(prevNumCols => { + const newNumCols = prevNumCols + 1; + setGrid(prevGrid => prevGrid.map(row => [...row, 'white'])); + return newNumCols; + }); + }; + + const deleteColumn = () => { + setNumCols(prevNumCols => { + if (prevNumCols > 1) { + const newNumCols = prevNumCols - 1; + setGrid(prevGrid => prevGrid.map(row => row.slice(0, newNumCols))); + return newNumCols; + } + return prevNumCols; + }); + }; \ No newline at end of file