From 80fe7ccdf5f0e66764671ec7f2d3bb22e10f506d Mon Sep 17 00:00:00 2001 From: Catalin Pit Date: Fri, 24 Nov 2023 13:59:33 +0200 Subject: [PATCH] feat: api token page in the settings --- .../app/(dashboard)/settings/token/page.tsx | 21 ++++++ .../settings/layout/desktop-nav.tsx | 17 ++++- .../settings/layout/mobile-nav.tsx | 17 ++++- .../trpc/server/api-token-router/router.ts | 65 +++++++++++++++++++ .../trpc/server/api-token-router/schema.ts | 13 ++++ packages/trpc/server/router.ts | 2 + 6 files changed, 131 insertions(+), 4 deletions(-) create mode 100644 apps/web/src/app/(dashboard)/settings/token/page.tsx create mode 100644 packages/trpc/server/api-token-router/router.ts create mode 100644 packages/trpc/server/api-token-router/schema.ts diff --git a/apps/web/src/app/(dashboard)/settings/token/page.tsx b/apps/web/src/app/(dashboard)/settings/token/page.tsx new file mode 100644 index 000000000..e868df47d --- /dev/null +++ b/apps/web/src/app/(dashboard)/settings/token/page.tsx @@ -0,0 +1,21 @@ +import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session'; + +import { ApiTokenForm } from '~/components/forms/token'; + +export default async function ApiToken() { + const { user } = await getRequiredServerComponentSession(); + + return ( +
+

API Token

+ +

+ On this page, you can create new API tokens and manage the existing ones. +

+ +
+ + +
+ ); +} diff --git a/apps/web/src/components/(dashboard)/settings/layout/desktop-nav.tsx b/apps/web/src/components/(dashboard)/settings/layout/desktop-nav.tsx index 901c6a5ae..89bcabf60 100644 --- a/apps/web/src/components/(dashboard)/settings/layout/desktop-nav.tsx +++ b/apps/web/src/components/(dashboard)/settings/layout/desktop-nav.tsx @@ -1,11 +1,11 @@ 'use client'; -import { HTMLAttributes } from 'react'; +import type { HTMLAttributes } from 'react'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; -import { CreditCard, Key, User } from 'lucide-react'; +import { Braces, CreditCard, Key, User } from 'lucide-react'; import { useFeatureFlags } from '@documenso/lib/client-only/providers/feature-flag'; import { cn } from '@documenso/ui/lib/utils'; @@ -48,6 +48,19 @@ export const DesktopNav = ({ className, ...props }: DesktopNavProps) => { + + + + {isBillingEnabled && ( + + + + {isBillingEnabled && (