fix: handle target=_blank in link
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
"use client"
|
"use client"
|
||||||
import NextLink from "next/link"
|
import NextLink from "next/link"
|
||||||
import { usePathname, useRouter } from "next/navigation"
|
import { usePathname, useRouter } from "next/navigation"
|
||||||
import { startTransition, useCallback, useEffect } from "react"
|
import { startTransition, useCallback } from "react"
|
||||||
|
|
||||||
import useRouterTransitionStore from "@/stores/router-transition"
|
import useRouterTransitionStore from "@/stores/router-transition"
|
||||||
|
|
||||||
@@ -60,15 +60,21 @@ export default function Link({
|
|||||||
prefetch={prefetch}
|
prefetch={prefetch}
|
||||||
className={classNames}
|
className={classNames}
|
||||||
onClick={(e) => {
|
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()
|
trackPageViewStart()
|
||||||
startTransition(() => {
|
startTransition(() => {
|
||||||
startRouterTransition()
|
startRouterTransition()
|
||||||
if (trackingId) {
|
|
||||||
trackClickById()
|
|
||||||
}
|
|
||||||
if (onClick) {
|
|
||||||
onClick(e)
|
|
||||||
}
|
|
||||||
router.push(href)
|
router.push(href)
|
||||||
})
|
})
|
||||||
}}
|
}}
|
||||||
|
|||||||
Reference in New Issue
Block a user