From 3af177be195528483e07b02974da897d211e12cd Mon Sep 17 00:00:00 2001 From: Zeno Kapitein Date: Tue, 15 Apr 2025 16:52:59 +0200 Subject: [PATCH 1/3] Fix dropdown menu not staying fixed --- .../src/components/Header/Dropdown.tsx | 19 ++++++++++++------- .../gitbook/src/components/Header/Header.tsx | 1 + .../src/components/Header/SpacesDropdown.tsx | 5 +++-- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/packages/gitbook/src/components/Header/Dropdown.tsx b/packages/gitbook/src/components/Header/Dropdown.tsx index 21b626ac2c..ca54513f07 100644 --- a/packages/gitbook/src/components/Header/Dropdown.tsx +++ b/packages/gitbook/src/components/Header/Dropdown.tsx @@ -10,18 +10,22 @@ export type DropdownButtonProps = Omit< 'ref' >; -/** - * Button with a dropdown. - */ -export function Dropdown(props: { +export type DropdownProps = { /** Content of the button */ button: (buttonProps: DropdownButtonProps) => React.ReactNode; /** Content of the dropdown */ children: React.ReactNode; /** Custom styles */ className?: ClassValue; -}) { - const { button, children, className } = props; + /** Whether to use fixed positioning (for fixed navbars) */ + useFixedPosition?: boolean; +}; + +/** + * Button with a dropdown. + */ +export function Dropdown(props: DropdownProps) { + const { button, children, className, useFixedPosition = false } = props; const dropdownId = useId(); return ( @@ -53,7 +57,7 @@ export function Dropdown(props: { className )} > -
+
diff --git a/packages/gitbook/src/components/Header/Header.tsx b/packages/gitbook/src/components/Header/Header.tsx index 35c2583c41..8e2aac8a40 100644 --- a/packages/gitbook/src/components/Header/Header.tsx +++ b/packages/gitbook/src/components/Header/Header.tsx @@ -212,6 +212,7 @@ export function Header(props: { context: GitBookSiteContext; withTopHeader?: boo siteSpace={siteSpace} siteSpaces={siteSpaces} className="w-full grow py-1" + useFixedPosition={true} />
)} diff --git a/packages/gitbook/src/components/Header/SpacesDropdown.tsx b/packages/gitbook/src/components/Header/SpacesDropdown.tsx index 39e81e59f4..c1fc4ea383 100644 --- a/packages/gitbook/src/components/Header/SpacesDropdown.tsx +++ b/packages/gitbook/src/components/Header/SpacesDropdown.tsx @@ -3,7 +3,7 @@ import type { SiteSpace } from '@gitbook/api'; import { tcls } from '@/lib/tailwind'; import type { GitBookSiteContext } from '@v2/lib/context'; -import { Dropdown, DropdownChevron, DropdownMenu } from './Dropdown'; +import { Dropdown, DropdownChevron, DropdownMenu, type DropdownProps } from './Dropdown'; import { SpacesDropdownMenuItem } from './SpacesDropdownMenuItem'; export function SpacesDropdown(props: { @@ -11,7 +11,7 @@ export function SpacesDropdown(props: { siteSpace: SiteSpace; siteSpaces: SiteSpace[]; className?: string; -}) { +} & Partial) { const { context, siteSpace, siteSpaces, className } = props; const { linker } = context; @@ -67,6 +67,7 @@ export function SpacesDropdown(props: {
)} + {...props} > {siteSpaces.map((otherSiteSpace, index) => ( From eab3b7aea463180c1e56cff54e04b9b2aa564d41 Mon Sep 17 00:00:00 2001 From: Zeno Kapitein Date: Tue, 15 Apr 2025 16:54:59 +0200 Subject: [PATCH 2/3] Format --- .../src/components/Header/SpacesDropdown.tsx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/gitbook/src/components/Header/SpacesDropdown.tsx b/packages/gitbook/src/components/Header/SpacesDropdown.tsx index c1fc4ea383..42d6a8f5a7 100644 --- a/packages/gitbook/src/components/Header/SpacesDropdown.tsx +++ b/packages/gitbook/src/components/Header/SpacesDropdown.tsx @@ -6,12 +6,14 @@ import type { GitBookSiteContext } from '@v2/lib/context'; import { Dropdown, DropdownChevron, DropdownMenu, type DropdownProps } from './Dropdown'; import { SpacesDropdownMenuItem } from './SpacesDropdownMenuItem'; -export function SpacesDropdown(props: { - context: GitBookSiteContext; - siteSpace: SiteSpace; - siteSpaces: SiteSpace[]; - className?: string; -} & Partial) { +export function SpacesDropdown( + props: { + context: GitBookSiteContext; + siteSpace: SiteSpace; + siteSpaces: SiteSpace[]; + className?: string; + } & Partial +) { const { context, siteSpace, siteSpaces, className } = props; const { linker } = context; From d980d7a9ea34393a64df9526e6c3eebc1cee96a0 Mon Sep 17 00:00:00 2001 From: Zeno Kapitein Date: Tue, 15 Apr 2025 16:55:17 +0200 Subject: [PATCH 3/3] Changeset --- .changeset/swift-dryers-sing.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/swift-dryers-sing.md diff --git a/.changeset/swift-dryers-sing.md b/.changeset/swift-dryers-sing.md new file mode 100644 index 0000000000..ecec9f2a40 --- /dev/null +++ b/.changeset/swift-dryers-sing.md @@ -0,0 +1,5 @@ +--- +"gitbook": patch +--- + +Fix dropdown menu not staying fixed