From 52b391c2f448fe84905027ad49a5c9ed1a8cfe26 Mon Sep 17 00:00:00 2001 From: bdbch <6538827+bdbch@users.noreply.github.com> Date: Tue, 15 Apr 2025 15:02:50 +0200 Subject: [PATCH 1/4] Feature/version switch (#149) * added version switch * added changeset --- .changeset/fair-bats-drop.md | 5 ++++ src/components/NavLink.tsx | 26 +++++++++++++----- src/components/VersionSwitch.tsx | 45 +++++++++++++++++++++++++++++++ src/components/layouts/Layout.tsx | 16 ++++++----- src/types.ts | 9 +++++++ src/utils/constants.ts | 21 +++++++++++++++ 6 files changed, 109 insertions(+), 13 deletions(-) create mode 100644 .changeset/fair-bats-drop.md create mode 100644 src/components/VersionSwitch.tsx diff --git a/.changeset/fair-bats-drop.md b/.changeset/fair-bats-drop.md new file mode 100644 index 00000000..50d3baba --- /dev/null +++ b/.changeset/fair-bats-drop.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': minor +--- + +Added a new version switch and versioning constants to the constant config diff --git a/src/components/NavLink.tsx b/src/components/NavLink.tsx index a15a882d..569e8bb9 100644 --- a/src/components/NavLink.tsx +++ b/src/components/NavLink.tsx @@ -24,6 +24,25 @@ export const NavLink = forwardRef( const isActive = pathname === href const isActiveParent = href !== '/' && pathname.startsWith(`${href}`) + const innerLinkContent = ( + <> + {children} + {isExternal && !hideIcon ? ( + + ) : null} + + ) + + const linkContent = isExternal ? ( + + {innerLinkContent} + + ) : ( + + {innerLinkContent} + + ) + return ( ( variant={variant} className={className} > - - {children} - {isExternal && !hideIcon ? ( - - ) : null} - + {linkContent} ) }, diff --git a/src/components/VersionSwitch.tsx b/src/components/VersionSwitch.tsx new file mode 100644 index 00000000..325cb148 --- /dev/null +++ b/src/components/VersionSwitch.tsx @@ -0,0 +1,45 @@ +'use client' + +import * as DropdownMenu from '@radix-ui/react-dropdown-menu' +import { ChevronDownIcon } from 'lucide-react' +import { NavLinkButton } from './ui/NavLinkButton' +import { NavLink } from './NavLink' +import { Tag } from './ui/Tag' +import { VERSIONS, CURRENT_VERSION } from '@/utils/constants' +import type { VersionData } from '@/types' + +const VersionItem = ({ version }: { version: VersionData }) => { + return ( + + + {version.version} + {version.isLegacy ? Legacy : null} + {version.isBeta ? Beta : null} + {version.isAlpha ? Alpha : null} + {version.isRc ? RC : null} + + + ) +} + +export const VersionSwitch = () => { + return ( + + + + {CURRENT_VERSION} + + + + + +
+ {VERSIONS.map((version) => ( + + ))} +
+
+
+
+ ) +} diff --git a/src/components/layouts/Layout.tsx b/src/components/layouts/Layout.tsx index 64da8a97..e0a531fb 100644 --- a/src/components/layouts/Layout.tsx +++ b/src/components/layouts/Layout.tsx @@ -11,6 +11,7 @@ import { MobileNavigationButton } from '../MobileNavigationButton' import { DocsSidebar } from '../SidebarRenderer' import { MobileNavigationDropdown } from '../MobileNavigationDropdown' import { SidebarTableOfContent } from '../SidebarTableOfContent' +import { VersionSwitch } from '../VersionSwitch' import Link from '@/components/Link' import { cn } from '@/utils' import { getAllMetadata } from '@/server/getAllMetadata' @@ -38,7 +39,8 @@ export const LayoutHeader = forwardRefTiptap Docs - / + + / -
+
-
+
@@ -73,11 +75,11 @@ export const LayoutHeader = forwardRef
-
-
+
+
-
+
@@ -175,7 +177,7 @@ export const LayoutContent = forwardRef(
{children}