Skip to content

Commit

Permalink
Fix tab animation (#656)
Browse files Browse the repository at this point in the history
  • Loading branch information
josepjaume authored Oct 7, 2024
1 parent 69bf6b6 commit 04e34f5
Show file tree
Hide file tree
Showing 3 changed files with 276 additions and 16 deletions.
29 changes: 20 additions & 9 deletions lib/ui/tab-navigation.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { cn } from "@/lib/utils"
import * as NavigationMenuPrimitives from "@radix-ui/react-navigation-menu"
import { cva, type VariantProps } from "class-variance-authority"
import { motion } from "framer-motion"
import { LayoutGroup, motion } from "framer-motion"
import * as React from "react"
import { useId } from "react"

function getSubtree(
options: { asChild: boolean | undefined; children: React.ReactNode },
Expand Down Expand Up @@ -43,15 +44,25 @@ interface TabNavigationProps
const TabNavigation = React.forwardRef<
React.ElementRef<typeof NavigationMenuPrimitives.Root>,
TabNavigationProps
>(({ className, children, secondary, ...props }, forwardedRef) => (
<NavigationMenuPrimitives.Root ref={forwardedRef} {...props} asChild={false}>
<NavigationMenuPrimitives.List
className={cn(tabNavigationVariants({ secondary }), className)}
>(({ className, children, secondary, ...props }, forwardedRef) => {
const id = useId()

return (
<NavigationMenuPrimitives.Root
ref={forwardedRef}
{...props}
asChild={false}
>
{children}
</NavigationMenuPrimitives.List>
</NavigationMenuPrimitives.Root>
))
<LayoutGroup id={id}>
<NavigationMenuPrimitives.List
className={cn(tabNavigationVariants({ secondary }), className)}
>
{children}
</NavigationMenuPrimitives.List>
</LayoutGroup>
</NavigationMenuPrimitives.Root>
)
})

TabNavigation.displayName = "TabNavigation"

Expand Down
253 changes: 251 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 04e34f5

Please sign in to comment.