feat: implement portal shell layout, sidebar configuration, and tasks page skeleton
This commit is contained in:
@@ -5,17 +5,17 @@ export default function PortalTasksPage() {
|
|||||||
return (
|
return (
|
||||||
<div className="mx-auto flex max-w-7xl flex-col gap-8 animate-in fade-in slide-in-from-bottom-4 duration-500">
|
<div className="mx-auto flex max-w-7xl flex-col gap-8 animate-in fade-in slide-in-from-bottom-4 duration-500">
|
||||||
<div className="flex flex-col gap-2">
|
<div className="flex flex-col gap-2">
|
||||||
<h1 className="text-3xl font-semibold tracking-tight">Görevlerim</h1>
|
<h1 className="text-3xl font-semibold tracking-tight">Yapılan Görevler</h1>
|
||||||
<p className="text-muted-foreground">Size atanan ve herkese açık olan proje görevleri.</p>
|
<p className="text-muted-foreground">Projeniz kapsamında üzerinde çalışılan ve tamamlanan görevler.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="flex min-h-72 flex-col items-center justify-center rounded-sm border border-dashed border-border bg-muted/20 p-8 text-center">
|
<div className="flex min-h-72 flex-col items-center justify-center rounded-sm border border-dashed border-border bg-muted/20 p-8 text-center">
|
||||||
<FolderKanban className="h-10 w-10 text-muted-foreground" />
|
<FolderKanban className="h-10 w-10 text-muted-foreground" />
|
||||||
<h3 className="mt-4 text-lg font-semibold text-foreground">
|
<h3 className="mt-4 text-lg font-semibold text-foreground">
|
||||||
Görev modülü yapım aşamasında
|
Görev detayları yapım aşamasında
|
||||||
</h3>
|
</h3>
|
||||||
<p className="mt-2 max-w-md text-sm text-muted-foreground">
|
<p className="mt-2 max-w-md text-sm text-muted-foreground">
|
||||||
Yakında tüm görevlerinizi buradan takip edebileceksiniz. Şimdilik proje detay sayfasından görevlere ulaşabilirsiniz.
|
Yakında tüm görevlerin anlık durumlarını detaylıca buradan görebileceksiniz. Şimdilik proje detay sayfasından takip edebilirsiniz.
|
||||||
</p>
|
</p>
|
||||||
<Link href="/portal" className="mt-4 text-primary hover:underline text-sm font-medium">
|
<Link href="/portal" className="mt-4 text-primary hover:underline text-sm font-medium">
|
||||||
Dashboard'a dön
|
Dashboard'a dön
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import {
|
|||||||
} from "poyraz-ui/organisms";
|
} from "poyraz-ui/organisms";
|
||||||
import { portalSidebarData } from "@/config/portal-sidebar";
|
import { portalSidebarData } from "@/config/portal-sidebar";
|
||||||
import { cn } from "@/lib/utils";
|
import { cn } from "@/lib/utils";
|
||||||
import { ChevronUp, LogOut, Menu, Settings } from "lucide-react";
|
import { Activity, ChevronUp, LogOut, Menu, Settings } from "lucide-react";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { usePathname } from "next/navigation";
|
import { usePathname } from "next/navigation";
|
||||||
@@ -120,19 +120,34 @@ function AppSidebar({
|
|||||||
variant="bordered"
|
variant="bordered"
|
||||||
className="flex h-dvh max-h-dvh flex-col overflow-hidden rounded-none border-0"
|
className="flex h-dvh max-h-dvh flex-col overflow-hidden rounded-none border-0"
|
||||||
>
|
>
|
||||||
<SidebarHeader className="shrink-0 border-b-0 px-6 py-6">
|
<SidebarHeader className="shrink-0 border-b-0 px-4 py-6">
|
||||||
<div className="flex flex-col gap-2">
|
<div className="flex flex-col gap-3 rounded-xl bg-primary/5 border border-primary/10 p-4 relative overflow-hidden">
|
||||||
<div className="flex items-center justify-between text-sm font-medium">
|
<div className="flex items-center gap-2 relative z-10">
|
||||||
<span className="text-muted-foreground">Aktif İlerleme</span>
|
<div className="flex h-8 w-8 items-center justify-center rounded-full bg-primary/20 text-primary">
|
||||||
<span className="text-primary">%{progress}</span>
|
<Activity className="h-4 w-4" />
|
||||||
</div>
|
</div>
|
||||||
<div className="h-2 w-full bg-secondary rounded-full overflow-hidden">
|
<div className="flex flex-col">
|
||||||
|
<span className="text-[10px] font-medium uppercase tracking-wider text-muted-foreground">Genel Durum</span>
|
||||||
|
<span className="text-sm font-semibold text-foreground">Proje İlerlemesi</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="space-y-1.5 mt-1 relative z-10">
|
||||||
|
<div className="flex items-center justify-between text-xs font-medium">
|
||||||
|
<span className="text-primary">%{progress} Tamamlandı</span>
|
||||||
|
</div>
|
||||||
|
<div className="h-2 w-full bg-primary/10 rounded-full overflow-hidden">
|
||||||
<div
|
<div
|
||||||
className="h-full bg-primary transition-all duration-500"
|
className="h-full bg-primary transition-all duration-700 ease-out relative"
|
||||||
style={{ width: `${progress}%` }}
|
style={{ width: `${progress}%` }}
|
||||||
/>
|
>
|
||||||
|
<div className="absolute top-0 right-0 bottom-0 left-0 bg-white/20 animate-pulse" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="absolute -right-4 -top-4 w-16 h-16 bg-primary/5 rounded-full blur-xl" />
|
||||||
|
</div>
|
||||||
</SidebarHeader>
|
</SidebarHeader>
|
||||||
|
|
||||||
<SidebarSeparator className="mx-0 my-0 w-full" />
|
<SidebarSeparator className="mx-0 my-0 w-full" />
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ export const portalSidebarData: PortalSidebarNavGroup[] = [
|
|||||||
{
|
{
|
||||||
title: "SÜREÇLER",
|
title: "SÜREÇLER",
|
||||||
items: [
|
items: [
|
||||||
{ title: "Görevlerim", href: "/portal/tasks", icon: FolderKanban },
|
{ title: "Yapılan Görevler", href: "/portal/tasks", icon: FolderKanban },
|
||||||
{ title: "Revizyon Talepleri", href: "/portal/revisions", icon: Sparkles },
|
{ title: "Revizyon Talepleri", href: "/portal/revisions", icon: Sparkles },
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user