mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-29 22:06:38 +08:00
63cd906cfc
- Merge all files inside openflare-server to the repository root directory. - Relocate agent, relay, and flared subprojects from internal/ to internal/apps/. - Combine docker-compose files and update build context paths to root. - Update GitHub workflows and Dockerfiles to refer to new directories and package names. - Rewrite Go package imports across all files. - Resolve database renew test race condition and clean up docs.
27 lines
834 B
TypeScript
27 lines
834 B
TypeScript
"use client"
|
|
|
|
import {useEffect} from "react"
|
|
import {usePathname, useRouter} from "next/navigation"
|
|
|
|
import {useUser} from "@/contexts/user-context"
|
|
|
|
/** Redirects unauthenticated users to login while allowing the shell to render first. */
|
|
export function useAuthRedirect() {
|
|
const router = useRouter()
|
|
const pathname = usePathname()
|
|
const {user, loading} = useUser()
|
|
|
|
useEffect(() => {
|
|
if (loading || user) {
|
|
return
|
|
}
|
|
|
|
const queryString = window.location.search
|
|
const callbackUrl = queryString ? `${pathname}${queryString}` : pathname
|
|
const loginUrl = new URL("/login", window.location.origin)
|
|
|
|
loginUrl.searchParams.set("callbackUrl", callbackUrl)
|
|
sessionStorage.setItem("redirect_after_login", callbackUrl)
|
|
router.replace(loginUrl.toString())
|
|
}, [loading, pathname, router, user])
|
|
} |