1+ import React , { Component } from 'react' ;
2+ import Todo from '../../components/Todo/Todo' ;
3+ import TodoDetail from '../../components/TodoDetail/TodoDetail' ;
4+ import { NavLink } from 'react-router-dom' ;
5+ import NewTodo from './NewTodo/NewTodo' ;
6+ import "./TodoList.css"
7+
8+ class TodoList extends Component {
9+ state = {
10+ todos : [
11+ { id : 1 , title : 'SWPP' , content : 'take swpp class' , done : true } ,
12+ { id : 2 , title : 'Movie' , content : 'watch movie' , done : false } ,
13+ { id : 3 , title : 'Dinner' , content : 'eat dinner' , done : false } ,
14+ ] ,
15+ selectedTodo : null ,
16+ }
17+
18+ clickTodoHandler = td => {
19+ if ( this . state . selectedTodo === td ) {
20+ this . setState ( { selectedTodo : null } ) ;
21+ } else {
22+ this . setState ( { selectedTodo : td } ) ;
23+ }
24+ }
25+
26+ render ( ) {
27+ const todos = this . state . todos . map ( ( td ) => {
28+ return ( < Todo key = { td . id } title = { td . title }
29+ done = { td . done } clicked = { ( ) => this . clickTodoHandler ( td ) } /> ) ;
30+ } ) ;
31+ let todoDetail = null ;
32+ if ( this . state . selectedTodo ) {
33+ todoDetail = < TodoDetail title = { this . state . selectedTodo . title }
34+ content = { this . state . selectedTodo . content } />
35+ }
36+ return (
37+ < div className = 'TodoList' >
38+ < div className = 'title' > { this . props . title } </ div >
39+ < div className = 'todos' > { todos } </ div >
40+ { todoDetail }
41+ < NavLink to = 'new-todo' exact > New Todo</ NavLink >
42+ </ div >
43+ ) ;
44+ }
45+
46+
47+
48+
49+ }
50+ export default TodoList ;
0 commit comments