refactor(ui): align business and portal actions

This commit is contained in:
poyrazavsever
2026-07-17 22:13:50 +03:00
parent a642314786
commit bf10eb0fb0
8 changed files with 15 additions and 26 deletions
+1 -5
View File
@@ -6,8 +6,7 @@ import { tr } from "date-fns/locale";
import { requirePortalBackend } from "@/server/web/portal";
export default async function PortalDashboardPage() {
const { context, actor, service } = await requirePortalBackend();
const client = service.getClient(actor, context.profile.clientId!);
const { actor, service } = await requirePortalBackend();
const projects = service.listProjects(actor);
const activeProjects = projects.filter((project) => project.status !== "completed" && project.status !== "cancelled");
const completedProjects = projects.filter((project) => project.status === "completed");
@@ -20,9 +19,6 @@ export default async function PortalDashboardPage() {
<div className="flex flex-col gap-4 border-b border-border pb-5 lg:flex-row lg:items-end lg:justify-between">
<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>
@@ -79,7 +79,6 @@ export function PortalProjectClient({ project, sections, tasks, revisions }: Por
<div className="flex flex-col gap-4 md:flex-row md:items-start justify-between">
<div className="space-y-1">
<h1 className="text-3xl font-bold text-foreground">{project.name}</h1>
{project.description && <p className="text-muted-foreground">{project.description}</p>}
</div>
<div className="flex flex-col gap-2 md:items-end">
<div className="flex gap-2">
@@ -87,7 +86,7 @@ export function PortalProjectClient({ project, sections, tasks, revisions }: Por
{hasRevisionQuota ? (
<Dialog open={openRevision} onOpenChange={setOpenRevision}>
<DialogTrigger asChild>
<Button className="gap-2 shrink-0">
<Button variant="default" effect="shine" className="gap-2 shrink-0">
<RefreshCw className="h-4 w-4" /> Revizyon Talep Et
</Button>
</DialogTrigger>
@@ -108,8 +107,8 @@ export function PortalProjectClient({ project, sections, tasks, revisions }: Por
</div>
</div>
<DialogFooter>
<Button type="button" variant="ghost" onClick={() => setOpenRevision(false)}>İptal</Button>
<Button type="submit" disabled={isSubmitting}>
<Button effect="shine" type="button" variant="secondary" onClick={() => setOpenRevision(false)}>İptal</Button>
<Button variant="default" effect="shine" type="submit" disabled={isSubmitting}>
{isSubmitting && <Loader2 className="mr-2 h-4 w-4 animate-spin" />}
Talebi Gönder
</Button>
@@ -118,7 +117,7 @@ export function PortalProjectClient({ project, sections, tasks, revisions }: Por
</DialogContent>
</Dialog>
) : (
<Button disabled className="gap-2 shrink-0 opacity-50">
<Button variant="default" effect="shine" disabled className="gap-2 shrink-0 opacity-50">
<RefreshCw className="h-4 w-4" /> Revizyon Hakkı Bitti
</Button>
)}
@@ -239,7 +238,7 @@ export function PortalProjectClient({ project, sections, tasks, revisions }: Por
<MessageSquare className="h-8 w-8 text-muted-foreground/50" />
<p>Henüz bir revizyon talebi oluşturmadınız.</p>
{hasRevisionQuota && (
<Button variant="outline" size="sm" onClick={() => setOpenRevision(true)}>Yeni Talep Oluştur</Button>
<Button effect="shine" variant="secondary" size="sm" onClick={() => setOpenRevision(true)}>Yeni Talep Oluştur</Button>
)}
</div>
) : (
-1
View File
@@ -13,7 +13,6 @@ export default async function PortalProjectsPage() {
<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">
<h1 className="text-3xl font-semibold tracking-tight">Projeleriniz</h1>
<p className="text-muted-foreground">Size atanan tüm projeleri buradan inceleyebilirsiniz.</p>
</div>
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-3">
-1
View File
@@ -16,7 +16,6 @@ export default async function PortalRevisionsPage() {
<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">
<h1 className="text-3xl font-semibold tracking-tight">Revizyon Taleplerim</h1>
<p className="text-muted-foreground">İlettiğiniz tüm revizyon taleplerinin güncel durumunu buradan takip edebilirsiniz.</p>
</div>
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-3">
-1
View File
@@ -16,7 +16,6 @@ export default async function PortalTasksPage() {
<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">
<h1 className="text-3xl font-semibold tracking-tight">Yapılan Görevler</h1>
<p className="text-muted-foreground">Sizinle paylaşılan aktif ve tamamlanmış görevleri buradan takip edebilirsiniz.</p>
</div>
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-3">