"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
}
