feat: scope workspace routes by organization slug

This commit is contained in:
2026-07-02 20:11:57 -07:00
parent fae97a7046
commit 3ab0e3e034
48 changed files with 565 additions and 96 deletions

View File

@@ -8,6 +8,7 @@ import { AppBreadcrumbs } from "@/modules/shared/components/AppBreadcrumbs";
import { AppSidebarNav } from "@/modules/shared/components/AppSidebarNav";
import { UserAvatar } from "@/modules/shared/components/UserAvatar";
import { navItems } from "@/modules/shared/lib/navigation";
import { getWorkspaceHref } from "@/modules/shared/lib/workspace-routing";
type AppShellProps = {
children: React.ReactNode;
@@ -24,11 +25,14 @@ export function AppShell({
organizations,
permissions,
}: AppShellProps): React.ReactElement {
const organizationSlug = organization?.slug;
const dashboardHref = getWorkspaceHref(organizationSlug, "/dashboard");
return (
<div className="flex h-svh items-stretch overflow-hidden bg-background text-foreground">
<aside className="hidden h-svh w-64 shrink-0 border-r bg-white/78 backdrop-blur xl:block">
<div className="flex h-full min-h-0 flex-col">
<Link href="/app/dashboard" className="flex h-16 shrink-0 items-center gap-3 border-b px-5">
<Link href={dashboardHref} className="flex h-16 shrink-0 items-center gap-3 border-b px-5">
<span className="inline-flex size-10 items-center justify-center rounded-md bg-primary text-primary-foreground">
<Stethoscope className="size-5" aria-hidden="true" />
</span>
@@ -37,7 +41,7 @@ export function AppShell({
</span>
</Link>
<AppSidebarNav permissions={permissions} />
<AppSidebarNav organizationSlug={organizationSlug} permissions={permissions} />
<div className="border-t p-3">
<AccountMenu