From 70494fa5bb25f13ca77236d367a3b94ff71cd721 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Tue, 5 Mar 2024 22:06:48 +1100 Subject: [PATCH] feat: add offline development support (#987) ## Description Add support to develop without network access since TRPC by default will prevent network requests when offline. https://tanstack.com/query/v4/docs/framework/react/guides/network-mode#network-mode-always ## Changes Made - Add dynamic logic to toggle offline development - Removed teams feature flag --- .../components/(dashboard)/layout/header.tsx | 34 ---- .../(dashboard)/layout/profile-dropdown.tsx | 177 ------------------ .../settings/layout/desktop-nav.tsx | 27 ++- .../settings/layout/mobile-nav.tsx | 27 ++- packages/lib/constants/feature-flags.ts | 1 - packages/trpc/react/index.tsx | 23 ++- 6 files changed, 46 insertions(+), 243 deletions(-) delete mode 100644 apps/web/src/components/(dashboard)/layout/profile-dropdown.tsx diff --git a/apps/web/src/components/(dashboard)/layout/header.tsx b/apps/web/src/components/(dashboard)/layout/header.tsx index b0ede5b8b..eebfa4b02 100644 --- a/apps/web/src/components/(dashboard)/layout/header.tsx +++ b/apps/web/src/components/(dashboard)/layout/header.tsx @@ -7,7 +7,6 @@ import { useParams } from 'next/navigation'; import { MenuIcon, SearchIcon } from 'lucide-react'; -import { useFeatureFlags } from '@documenso/lib/client-only/providers/feature-flag'; import type { GetTeamsResponse } from '@documenso/lib/server-only/team/get-teams'; import { getRootHref } from '@documenso/lib/utils/params'; import type { User } from '@documenso/prisma/client'; @@ -19,7 +18,6 @@ import { CommandMenu } from '../common/command-menu'; import { DesktopNav } from './desktop-nav'; import { MenuSwitcher } from './menu-switcher'; import { MobileNavigation } from './mobile-navigation'; -import { ProfileDropdown } from './profile-dropdown'; export type HeaderProps = HTMLAttributes & { user: User; @@ -29,10 +27,6 @@ export type HeaderProps = HTMLAttributes & { export const Header = ({ className, user, teams, ...props }: HeaderProps) => { const params = useParams(); - const { getFlag } = useFeatureFlags(); - - const isTeamsEnabled = getFlag('app_teams'); - const [isCommandMenuOpen, setIsCommandMenuOpen] = useState(false); const [isHamburgerMenuOpen, setIsHamburgerMenuOpen] = useState(false); const [scrollY, setScrollY] = useState(0); @@ -47,34 +41,6 @@ export const Header = ({ className, user, teams, ...props }: HeaderProps) => { return () => window.removeEventListener('scroll', onScroll); }, []); - if (!isTeamsEnabled) { - return ( -
5 && 'border-b-border', - className, - )} - {...props} - > -
- - - - - - -
- -
-
-
- ); - } - return (
{ - const { getFlag } = useFeatureFlags(); - const { theme, setTheme } = useTheme(); - const isUserAdmin = isAdmin(user); - - const isBillingEnabled = getFlag('app_billing'); - - const avatarFallback = user.name - ? extractInitials(user.name) - : user.email.slice(0, 1).toUpperCase(); - - return ( - - - - - - - Account - - {isUserAdmin && ( - <> - - - - Admin - - - - - - )} - - - - - Profile - - - - - - - Security - - - - - - - API Tokens - - - - {isBillingEnabled && ( - - - - Billing - - - )} - - - - - - Templates - - - - - - - - Themes - - - - - - Light - - - - Dark - - - - System - - - - - - - - - - Star on Github - - - - - - - void signOut({ - callbackUrl: '/', - }) - } - > - - Sign Out - - - - ); -}; 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 6109d1f3d..94e366e27 100644 --- a/apps/web/src/components/(dashboard)/settings/layout/desktop-nav.tsx +++ b/apps/web/src/components/(dashboard)/settings/layout/desktop-nav.tsx @@ -19,7 +19,6 @@ export const DesktopNav = ({ className, ...props }: DesktopNavProps) => { const { getFlag } = useFeatureFlags(); const isBillingEnabled = getFlag('app_billing'); - const isTeamsEnabled = getFlag('app_teams'); return (
@@ -36,20 +35,18 @@ export const DesktopNav = ({ className, ...props }: DesktopNavProps) => { - {isTeamsEnabled && ( - - - - )} + + + - {isTeamsEnabled && ( - - - - )} + + +