diff --git a/apps/platform/trpc/routers/orgRouter/iCanHaz/iCanHazRouter.ts b/apps/platform/trpc/routers/orgRouter/iCanHaz/iCanHazRouter.ts
index 382c8c13..61239a4c 100644
--- a/apps/platform/trpc/routers/orgRouter/iCanHaz/iCanHazRouter.ts
+++ b/apps/platform/trpc/routers/orgRouter/iCanHaz/iCanHazRouter.ts
@@ -1,8 +1,14 @@
-import { z } from 'zod';
import { router, orgProcedure, createCallerFactory } from '~platform/trpc/trpc';
import { billingTrpcClient } from '~platform/utils/tRPCServerClients';
export const iCanHazRouter = router({
+ billing: orgProcedure.query(async ({ ctx }) => {
+ const { selfHosted } = ctx;
+ if (selfHosted) {
+ return false;
+ }
+ return await billingTrpcClient.iCanHaz.billing.query();
+ }),
domain: orgProcedure.query(async ({ ctx }) => {
const { org, selfHosted } = ctx;
if (selfHosted) {
diff --git a/apps/web/src/app/[orgShortcode]/settings/_components/settings-sidebar.tsx b/apps/web/src/app/[orgShortcode]/settings/_components/settings-sidebar.tsx
index b8fa1521..4be92b2a 100644
--- a/apps/web/src/app/[orgShortcode]/settings/_components/settings-sidebar.tsx
+++ b/apps/web/src/app/[orgShortcode]/settings/_components/settings-sidebar.tsx
@@ -27,6 +27,9 @@ type NavLinks = {
export default function SettingsSidebar() {
const orgShortcode = useGlobalStore((state) => state.currentOrg.shortcode);
+ const { data: hazBilling } = platform.org.iCanHaz.billing.useQuery({
+ orgShortcode
+ });
const { data: isAdmin } =
platform.org.users.members.isOrgMemberAdmin.useQuery({
@@ -56,11 +59,15 @@ export default function SettingsSidebar() {
to: `/${orgShortcode}/settings/org`,
icon:
},
- {
- label: 'Billing',
- to: `/${orgShortcode}/settings/org/setup/billing`,
- icon:
- }
+ ...(hazBilling
+ ? [
+ {
+ label: 'Billing',
+ to: `/${orgShortcode}/settings/org/setup/billing`,
+ icon:
+ }
+ ]
+ : [])
];
const orgUserLinks: NavLinks[] = [
diff --git a/apps/web/src/app/[orgShortcode]/settings/org/setup/billing/page.tsx b/apps/web/src/app/[orgShortcode]/settings/org/setup/billing/page.tsx
index caeb160c..c1ac18e9 100644
--- a/apps/web/src/app/[orgShortcode]/settings/org/setup/billing/page.tsx
+++ b/apps/web/src/app/[orgShortcode]/settings/org/setup/billing/page.tsx
@@ -10,9 +10,20 @@ import Link from 'next/link';
import { cn } from '@/src/lib/utils';
import { PageTitle } from '../../../_components/page-title';
import { Skeleton } from '@/src/components/shadcn-ui/skeleton';
+import { useRouter } from 'next/navigation';
export default function Page() {
const orgShortcode = useGlobalStore((state) => state.currentOrg.shortcode);
+
+ const { data: hazBilling } = platform.org.iCanHaz.billing.useQuery({
+ orgShortcode
+ });
+
+ const router = useRouter();
+ if (!hazBilling) {
+ router.push(`/${orgShortcode}/settings/`);
+ }
+
const { data, isLoading } =
platform.org.setup.billing.getOrgBillingOverview.useQuery({
orgShortcode
diff --git a/ee/apps/billing/trpc/routers/iCanHazRouter.ts b/ee/apps/billing/trpc/routers/iCanHazRouter.ts
index 550844f4..7bf07a6c 100644
--- a/ee/apps/billing/trpc/routers/iCanHazRouter.ts
+++ b/ee/apps/billing/trpc/routers/iCanHazRouter.ts
@@ -11,6 +11,9 @@ import {
import type { SpaceStatus } from '@u22n/utils/spaces';
export const iCanHazRouter = router({
+ billing: protectedProcedure.query(async ({ ctx, input }) => {
+ return true;
+ }),
domain: protectedProcedure
.input(z.object({ orgId: z.number() }))
.query(async ({ ctx, input }) => {