diff --git a/src/App.css b/src/App.css index 6798b71..10e7da8 100644 --- a/src/App.css +++ b/src/App.css @@ -27,6 +27,13 @@ input { margin-right: 10px; } +select { + padding: 10px; + border: 1px solid #ccc; + border-radius: 4px; + margin-right: 10px; +} + button { padding: 10px 20px; border: none; @@ -58,7 +65,6 @@ li { li span { flex: 1; - margin-right: 10px; } li span.completed { @@ -68,16 +74,39 @@ li span.completed { .filter-buttons { display: flex; - justify-content: center; align-items: center; + justify-content: space-between; +} + +.status-filter { + display: flex; gap: 10px; } +.user-filter { + display: flex; + align-items: center; + margin-left: 20px; +} + +.user-filter label { + margin-right: 10px; +} + .task-item { display: flex; - flex-direction: row; - justify-content: center; + flex-direction: column; +} + +.task-item-header { + display: flex; align-items: center; + justify-content: space-between; + cursor: pointer; +} + +.task-item-header .caret { + margin-left: 5px; } .task-item-buttons { @@ -86,3 +115,24 @@ li span.completed { margin-left: auto; align-items: center; } + +.subtasks { + padding-left: 10px; + margin-top: 10px; +} + +.subtask-item { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 5px; + flex-direction: row; +} + +.subtask-input-container { + display: flex; + align-items: center; + gap: 10px; + margin-bottom: 10px; + flex-direction: row; +} diff --git a/src/App.jsx b/src/App.jsx index 9144f05..259b681 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -11,35 +11,53 @@ function App() { name: "Complete TPS reports", completed: false, addedBy: { id: 1, name: "Kevin" }, + subtasks: [], }, { name: "Reconcile Dunder Mifflin accounts", completed: false, addedBy: { id: 2, name: "Angela" }, + subtasks: [], }, { name: "Review Peter's timesheet", completed: true, - addedBy: { id: 1, name: "Oscar" }, + addedBy: { id: 3, name: "Oscar" }, + subtasks: [], }, { name: "Party Planning Committee expense reports", completed: false, addedBy: { id: 2, name: "Angela" }, + subtasks: [], }, ]); const [filter, setFilter] = useState("all"); + const [userFilter, setUserFilter] = useState("all"); + + const users = tasks.reduce((users, task) => { + return users.includes(task.addedBy) ? users : [...users, task.addedBy]; + }, []); return (