diff --git a/src/features/Board/Board.js b/src/features/Board/Board.js
index 5890996..62e9855 100644
--- a/src/features/Board/Board.js
+++ b/src/features/Board/Board.js
@@ -1,29 +1,23 @@
import React, { useState } from "react";
-import { useSelector, useDispatch } from "react-redux";
-import { createList, selectBoard } from "../../storeSlices/boardSlice";
+import { useSelector } from "react-redux";
+
+import { TaskList } from "../TaskList/TaskList";
+import { NewTaskListPrompt } from "../TaskList/NewTaskListPrompt";
import styles from "./Board.module.css";
export function Board() {
- const boardData = useSelector(selectBoard);
- const dispatch = useDispatch();
+ const selectBoardData = state => state.board;
+ const boardData = useSelector(selectBoardData);
return (
{boardData.name}
{boardData.lists.map(listData => (
-
-
{listData.name}
-
- {listData.cards.map(cardData => (
-
- {cardData.text}
-
- ))}
-
-
+
))}
+
);
diff --git a/src/features/TaskCard/TaskCard.js b/src/features/TaskCard/TaskCard.js
new file mode 100644
index 0000000..a203c1a
--- /dev/null
+++ b/src/features/TaskCard/TaskCard.js
@@ -0,0 +1,15 @@
+import React, { useState } from "react";
+import { useSelector, useDispatch } from "react-redux";
+import { createList } from "../../storeSlices/boardSlice";
+
+import styles from "./TaskCard.module.css";
+
+export function TaskCard({ cardData }) {
+ const dispatch = useDispatch();
+
+ return (
+
+ {cardData.text}
+
+ );
+}
diff --git a/src/features/TaskCard/TaskCard.module.css b/src/features/TaskCard/TaskCard.module.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/features/TaskList/NewTaskListPrompt.js b/src/features/TaskList/NewTaskListPrompt.js
new file mode 100644
index 0000000..00b1efa
--- /dev/null
+++ b/src/features/TaskList/NewTaskListPrompt.js
@@ -0,0 +1,29 @@
+import React, { useState } from "react";
+import { useDispatch } from "react-redux";
+import { createList } from "../../storeSlices/boardSlice";
+
+import styles from "./TaskList.module.css";
+
+export function NewTaskListPrompt() {
+ const dispatch = useDispatch();
+
+ const [newListname, setNewListname] = useState("");
+
+ return (
+
+ setNewListname(e.target.value)}
+ onKeyPress={e => {
+ if (newListname.trim().length > 0 && e.key === "Enter") {
+ dispatch(createList({ name: newListname }));
+
+ setNewListname("");
+ }
+ }}
+ >
+
+ );
+}
diff --git a/src/features/TaskList/TaskList.js b/src/features/TaskList/TaskList.js
new file mode 100644
index 0000000..d81b798
--- /dev/null
+++ b/src/features/TaskList/TaskList.js
@@ -0,0 +1,24 @@
+import React, { useState } from "react";
+import { useSelector, useDispatch } from "react-redux";
+
+import { createList } from "../../storeSlices/boardSlice";
+
+import { TaskCard } from "../TaskCard/TaskCard";
+
+import styles from "./TaskList.module.css";
+
+export function TaskList({ listData }) {
+ const dispatch = useDispatch();
+
+ return (
+
+
{listData.name}
+
+ {/* Refactor to card component */}
+ {listData.cards.map(cardData => (
+
+ ))}
+
+
+ );
+}
diff --git a/src/features/TaskList/TaskList.module.css b/src/features/TaskList/TaskList.module.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/storeSlices/boardSlice.js b/src/storeSlices/boardSlice.js
index e476d55..a5c0714 100644
--- a/src/storeSlices/boardSlice.js
+++ b/src/storeSlices/boardSlice.js
@@ -54,9 +54,4 @@ export const slice = createSlice({
export const { createList } = slice.actions;
-// The function below is called a selector and allows us to select a value from
-// the state. Selectors can also be defined inline where they're used instead of
-// in the slice file. For example: `useSelector((state) => state.counter.value)`
-export const selectBoard = state => state.board;
-
export default slice.reducer;