From d9aa8adcedff240808adee250c197bda0a15b08f Mon Sep 17 00:00:00 2001 From: Arjun Komath Date: Thu, 5 Feb 2026 18:54:53 +1100 Subject: [PATCH 1/2] Fix settings for personal workspace --- .../projects/[projectId]/settings/page.tsx | 3 +- app/(dashboard)/[tenant]/settings/page.tsx | 42 ++++++++++++------- app/(dashboard)/[tenant]/today/page.tsx | 3 +- lib/utils/useOwner.ts | 8 +++- 4 files changed, 38 insertions(+), 18 deletions(-) diff --git a/app/(dashboard)/[tenant]/projects/[projectId]/settings/page.tsx b/app/(dashboard)/[tenant]/projects/[projectId]/settings/page.tsx index 936143c..2ea9e61 100644 --- a/app/(dashboard)/[tenant]/projects/[projectId]/settings/page.tsx +++ b/app/(dashboard)/[tenant]/projects/[projectId]/settings/page.tsx @@ -7,6 +7,7 @@ import { PageLoading } from "@/components/core/loaders"; import PermissionsManagement from "@/components/core/permissions-management"; import PageSection from "@/components/core/section"; import PageTitle from "@/components/layout/page-title"; +import { isPersonalTenant } from "@/lib/utils/useOwner"; import { useTRPC } from "@/trpc/client"; export default function ProjectSettings() { @@ -21,7 +22,7 @@ export default function ProjectSettings() { }), ); - const isOrgAdmin = tenant === "me"; + const isOrgAdmin = isPersonalTenant(tenant); if (isLoading || !project) return ; diff --git a/app/(dashboard)/[tenant]/settings/page.tsx b/app/(dashboard)/[tenant]/settings/page.tsx index 25de173..f2c0715 100644 --- a/app/(dashboard)/[tenant]/settings/page.tsx +++ b/app/(dashboard)/[tenant]/settings/page.tsx @@ -5,9 +5,17 @@ import { ProfileSettings } from "@/components/settings/profile-settings"; import { TeamSettings } from "@/components/settings/team-settings"; import { WorkspaceSettings } from "@/components/settings/workspace-settings"; import { bytesToMegabytes } from "@/lib/blobStore"; +import { isPersonalTenant } from "@/lib/utils/useOwner"; import { caller } from "@/trpc/server"; -export default async function Settings() { +export default async function Settings({ + params, +}: { + params: Promise<{ tenant: string }>; +}) { + const { tenant } = await params; + const isPersonal = isPersonalTenant(tenant); + const [storage, timezone, projectsData] = await Promise.all([ caller.settings.getStorageUsage(), caller.settings.getTimezone(), @@ -20,21 +28,25 @@ export default async function Settings() { <> - } - bottomMargin - > - - + {!isPersonal && ( + } + bottomMargin + > + + + )} - } - bottomMargin - > - - + {!isPersonal && ( + } + bottomMargin + > + + + )} { const activeOrgId = session.session.activeOrganizationId; - let orgSlug = "me"; + let orgSlug = PERSONAL_TENANT; if (activeOrgId) { const db = database(); const org = await db @@ -45,6 +45,12 @@ export async function getOwner(): Promise { }; } +export const PERSONAL_TENANT = "me"; + +export function isPersonalTenant(tenant: string) { + return tenant === PERSONAL_TENANT; +} + export async function getTimezone() { const cookieStore = await cookies(); return ( From c5cf33e231cf098610001f76e34d3587e738e586 Mon Sep 17 00:00:00 2001 From: Arjun Komath Date: Thu, 5 Feb 2026 19:00:59 +1100 Subject: [PATCH 2/2] Fix build --- .../[tenant]/projects/[projectId]/settings/page.tsx | 2 +- app/(dashboard)/[tenant]/settings/page.tsx | 2 +- app/(dashboard)/[tenant]/today/page.tsx | 2 +- lib/utils/tenant.ts | 5 +++++ lib/utils/useOwner.ts | 7 +------ 5 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 lib/utils/tenant.ts diff --git a/app/(dashboard)/[tenant]/projects/[projectId]/settings/page.tsx b/app/(dashboard)/[tenant]/projects/[projectId]/settings/page.tsx index 2ea9e61..0646561 100644 --- a/app/(dashboard)/[tenant]/projects/[projectId]/settings/page.tsx +++ b/app/(dashboard)/[tenant]/projects/[projectId]/settings/page.tsx @@ -7,7 +7,7 @@ import { PageLoading } from "@/components/core/loaders"; import PermissionsManagement from "@/components/core/permissions-management"; import PageSection from "@/components/core/section"; import PageTitle from "@/components/layout/page-title"; -import { isPersonalTenant } from "@/lib/utils/useOwner"; +import { isPersonalTenant } from "@/lib/utils/tenant"; import { useTRPC } from "@/trpc/client"; export default function ProjectSettings() { diff --git a/app/(dashboard)/[tenant]/settings/page.tsx b/app/(dashboard)/[tenant]/settings/page.tsx index f2c0715..05f7df6 100644 --- a/app/(dashboard)/[tenant]/settings/page.tsx +++ b/app/(dashboard)/[tenant]/settings/page.tsx @@ -5,7 +5,7 @@ import { ProfileSettings } from "@/components/settings/profile-settings"; import { TeamSettings } from "@/components/settings/team-settings"; import { WorkspaceSettings } from "@/components/settings/workspace-settings"; import { bytesToMegabytes } from "@/lib/blobStore"; -import { isPersonalTenant } from "@/lib/utils/useOwner"; +import { isPersonalTenant } from "@/lib/utils/tenant"; import { caller } from "@/trpc/server"; export default async function Settings({ diff --git a/app/(dashboard)/[tenant]/today/page.tsx b/app/(dashboard)/[tenant]/today/page.tsx index cd475c3..e4e8b9a 100644 --- a/app/(dashboard)/[tenant]/today/page.tsx +++ b/app/(dashboard)/[tenant]/today/page.tsx @@ -27,7 +27,7 @@ import { Card } from "@/components/ui/card"; import { toDateStringWithDay } from "@/lib/utils/date"; import { displayMutationError } from "@/lib/utils/error"; import { eventToHumanReadableString } from "@/lib/utils/useEvents"; -import { isPersonalTenant } from "@/lib/utils/useOwner"; +import { isPersonalTenant } from "@/lib/utils/tenant"; import { useTRPC } from "@/trpc/client"; export default function Today() { diff --git a/lib/utils/tenant.ts b/lib/utils/tenant.ts new file mode 100644 index 0000000..1092b39 --- /dev/null +++ b/lib/utils/tenant.ts @@ -0,0 +1,5 @@ +export const PERSONAL_TENANT = "me"; + +export function isPersonalTenant(tenant: string) { + return tenant === PERSONAL_TENANT; +} diff --git a/lib/utils/useOwner.ts b/lib/utils/useOwner.ts index 2dd343d..4c627c3 100644 --- a/lib/utils/useOwner.ts +++ b/lib/utils/useOwner.ts @@ -4,6 +4,7 @@ import { redirect } from "next/navigation"; import { organization } from "@/drizzle/auth-schema"; import { auth } from "@/lib/auth"; import { database } from "@/lib/utils/useDatabase"; +import { PERSONAL_TENANT } from "@/lib/utils/tenant"; type Result = { userId: string; @@ -45,12 +46,6 @@ export async function getOwner(): Promise { }; } -export const PERSONAL_TENANT = "me"; - -export function isPersonalTenant(tenant: string) { - return tenant === PERSONAL_TENANT; -} - export async function getTimezone() { const cookieStore = await cookies(); return (