1
1
import React from 'react' ;
2
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' ;
3
+ import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons' ;
4
+
5
+ const renderOneTask = ( item ) => {
6
+ return (
7
+ < li key = { item . id }
8
+ className = "list-group-item"
9
+ style = { { position : "relative" } } >
10
+ {
11
+ item . taskUrgent && ( < FontAwesomeIcon icon = { faExclamationTriangle } /> )
12
+ }
13
+ < a
14
+ href = "#"
15
+ // onClick={this.handleViewTask}
16
+ data-id = { item . id }
17
+ >
18
+ { item . taskName }
19
+ </ a >
20
+ < br />
21
+ < span className = "text-muted" >
22
+ < small >
23
+ { item . taskDate }
24
+ </ small >
25
+ </ span >
26
+ < br />
27
+ </ li >
28
+ )
29
+ } ;
30
+
31
+
32
+ const DnD = ( props ) => {
33
+ const [ state , setState ] = React . useState ( {
34
+ todo : [ ] ,
35
+ inprogress : [ ] ,
36
+ done : [ ]
37
+ } ) ;
38
+
39
+ React . useEffect ( ( ) => {
40
+ const string = localStorage . getItem ( 'TASKS' ) ;
41
+ const taskList = JSON . parse ( string ) ;
42
+ const todo = taskList . filter ( item => item . taskStatus === 'TODO' ) ;
43
+ const inprogress = taskList . filter ( item => item . taskStatus === 'INPROGRESS' ) ;
44
+ const done = taskList . filter ( item => item . taskStatus === 'DONE' ) ;
45
+ setState ( { todo, inprogress, done } ) ;
46
+ } , [ ] ) ;
47
+
48
+ const emptyList = < li className = "list-group-item" >
49
+ < strong className = "text-secondary" > Список пуст</ strong >
50
+ </ li > ;
2
51
3
- const DnD = ( ) => {
4
52
return (
5
53
< div className = "row" style = { { marginTop : '20px' } } >
6
54
< div className = "col-sm-4" >
7
55
< div className = "card" >
8
56
< div className = "card-body card-body-dnd" >
9
57
< h3 > To Do</ h3 >
10
58
< ul className = "list-group" >
11
- < li className = "list-group-item" >
12
- < strong className = "text-secondary" > Список пуст</ strong >
13
- </ li >
59
+ { state . todo . length ? state . todo . map ( renderOneTask ) : emptyList }
14
60
</ ul >
15
61
</ div >
16
62
</ div >
@@ -20,9 +66,7 @@ const DnD = () => {
20
66
< div className = "card-body card-body-dnd" >
21
67
< h3 > In progress</ h3 >
22
68
< ul className = "list-group" >
23
- < li className = "list-group-item" >
24
- < strong className = "text-secondary" > Список пуст</ strong >
25
- </ li >
69
+ { state . inprogress . length ? state . inprogress . map ( renderOneTask ) : emptyList }
26
70
</ ul >
27
71
</ div >
28
72
</ div >
@@ -32,9 +76,7 @@ const DnD = () => {
32
76
< div className = "card-body card-body-dnd" >
33
77
< h3 > Done</ h3 >
34
78
< ul className = "list-group" >
35
- < li className = "list-group-item" >
36
- < strong className = "text-secondary" > Список пуст</ strong >
37
- </ li >
79
+ { state . done . length ? state . done . map ( renderOneTask ) : emptyList }
38
80
</ ul >
39
81
</ div >
40
82
</ div >
0 commit comments