"use client"; import { useState } from "react"; import { v4 as uuidv4 } from "uuid"; import { useLiveQuery } from "dexie-react-hooks"; import { db } from "@/lib/db"; import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Checkbox } from "@/components/ui/checkbox"; import { Trash2 } from "lucide-react"; export default function TasksPage() { const [title, setTitle] = useState(""); const tasks = useLiveQuery( () => db.tasks.toArray() // Şimdilik hepsini çekiyoruz, sıralama yapılabilir ); const handleAddTask = async (e: React.FormEvent) => { e.preventDefault(); if (!title.trim()) return; const now = new Date().toISOString(); try { await db.tasks.add({ id: uuidv4(), title, status: "todo", ai_generated: false, date: now.split("T")[0], created_at: now, }); setTitle(""); } catch (error) { console.error("Görev eklenemedi:", error); } }; const toggleTaskStatus = async (id: string, currentStatus: string) => { await db.tasks.update(id, { status: currentStatus === "todo" ? "completed" : "todo", }); }; const deleteTask = async (id: string) => { await db.tasks.delete(id); }; const pendingTasks = tasks?.filter(t => t.status === "todo") || []; const completedTasks = tasks?.filter(t => t.status === "completed") || []; return (

Görevler & Planlar

Kişisel hedeflerin ve YZ tarafından önerilen aksiyonlar.

Yeni Görev Aklındakini aksiyona dönüştür.
setTitle(e.target.value)} className="flex-1" />
{/* Yapılacaklar */}

Yapılacaklar {pendingTasks.length}

{pendingTasks.length === 0 ? (

Bekleyen görev yok.

) : ( pendingTasks.map(task => (
toggleTaskStatus(task.id, task.status)} className="w-5 h-5" /> {task.title}
)) )}
{/* Tamamlananlar */}

Tamamlananlar {completedTasks.length}

{completedTasks.length === 0 ? (

Hiç görev tamamlanmadı.

) : ( completedTasks.map(task => (
toggleTaskStatus(task.id, task.status)} className="w-5 h-5 data-[state=checked]:bg-muted-foreground data-[state=checked]:border-muted-foreground" /> {task.title}
)) )}
); }