Integrate local business workflow and SaaS redesign
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
import Link from "next/link";
|
||||
import { usePathname } from "next/navigation";
|
||||
import { LogOut } from "lucide-react";
|
||||
import { CheckCircle2, LogOut, ShieldCheck } from "lucide-react";
|
||||
|
||||
import { authClient } from "@/lib/auth-client";
|
||||
import { Button } from "@/components/ui/button";
|
||||
@@ -20,21 +20,41 @@ export function DashboardSidebar() {
|
||||
const { data: session, isPending } = authClient.useSession();
|
||||
|
||||
return (
|
||||
<aside className="flex w-full shrink-0 flex-col border-b bg-sidebar text-sidebar-foreground md:sticky md:top-0 md:min-h-dvh md:w-72 md:border-b-0 md:border-r">
|
||||
<div className="flex h-16 items-center gap-3 border-b px-4">
|
||||
<div className="flex size-9 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground">
|
||||
W
|
||||
<aside className="flex w-full shrink-0 flex-col border-b border-sidebar-border bg-sidebar text-sidebar-foreground md:sticky md:top-0 md:min-h-dvh md:w-[19rem] md:border-b-0 md:border-r">
|
||||
<div className="flex h-[5.25rem] items-center gap-3 border-b border-sidebar-border px-4">
|
||||
<div className="flex size-11 items-center justify-center rounded-md bg-sidebar-primary font-heading text-sm font-black text-sidebar-primary-foreground shadow-[inset_0_1px_0_color-mix(in_oklch,var(--sidebar-primary-foreground),transparent_75%)]">
|
||||
WP
|
||||
</div>
|
||||
<div className="min-w-0">
|
||||
<p className="truncate text-sm font-semibold">WebDev Pipeline</p>
|
||||
<p className="truncate text-xs text-muted-foreground">
|
||||
Akquise Workspace
|
||||
<p className="truncate font-heading text-sm font-semibold">
|
||||
WebDev Pipeline
|
||||
</p>
|
||||
<p className="truncate text-xs font-medium text-muted-foreground">
|
||||
Agency Evidence Desk
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="grid gap-2 border-b border-sidebar-border p-3">
|
||||
<div className="rounded-md border border-sidebar-border bg-sidebar-accent p-3">
|
||||
<p className="text-xs font-semibold text-sidebar-accent-foreground">
|
||||
Workspace Safety
|
||||
</p>
|
||||
<div className="mt-2 grid gap-2 text-xs text-muted-foreground">
|
||||
<span className="inline-flex items-center gap-2">
|
||||
<ShieldCheck className="size-3.5 text-sidebar-primary" />
|
||||
Versand nur nach Freigabe
|
||||
</span>
|
||||
<span className="inline-flex items-center gap-2">
|
||||
<CheckCircle2 className="size-3.5 text-sidebar-primary" />
|
||||
Evidence vor Outreach
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<nav
|
||||
className="flex gap-1 overflow-x-auto p-3 md:grid md:overflow-visible"
|
||||
className="flex gap-1 overflow-x-auto p-3 md:grid md:gap-1.5 md:overflow-visible"
|
||||
aria-label="Dashboard navigation"
|
||||
>
|
||||
{dashboardNavigation.map((item) => {
|
||||
@@ -48,9 +68,9 @@ export function DashboardSidebar() {
|
||||
<Link
|
||||
aria-current={isActive ? "page" : undefined}
|
||||
className={cn(
|
||||
"flex h-9 shrink-0 items-center gap-2 rounded-lg px-3 text-sm font-medium outline-none transition-colors focus-visible:ring-3 focus-visible:ring-ring/50",
|
||||
"flex h-10 shrink-0 items-center gap-2 rounded-md px-3 text-sm font-semibold outline-none transition-colors focus-visible:ring-3 focus-visible:ring-ring/35",
|
||||
isActive
|
||||
? "bg-sidebar-primary text-sidebar-primary-foreground"
|
||||
? "bg-sidebar-primary text-sidebar-primary-foreground shadow-[inset_0_1px_0_color-mix(in_oklch,var(--sidebar-primary-foreground),transparent_82%)]"
|
||||
: "text-muted-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
||||
)}
|
||||
href={item.href}
|
||||
@@ -64,13 +84,13 @@ export function DashboardSidebar() {
|
||||
})}
|
||||
</nav>
|
||||
|
||||
<div className="border-t p-3 md:mt-auto">
|
||||
<div className="mb-3 rounded-lg border bg-background p-3 md:block">
|
||||
<p className="truncate text-sm font-medium">
|
||||
{isPending ? "Lade..." : session?.user?.name ?? "Admin"}
|
||||
<div className="border-t border-sidebar-border p-3 md:mt-auto">
|
||||
<div className="mb-3 rounded-md border border-sidebar-border bg-sidebar-accent p-3 md:block">
|
||||
<p className="truncate text-sm font-semibold">
|
||||
{isPending ? "Lade..." : session?.user?.name ?? "Workspace"}
|
||||
</p>
|
||||
<p className="truncate text-xs text-muted-foreground">
|
||||
{session?.user?.email ?? "admin@local"}
|
||||
<p className="truncate text-xs font-medium text-muted-foreground">
|
||||
{session?.user?.email ?? "team@workspace"}
|
||||
</p>
|
||||
</div>
|
||||
<div className="mb-2">
|
||||
|
||||
Reference in New Issue
Block a user