feat(ui): add workspace customization and simplify navigation

This commit is contained in:
poyrazavsever
2026-07-17 12:47:54 +03:00
parent b04031a3e3
commit dafd9eb344
24 changed files with 855 additions and 224 deletions
+3
View File
@@ -1,5 +1,6 @@
import { PortalShell } from "@/components/layout/portal-shell";
import { getPublicBranding } from "@/server/branding/runtime";
import { getUserPreferences } from "@/server/settings/preferences";
import { requirePortalBackend } from "@/server/web/portal";
export default async function PortalLayout({
@@ -10,6 +11,7 @@ export default async function PortalLayout({
const { context, actor, service } = await requirePortalBackend();
const { user, profile } = context;
const branding = getPublicBranding();
const preferences = getUserPreferences(actor);
const projects = service.listProjects(actor);
const progress = projects.length
? Math.round(projects.reduce((sum, project) => sum + project.progress, 0) / projects.length)
@@ -33,6 +35,7 @@ export default async function PortalLayout({
lightLogoUrl: branding.lightLogoUrl,
darkLogoUrl: branding.darkLogoUrl,
}}
colorMode={preferences.colorMode}
user={{
email: user.email,
displayName,
+6 -12
View File
@@ -1,5 +1,5 @@
import { Card, CardContent, Badge } from "poyraz-ui/atoms";
import { FolderKanban, CheckCircle2, Clock, Activity, BarChart, type LucideIcon } from "lucide-react";
import { FolderKanban, CheckCircle2, Clock, BarChart, type LucideIcon } from "lucide-react";
import Link from "next/link";
import { format } from "date-fns";
import { tr } from "date-fns/locale";
@@ -18,17 +18,11 @@ export default async function PortalDashboardPage() {
return (
<div className="mx-auto flex max-w-7xl flex-col gap-6">
<div className="flex flex-col gap-4 border-b border-border pb-5 lg:flex-row lg:items-end lg:justify-between">
<div className="space-y-2">
<div className="flex items-center gap-2 text-sm text-muted-foreground">
<Activity className="h-4 w-4" />
Genel Bakış
</div>
<div>
<h1 className="text-3xl font-semibold tracking-normal text-foreground">Müşteri Paneli</h1>
<p className="mt-1 max-w-2xl text-sm text-muted-foreground">
Hoş geldiniz, {client.name}. Aktif projelerinizi ve ilerlemeleri buradan takip edin.
</p>
</div>
<div>
<h1 className="text-3xl font-semibold tracking-normal text-foreground">Müşteri Paneli</h1>
<p className="mt-1 max-w-2xl text-sm text-muted-foreground">
Hoş geldiniz, {client.name}. Aktif projelerinizi ve ilerlemeleri buradan takip edin.
</p>
</div>
</div>