Files
tuono/packages/router/src/components/Link.tsx
T

22 lines
521 B
TypeScript
Raw Normal View History

2024-06-16 11:23:02 +02:00
import * as React from 'react'
2024-07-11 21:43:38 +02:00
import { useRouter } from '../hooks/useRouter'
2024-05-11 15:08:49 +02:00
import type { AnchorHTMLAttributes, MouseEvent } from 'react'
export default function Link(
props: AnchorHTMLAttributes<HTMLAnchorElement>,
): JSX.Element {
2024-07-11 21:43:38 +02:00
const router = useRouter()
2024-05-11 15:08:49 +02:00
const handleTransition = (e: MouseEvent<HTMLAnchorElement>): void => {
e.preventDefault()
props.onClick?.(e)
2024-07-11 21:43:38 +02:00
router.push(props.href || '')
2024-05-11 15:08:49 +02:00
}
2024-07-11 21:43:38 +02:00
2024-05-11 15:08:49 +02:00
return (
<a {...props} onClick={handleTransition}>
{props.children}
</a>
)
}