Move to TanStack Start from Next.js (#184)

This commit is contained in:
Aslam
2024-10-07 16:44:17 +07:00
committed by GitHub
parent 3a89a1c07f
commit 950ebc3dad
514 changed files with 20021 additions and 15508 deletions

View File

@@ -0,0 +1,29 @@
import * as React from "react"
import type { NavigateOptions } from "@tanstack/react-router"
import { useLocation, useNavigate } from "@tanstack/react-router"
type Resolve = (value?: unknown) => void
export const useAwaitableNavigate = () => {
const navigate = useNavigate()
const location = useLocation()
const resolveFunctionsRef = React.useRef<Resolve[]>([])
const resolveAll = () => {
resolveFunctionsRef.current.forEach((resolve) => resolve())
resolveFunctionsRef.current.splice(0, resolveFunctionsRef.current.length)
}
const [, startTransition] = React.useTransition()
React.useEffect(() => {
resolveAll()
}, [location])
return (options: NavigateOptions) => {
return new Promise((res) => {
startTransition(() => {
resolveFunctionsRef.current.push(res)
res(navigate(options))
})
})
}
}