import { createClient } from "@/lib/supabase/server";
import { Card, CardContent, Badge } from "poyraz-ui/atoms";
import { CheckCircle2, Clock, CalendarDays, KanbanSquare } from "lucide-react";
import Link from "next/link";
import { format } from "date-fns";
import { tr } from "date-fns/locale";
export default async function PortalTasksPage() {
const supabase = await createClient();
const { data: { user } } = await supabase.auth.getUser();
if (!user) return null;
const { data: clientData } = await supabase
.from("clients")
.select("id")
.eq("client_auth_id", user.id)
.single();
if (!clientData) {
return (
Hesabınız Henüz Aktif Değil
);
}
const { data: projectsData } = await supabase
.from("projects")
.select("id, name")
.eq("client_id", clientData.id);
const projectIds = projectsData?.map(p => p.id) || [];
let tasks = [];
if (projectIds.length > 0) {
const { data: tasksData } = await supabase
.from("tasks")
.select("id, title, status, project_id, created_at, date, priority")
.in("project_id", projectIds)
.eq("is_public_to_client", true)
.order("created_at", { ascending: false });
tasks = tasksData || [];
}
const getProjectName = (id: string) => projectsData?.find(p => p.id === id)?.name || "Bilinmeyen Proje";
return (
Yapılan Görevler
Sizinle paylaşılan aktif ve tamamlanmış görevleri buradan takip edebilirsiniz.
{tasks.length === 0 ? (
Henüz sizinle paylaşılan bir görev bulunmuyor.
) : (
tasks.map(task => (
{task.title}
{task.status === 'todo' ? 'Bekliyor' : task.status === 'in_progress' ? 'İşleniyor' : 'Tamamlandı'}
{getProjectName(task.project_id)}
{task.date ? format(new Date(task.date), 'd MMM yyyy', { locale: tr }) : 'Tarih yok'}
{task.status === 'completed' || task.status === 'done' ? (
) : (
)}
))
)}
);
}