Professional Documents
Culture Documents
WT Assignment 6
WT Assignment 6
function App() {
]);
return (
<>
<Header title="Todo's List" search={false} />
<AddTasks AddTodo={AddTodo}/>
<Todo todoss={todoslist} onDelete={onDelete}/>
<Footer />
</>
);
}
Header.js File
<li className="nav-item">
<a className="nav-link" href="#">About</a>
</li>
</ul>
{props.search ? <form className="form-inline my-2 my-lg-0">
<input className="form-control mr-sm-2" type="search" placeholder="Search" aria-
label="Search"/>
<button className="btn btn-outline-success my-2 my-sm-0"
type="submit">Search</button>
</form> : ""}
</div>
</nav>
)
}
Header.defaultProps = {
title:"Your Title",
search:true,
}
Header.propTypes = {
title:PropTypes.string,
search:PropTypes.bool.isRequired,
}
AddTasks.js File
const submit=(e)=>{
e.preventDefault();
if(!title || !desc){
alert("Title or description cannot be blank!")
}
AddTodo(title,desc);
}
return (
<div className='container'>
<h3 className='text-center my-2'>- Add a Task -</h3>
<form onSubmit={submit}>
<div class="form-group">
<label for="title">Todo Title :</label>
<input type="text" value={title}
onChange={(e)=>{setTitle(e.target.value)}} class="form-control" id="title" aria-
describedby="emailHelp" placeholder="Enter Todo Title"/>
</div>
<div class="form-group">
<label for="desc">Description :</label>
<input type="text" value={desc}
onChange={(e)=>{setDesc(e.target.value)}} class="form-control" id="desc"
placeholder="Description"/>
</div>
<button type="submit" class="btn btn-sm btn-primary">Add Todo</button>
</form>
</div>
)
}
Todo.js File
TodoItems.js File
Footer.js File
return (
<div className='bg-dark text-light mb-0 mt-2' >
<p className="text-center py-3">
Copyright © MyTodosList.com
</p>
</div>
)
}
OUTPUT :