From 2d5fc43395dd90fbf5ee3187bf4aee3353ad2757 Mon Sep 17 00:00:00 2001 From: Nolann Biron Date: Sun, 8 Jun 2025 20:19:12 +0200 Subject: [PATCH] Fixes --- .../src/components/Header/DropdownMenu.tsx | 50 ++++++++++++------- .../gitbook/src/components/Header/Header.tsx | 1 - .../Header/HeaderMobileMenuButton.tsx | 12 ++--- .../src/components/Header/SpacesDropdown.tsx | 4 +- .../Header/mobile-menu/MobileMenuSheet.tsx | 5 +- .../components/SpaceLayout/SpaceLayout.tsx | 4 +- .../TableOfContents/PageGroupItem.tsx | 4 +- .../TableOfContents/TOCScrollContent.tsx | 4 +- .../components/TableOfContents/Trademark.tsx | 7 ++- .../src/components/primitives/Button.tsx | 2 +- .../gitbook/src/components/utils/Sheet.tsx | 36 +++++++++---- 11 files changed, 77 insertions(+), 52 deletions(-) diff --git a/packages/gitbook/src/components/Header/DropdownMenu.tsx b/packages/gitbook/src/components/Header/DropdownMenu.tsx index 09c27c3b2..caa506c35 100644 --- a/packages/gitbook/src/components/Header/DropdownMenu.tsx +++ b/packages/gitbook/src/components/Header/DropdownMenu.tsx @@ -7,6 +7,7 @@ import { useState } from 'react'; import { type ClassValue, tcls } from '@/lib/tailwind'; import * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'; +import { Slot } from '@radix-ui/react-slot'; import { Link, type LinkInsightsProps } from '../primitives'; @@ -25,13 +26,21 @@ export function DropdownMenu(props: { children: React.ReactNode; /** Custom styles */ className?: ClassValue; - /** Open the dropdown on hover */ + /** Open the dropdown on hover + * @default false + */ openOnHover?: boolean; + /** Whether to render the dropdown menu in a portal + * @default true + */ + withPortal?: boolean; }) { - const { button, children, className, openOnHover = false } = props; + const { button, children, className, openOnHover = false, withPortal = true } = props; const [hovered, setHovered] = useState(false); const [clicked, setClicked] = useState(false); + const Portal = withPortal ? RadixDropdownMenu.Portal : Slot; + return ( - setHovered(true)} - onMouseLeave={() => setHovered(false)} - align="start" - className="z-[9999] animate-present pt-2" - > -
+ setHovered(true)} + onMouseLeave={() => setHovered(false)} + align="start" + sideOffset={8} + className="z-40 animate-present" > - {children} -
-
+
+ {children} +
+ +
); } diff --git a/packages/gitbook/src/components/Header/Header.tsx b/packages/gitbook/src/components/Header/Header.tsx index 74990a82c..6c57909d1 100644 --- a/packages/gitbook/src/components/Header/Header.tsx +++ b/packages/gitbook/src/components/Header/Header.tsx @@ -77,7 +77,6 @@ export function Header(props: { context: GitBookSiteContext; withTopHeader?: boo )} > > & { - pages: GitBookSiteContext['pages']; -}) { +export function HeaderMobileMenuButton( + props: Partial> +) { const language = useLanguage(); const pathname = usePathname(); const { open, setOpen } = useMobileMenuSheet(); @@ -26,7 +22,7 @@ export function HeaderMobileMenuButton({ setOpen(!open); }; - // Close the navigation when navigating to a page + // biome-ignore lint/correctness/useExhaustiveDependencies: Close the navigation when navigating to a page useEffect(() => { if (!open) return; setOpen(false); diff --git a/packages/gitbook/src/components/Header/SpacesDropdown.tsx b/packages/gitbook/src/components/Header/SpacesDropdown.tsx index dd6887d95..8e5cc46aa 100644 --- a/packages/gitbook/src/components/Header/SpacesDropdown.tsx +++ b/packages/gitbook/src/components/Header/SpacesDropdown.tsx @@ -11,8 +11,9 @@ export function SpacesDropdown(props: { siteSpace: SiteSpace; siteSpaces: SiteSpace[]; className?: string; + withPortal?: boolean; }) { - const { context, siteSpace, siteSpaces, className } = props; + const { context, siteSpace, siteSpaces, className, withPortal } = props; return ( {/** Needed for screen readers */} diff --git a/packages/gitbook/src/components/SpaceLayout/SpaceLayout.tsx b/packages/gitbook/src/components/SpaceLayout/SpaceLayout.tsx index 8d0d785d9..97b536cb4 100644 --- a/packages/gitbook/src/components/SpaceLayout/SpaceLayout.tsx +++ b/packages/gitbook/src/components/SpaceLayout/SpaceLayout.tsx @@ -73,13 +73,15 @@ export function SpaceLayout(props: { innerHeader={ isMultiVariants ? ( ) : null diff --git a/packages/gitbook/src/components/TableOfContents/PageGroupItem.tsx b/packages/gitbook/src/components/TableOfContents/PageGroupItem.tsx index 24ea366a2..60a400ca4 100644 --- a/packages/gitbook/src/components/TableOfContents/PageGroupItem.tsx +++ b/packages/gitbook/src/components/TableOfContents/PageGroupItem.tsx @@ -29,8 +29,8 @@ export function PageGroupItem(props: { '[html.sidebar-filled.theme-bold.tint_&]:bg-tint-subtle', '[html.sidebar-filled.theme-muted_&]:bg-tint-base', '[html.sidebar-filled.theme-bold.tint_&]:bg-tint-base', - '[html.sidebar-default.theme-gradient_&]:bg-gradient-primary', - '[html.sidebar-default.theme-gradient.tint_&]:bg-gradient-tint' + 'lg:[html.sidebar-default.theme-gradient_&]:bg-gradient-primary', + 'lg:[html.sidebar-default.theme-gradient.tint_&]:bg-gradient-tint' )} > diff --git a/packages/gitbook/src/components/TableOfContents/TOCScrollContent.tsx b/packages/gitbook/src/components/TableOfContents/TOCScrollContent.tsx index f7696d61e..49cd30966 100644 --- a/packages/gitbook/src/components/TableOfContents/TOCScrollContent.tsx +++ b/packages/gitbook/src/components/TableOfContents/TOCScrollContent.tsx @@ -32,14 +32,14 @@ export function TOCScrollContent(props: { )} > {!!innerHeader && ( -
+
{innerHeader}
)} + - + ); }