From 53ecfa4caf3d63d58578816e965c8c075c8f1b37 Mon Sep 17 00:00:00 2001 From: Mpho10111 Date: Tue, 11 Aug 2026 20:55:27 +0200 Subject: [PATCH] feat: add task creation and editing interface --- components/AddTaskForm.tsx | 86 +++++++---------- components/EditTaskForm.tsx | 186 ++++++++++++++++++++++++++++++++++++ components/TaskCard.tsx | 174 +++++++++++++++++++++++++++++++++ 3 files changed, 395 insertions(+), 51 deletions(-) create mode 100644 components/EditTaskForm.tsx diff --git a/components/AddTaskForm.tsx b/components/AddTaskForm.tsx index 318b808..65a2d78 100644 --- a/components/AddTaskForm.tsx +++ b/components/AddTaskForm.tsx @@ -1,15 +1,16 @@ "use client"; import { useState } from "react"; +import type { TaskInput } from "@/types/task"; export default function AddTaskForm({ onSubmit, onClose, }: { - onSubmit: (task: any) => void; + onSubmit: (task: TaskInput) => Promise | void; onClose: () => void; }) { - const [formData, setFormData] = useState({ + const [formData, setFormData] = useState({ title: "", description: "", dueDate: "", @@ -22,13 +23,13 @@ export default function AddTaskForm({ setFormData({ ...formData, [e.target.name]: e.target.value }); }; - const handleSubmit = (e: React.FormEvent) => { + const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!formData.topic) { alert("Please select a topic before saving."); return; } - onSubmit(formData); + await onSubmit(formData); onClose(); }; @@ -61,23 +62,21 @@ export default function AddTaskForm({ style={styles.input} /> - {/* ✅ Dropdown with placeholder */} - + name="topic" + value={formData.topic} + onChange={handleChange} + required + style={styles.input} + > + + + + + + + +