Files
juwan-frontend/lib/use-require-auth.ts

24 lines
610 B
TypeScript

"use client"
import { useAuthStore } from "@/store/auth"
import { useLoginDialogStore } from "@/store/login-dialog"
import { useCallback } from "react"
export function useRequireAuth() {
const isAuthenticated = useAuthStore((s) => s.isAuthenticated)
const openLoginDialog = useLoginDialogStore((s) => s.openLoginDialog)
const requireAuth = useCallback(
(action: () => void | Promise<void>) => {
if (isAuthenticated) {
void action()
} else {
openLoginDialog(action)
}
},
[isAuthenticated, openLoginDialog],
)
return { isAuthenticated, requireAuth }
}