import * as Headless from "@headlessui/react"
import {
forwardRef,
ForwardRefExoticComponent,
RefAttributes,
ComponentPropsWithoutRef,
} from "react"
import { Link as RouterLink, LinkProps } from "@tanstack/react-router"
import { router } from "@/router"
type CustomLinkProps = Omit<
ComponentPropsWithoutRef<typeof RouterLink>,
"to"
> & {
href: LinkProps<typeof router>["to"]
}
export const Link: ForwardRefExoticComponent<
CustomLinkProps & RefAttributes<HTMLAnchorElement>
> = forwardRef<HTMLAnchorElement, CustomLinkProps>(function Link(
{ href, params, search, from, ...rest },
ref
) {
return (
<Headless.DataInteractive>
<RouterLink
ref={ref}
to={href}
params={params}
search={search}
from={from}
{...rest}
/>
</Headless.DataInteractive>
)
})
import * as Headless from "@headlessui/react"
import {
forwardRef,
ForwardRefExoticComponent,
RefAttributes,
ComponentPropsWithoutRef,
} from "react"
import { Link as RouterLink, LinkProps } from "@tanstack/react-router"
import { router } from "@/router"
type CustomLinkProps = Omit<
ComponentPropsWithoutRef<typeof RouterLink>,
"to"
> & {
href: LinkProps<typeof router>["to"]
}
export const Link: ForwardRefExoticComponent<
CustomLinkProps & RefAttributes<HTMLAnchorElement>
> = forwardRef<HTMLAnchorElement, CustomLinkProps>(function Link(
{ href, params, search, from, ...rest },
ref
) {
return (
<Headless.DataInteractive>
<RouterLink
ref={ref}
to={href}
params={params}
search={search}
from={from}
{...rest}
/>
</Headless.DataInteractive>
)
})