Files
web/packages/common/hooks/useLazyPathname.ts
Joakim Jäderberg 7dee6d5083 Merged in chore/move-enter-details (pull request #2778)
Chore/move enter details

Approved-by: Anton Gunnarsson
2025-09-11 07:16:24 +00:00

29 lines
979 B
TypeScript

"use client"
import { usePathname, useSearchParams } from "next/navigation"
import { useEffect, useState } from "react"
/*** This hook is used to get the current pathname (as reflected in window.location.href) of the page. During ssr, the value from usePathname()
* is the value return from NextResponse.rewrite() (e.g. the path from the app directory) instead of the actual pathname from the URL.
*/
export function useLazyPathname({ includeSearchParams = false } = {}) {
const pathName = usePathname()
const searchParams = useSearchParams()
const [updatedPathName, setUpdatedPathName] = useState<string | null>(null)
useEffect(() => {
if (!includeSearchParams) {
setUpdatedPathName(pathName)
} else {
const updatedPathname = searchParams.size
? `${pathName}?${searchParams.toString()}`
: pathName
setUpdatedPathName(updatedPathname)
}
}, [pathName, searchParams, includeSearchParams])
return updatedPathName
}