import { useContext } from 'react'; import { AuthContext, type AuthContextType } from '@/components/auth/auth-provider'; /** * Hook for auth protection * 提供认证拦截功能,当需要登录时自动弹出登录模态框 * * @returns Object with requireAuth function * * @example * ```typescript * function MyComponent() { * const { requireAuth } = useAuthGuard(); * * const handleProtectedAction = () => { * const canProceed = requireAuth(() => { * // 执行需要登录的操作 * doSomething(); * }); * * if (!canProceed) { * // 登录模态框会自动弹出 * return; * } * * // 已登录,直接执行 * doSomething(); * }; * } * ``` */ export function useAuthGuard(): AuthContextType { const context = useContext(AuthContext); if (context === undefined) { throw new Error('useAuthGuard must be used within an AuthProvider'); } return context; }