fix: handle target=_blank in link
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
"use client"
|
||||
import NextLink from "next/link"
|
||||
import { usePathname, useRouter } from "next/navigation"
|
||||
import { startTransition, useCallback, useEffect } from "react"
|
||||
import { startTransition, useCallback } from "react"
|
||||
|
||||
import useRouterTransitionStore from "@/stores/router-transition"
|
||||
|
||||
@@ -60,15 +60,21 @@ export default function Link({
|
||||
prefetch={prefetch}
|
||||
className={classNames}
|
||||
onClick={(e) => {
|
||||
if (onClick) {
|
||||
onClick(e)
|
||||
}
|
||||
if (trackingId) {
|
||||
trackClickById()
|
||||
}
|
||||
if (props.target === "_blank") {
|
||||
// If link should open in new tab, we don't want to
|
||||
// track navigation nor start a router transition.
|
||||
return
|
||||
}
|
||||
e.preventDefault()
|
||||
trackPageViewStart()
|
||||
startTransition(() => {
|
||||
startRouterTransition()
|
||||
if (trackingId) {
|
||||
trackClickById()
|
||||
}
|
||||
if (onClick) {
|
||||
onClick(e)
|
||||
}
|
||||
router.push(href)
|
||||
})
|
||||
}}
|
||||
|
||||
Reference in New Issue
Block a user