Skip to content

Commit 7de830d

Browse files
authored
Merge pull request #63 from AnWhiteM/Dashboard
added task list + filter redux
2 parents b308c72 + 5835ee6 commit 7de830d

File tree

9 files changed

+48
-17
lines changed

9 files changed

+48
-17
lines changed

src/components/CardList/CardList.jsx

-3
This file was deleted.

src/components/TaskCard/TaskCard.jsx renamed to src/components/Task/Task.jsx

+7-11
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import css from "./TaskCard.module.css"
1+
import css from "./Task.module.css"
22
import svg from "../../img/icons.svg";
33
import { EditCard } from "../EditCardModal/EditCardModal";
44
import { useState } from "react";
55

6-
export const Card = () => {
6+
export const Task = ({task}) => {
77
const [editCardModal, setEditCardModal] = useState(false);
88

99
const openModal = () => {
@@ -17,12 +17,9 @@ export const Card = () => {
1717
return (
1818
<div className={css.card}>
1919
<div className={css.border}></div>
20-
<h4 className={css.title}>The Watch Spot Design</h4>
20+
<h4 className={css.title}>{task.title}</h4>
2121
<p className={css.desc}>
22-
Create a visually stunning and eye-catching watch dial design that
23-
embodies our brand's essence of sleek aesthetics and modern elegance.
24-
Your design should be unique, innovative, and reflective of the latest
25-
trends in watch design.
22+
{task.description}
2623
</p>
2724
<hr className={css.decor}></hr>
2825

@@ -33,13 +30,13 @@ export const Card = () => {
3330
<p className={css.p}>Priority</p>
3431
<div className={css.container}>
3532
<div className={css.kolo}></div>
36-
<p className={css.info}>Low</p>
33+
<p className={css.info}>{task.priority}</p>
3734
</div>
3835
</div>
3936

4037
<div className={css.column}>
4138
<p className={css.p}>Deadline</p>
42-
<p className={css.info}>12/05/2023</p>
39+
<p className={css.info}>{task.deadline}</p>
4340
</div>
4441
</div>
4542

@@ -63,9 +60,8 @@ export const Card = () => {
6360
<use href={svg + "#icon-trash"}></use>
6461
</svg>
6562
</div>
66-
67-
</div>
6863

64+
</div>
6965
</div>
7066
{editCardModal &&
7167
<EditCard isOpen={editCardModal} isClose={closeModal} />}

src/components/TaskColumn/TaskColumn.jsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import { AddAnotherCardBtn } from "../AddAnotherCardBtn/AddAnotherCardBtn";
2-
import { Card } from "../TaskCard/TaskCard";
2+
import { Task } from "../Task/Task";
33
import { TaskColumnName } from "../TaskColumnName/TaskColumnName";
4+
import { TaskList } from "../TaskList/TaskList";
45

56
export const TaskColumn = () => {
67
return (
78
<div>
89
<TaskColumnName />
9-
<Card />
10+
{/* <Task /> */}
11+
<TaskList/>
1012
<AddAnotherCardBtn />
1113
</div>
1214
);

src/components/TaskList/TaskList.jsx

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { useSelector } from "react-redux"
2+
import { selectTasks } from "../../redux/tasks/selectors"
3+
import { Task } from "../Task/Task";
4+
5+
export const TaskList = () => {
6+
const tasks = useSelector(selectTasks);
7+
8+
return (
9+
<ul>
10+
{tasks.map((task) => (
11+
<li key={task.id}>
12+
<Task task={task} />
13+
</li>
14+
))}
15+
</ul>
16+
);
17+
};

src/redux/filter/selectors.js

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const selecFilter = (state) => state.filters.name

src/redux/filter/slice.js

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { createSlice } from "@reduxjs/toolkit";
2+
3+
export const filtersSlice = createSlice({
4+
name: "filters",
5+
initialState: {
6+
priority: ""
7+
},
8+
reducers: {
9+
changeFilter(state, action) {
10+
state.priority = action.payload;
11+
}
12+
}
13+
})
14+
15+
export const { changeFilter } = filtersSlice.actions;
16+
export const filtersReducer = filtersSlice.reducer;

src/redux/store.js

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { authReducer } from "./auth/slice";
1414
import { columnReducer } from "./columns/slice";
1515
import { tasksReducer } from "./tasks/slice";
1616
import storage from "redux-persist/lib/storage";
17+
import { filtersReducer } from "./filter/slice";
1718

1819
const authPersistConfig = {
1920
key: "authSlice",
@@ -29,6 +30,7 @@ export const store = configureStore({
2930
auth: persistedAuthReducer,
3031
column: columnReducer,
3132
tasks: tasksReducer,
33+
filter: filtersReducer
3234
},
3335
middleware: (getDefaultMiddleware) =>
3436
getDefaultMiddleware({

src/redux/tasks/selectors.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ export const selectTasks = (state) => state.tasks.items;
22

33
export const selectLoading = (state) => state.tasks.loading;
44

5-
export const selectError = (state) => state.tasks.error;
5+
export const selectError = (state) => state.tasks.error;

0 commit comments

Comments
 (0)