This is a solution to the Todo app challenge on Frontend Mentor. Frontend Mentor challenges help you improve your coding skills by building realistic projects.
Users should be able to:
- View the optimal layout for the app depending on their device's screen size
- See hover states for all interactive elements on the page
- Add new todos to the list
- Mark todos as complete
- Delete todos from the list
- Filter by all/active/complete todos
- Clear all completed todos
- Toggle light and dark mode
- Bonus: Drag and drop to reorder items on the list
- Semantic HTML5 markup
- Flexbox
- React - JS library
- Styled Components - For styles
- React Beautiful DND - For drag and drop
- React Context API - I used this for theming
- Implement a better, more efficient and less redundant way to theming in React using React Context with or without styled components.
- React refs - I had problems with this while trying to use the react beautiful dnd library. I wish to learn and fully understand it
- FreeCodeCamp - How to Add Drag and Drop in React with React Beautiful DnD - This is an amazing article which guided me on how to add the drag and drop feature to the app using the react-beautiful-dnd library
- Stackoverflow - Function components cannot be given refs with React Beautiful DND - Here is the question I asked on Stack Overflow that helped me to solve the innerRef problem I was having with the react-beautiful-dnd library
- Frontend Mentor - @ihollarmide
- Twitter - @i_hollarmide