diff --git a/README.md b/README.md index 3c0710d2..bc6ac07a 100644 --- a/README.md +++ b/README.md @@ -1 +1,16 @@ -# react-todo-list-precourse \ No newline at end of file +# react-todo-list-precourse + +하루 또는 한 주의 목록을 업데이트하는 할 일 목록을 구현한다. + +### 할 일 추가/삭제 +- 추가할 때 사용자는 Enter나 '추가'버튼을 사용하여 할 일을 목록에 추가할 수 있어야 한다. +- 사용자가 아무것도 입력하지 않은 경우, 할 일을 추가할 수 없다. +- 할 일의 목록을 볼 수 있다. +- 할 일의 완료 상태를 전환할 수 있다. + +### 선택 요구 사항 +- 현재 진행 중인 할 일, 완료된 할 일, 모든 할 일을 필터링할 수 있다. +- 해야할 일의 총 개수를 확인할 수 있다. +- 새로고침을 하여도 이전에 작성한 데이터는 유지되어야 한다. + +### UI는 자유롭게 만드는 것이 가능하다. \ No newline at end of file diff --git a/components/AddTodo.jsx b/components/AddTodo.jsx new file mode 100644 index 00000000..b45a1149 --- /dev/null +++ b/components/AddTodo.jsx @@ -0,0 +1,28 @@ +import React, { useState } from 'react'; + +function AddTodo({ addTodo }) { + const [value, setValue] = useState(''); + + const handleSubmit = (e) => { + e.preventDefault(); + if (!value.trim()) return; // 공백 입력 방지 + addTodo(value.trim()); // 공백 제거한 값 전달 + setValue(''); // 입력 필드 초기화 + }; + + return ( +
+ ); +} + +export default AddTodo; diff --git a/components/TodoFilter.jsx b/components/TodoFilter.jsx new file mode 100644 index 00000000..5b444aad --- /dev/null +++ b/components/TodoFilter.jsx @@ -0,0 +1,13 @@ +import React from 'react'; + +function TodoFilter({ filter, setFilter }) { + return ( +