From 24bdecd75bfb6fb0841515ede68eea2295bba571 Mon Sep 17 00:00:00 2001 From: McPizza0 Date: Sat, 20 Jul 2024 15:13:34 +0100 Subject: [PATCH] fix-settings-billing-selfhosted --- .../routers/orgRouter/iCanHaz/iCanHazRouter.ts | 7 +++++++ .../settings/_components/settings-sidebar.tsx | 17 ++++++++++++----- .../settings/org/setup/billing/page.tsx | 11 +++++++++++ ee/apps/billing/trpc/routers/iCanHazRouter.ts | 3 +++ 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/apps/platform/trpc/routers/orgRouter/iCanHaz/iCanHazRouter.ts b/apps/platform/trpc/routers/orgRouter/iCanHaz/iCanHazRouter.ts index 285a7094..61239a4c 100644 --- a/apps/platform/trpc/routers/orgRouter/iCanHaz/iCanHazRouter.ts +++ b/apps/platform/trpc/routers/orgRouter/iCanHaz/iCanHazRouter.ts @@ -2,6 +2,13 @@ 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 05ec8967..a16f14b8 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 8249cffd..c9637b64 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 @@ -5,6 +5,7 @@ import { Skeleton } from '@/src/components/shadcn-ui/skeleton'; import { PageTitle } from '../../../_components/page-title'; import { Button } from '@/src/components/shadcn-ui/button'; import { PricingTable } from './_components/plans-table'; +import { useRouter } from 'next/navigation'; import CalEmbed from '@calcom/embed-react'; import { platform } from '@/src/lib/trpc'; import { cn } from '@/src/lib/utils'; @@ -13,6 +14,16 @@ import Link from 'next/link'; 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 7d079857..ed399dcb 100644 --- a/ee/apps/billing/trpc/routers/iCanHazRouter.ts +++ b/ee/apps/billing/trpc/routers/iCanHazRouter.ts @@ -6,6 +6,9 @@ import { eq } from '@u22n/database/orm'; import { z } from 'zod'; export const iCanHazRouter = router({ + billing: protectedProcedure.query(async ({ ctx, input }) => { + return true; + }), domain: protectedProcedure .input(z.object({ orgId: z.number() })) .query(async ({ ctx, input }) => {